Guía definitiva de comandos de Linux: básicos, avanzados y prácticos
Categoría:
Sysadmin
Fecha:
10/02/2025
Linux es un sistema operativo de código abierto basado en Unix que se utiliza para la gran mayoría de servidores web, actualmente más del 80% de los servicios de alojamiento web y de la infraestructura en la nube utilizan este SO (al contrario que ocurre con los sistemas operativos de escritorio, en el cual, el porcentaje no supera ni el 5%).
![Linux operating system](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux1.jpg)
Existen muchos motivos por los que sucede esto, aunque podríamos destacar los siguientes:
Ahora que ya tenemos un poco más claro qué es y qué ventajas tiene Linux con respecto a otro tipo de SO, ¿qué son entonces los comandos de Linux y de qué me pueden servir exactamente?
A grandes rasgos, podríamos decir que un comando son una especie de órdenes o instrucciones que un usuario le proporciona a un sistema informático desde una terminal, una shell o desde una llamada de programación.
![Qué es un comando de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux2.jpg)
Debemos tener en cuenta que cualquier interfaz gráfica (sea la que sea) es básicamente un comando llevado a lo gráfico, por ejemplo, para abrir, cerrar o modificar una ventana es un programa de nuestro ordenador, se está ejecutando un comando en segundo plano, y es justamente el comando lo que hace que sea funcional.
Como indicamos anteriormente, para poder ejecutar un comando es necesario tener acceso a una terminal, y en el caso de un alojamiento web, hay que tener en cuenta que no todos ellos te van a permitir acceder por SSH, ya que las tareas que se realizan con este tipo de acceso son muy potentes y sumamente peligrosas si no sabemos lo que estamos haciendo (y en hostings compartidos, podría afectar al resto de usuarios del servidor).
En caso de que necesites un servidor o alojamiento en el que poder gestionar tus contenidos por SSH, en Raiola Networks tenemos varios planes que te van a permitir conectarte mediante este método y gestionar tus contenidos desde la línea de comandos, desde nuestros VPS y servidores dedicados, hasta nuestros Hostings Elásticos.
Dicho todo esto, a continuación os indicaremos los comandos de Linux más básicos y que debes de conocer para poder gestionar un alojamiento o sitio web mediante un acceso SSH.
Nos sirve para movernos entre los directorios y archivos del sistema, la sintaxis sería:
Dependiendo de la ubicación en dónde te encuentres, necesitarás poner la ruta completa o el nombre del directorio, y en la mayoría de sistemas, te va a permitir ir autocompletando y mostrando las posibilidades mediante el tabulador.
![Comando cd de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux3.png)
Si ponemos únicamente el comando, nos dirigiremos a la carpeta de inicio del sistema, y para moverse entre directorios podemos utilizar los siguientes atajos:
![Moverse entre directorios con el comando cd de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux4.png)
Nos indica la ruta del directorio en el que estamos trabajando actualmente:
![Comando pwd de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux5.png)
El comando "ls" nos sirve para listar los archivos y directorios del sistema. La sintaxis es la siguiente:
Si no introduces ninguna ruta, el comando mostrará los contenidos del directorio en el que te encuentres.
![Comando ls de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux6.png)
Puedes añadir multitud de parámetros a este comando y modificar lo que muestra y cómo se muestra. Te pongo aquí algunos parámetros interesantes (puedes revisar todos los parámetros disponibles poniendo "ls --help" en la terminal que utilices):
![Parámetros del comando ls de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux7.png)
Nos permite visualizar el contenido de un archivo concreto, la sintaxis sería:
![Comando cat de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux8.png)
Existen varias opciones para crear o editar un fichero en Linux desde la línea de comandos (vi, jed, etc.), no obstante, la más sencilla suele ser nano:
En caso de que el archivo que escribimos no exista, se creará uno con dicho nombre, y en caso de que exista, abriremos un editor de texto para poder editar su contenido.
![Comando nano de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux9.png)
Nos permite crear uno o varios directorios, para ello, únicamente habría que añadir el nombre del directorio que queremos crear:
Si solo escribimos el nombre del directorio a crear, el sistema lo creará en la ruta en la que estemos ubicados, y si quisiéramos crearlo en una ruta en concreto, tendríamos que especificarla (o situarnos en dicha ruta).
![Comando mkdir de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux10.png)
Tenemos que tener en cuenta que los comandos que crean un fichero o directorio (ya sea el nano o el mkdir), los crean estableciendo como propietario y grupo del mismo el usuario con el que se ha creado, por lo que es importante reajustar estos permisos posteriormente (o simplemente crearlos con el usuario correspondiente).
Si queremos cambiar el propietario de algún archivo o directorio, el comando a utilizar sería "chown":
![Comando chown de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux11.png)
En principio, únicamente el superusuario "root" debería de poder utilizar este comando, y tenemos que tener claro el usuario y grupo que tenemos que establecer, ya que podríamos generar un problema de permisos en nuestro sistema.
Nos sirve para modificar permisos de los archivos y directorios, es decir, las restricciones que tienen dichos archivos para realizar cierto tipo de operaciones (lectura, escritura y ejecución).
Además, cada archivo o directorio en Linux tiene una serie de permisos en 3 tipos de usuario distintos:
Dicho esto, el comando "chmod" tiene varios tipos de sintaxis para aplicar permisos, en este caso explicaremos únicamente una de ellas, que sería mediante modos numéricos del 0 al 7:
Teniendo esto en cuenta, podemos poner como ejemplo el siguiente comando:
Lo que se realizará en este caso sería establecer permisos de lectura y escritura al propietario (6), y permisos de lectura al grupo (4) y al resto de usuarios (4).
![Comando chmod de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux12.png)
Te permite mostrar todos los directorios y archivos del sistema de manera esquemática y en forma de árbol.
![Comando tree de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux13.png)
Existen varios parámetros interesantes que nos permiten acotar el resultado o mostrar archivos ocultos en la estructura.
Si queremos eliminar un directorio o un archivo en Linux, podemos utilizar el comando "rm":
Podrías eliminar varios archivos separándolos por un espacio o eliminar un directorio completamente (si dicho directorio tiene contenido, habría que utilizar un parámetro adicional).
Por ejemplo, para eliminar el directorio, subdirectorios, y todos los contenidos del ejemplo del anterior comando, podemos hacerlo de esta forma.
![Comando rm de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux14.png)
Este comando se utiliza para mover o renombrar contenidos, ya sean archivos o directorios.
El funcionamiento de este comando es simple, tendremos que poner el comando, y posteriormente, el directorio/archivo de origen y el destino:
![Comando mv de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux15.png)
![Mover o renombrar contenidos con comando mv](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux16.png)
Puedes utilizar el comando "cp" para copiar archivos o directorios de una ubicación a otra; en este caso, podemos utilizarlo de varias formas:
El comando "find" es sin duda uno de los más interesantes y potentes de Linux, ya que nos permite buscar archivos o directorios dentro del sistema, e incluso realizar ciertas tareas con dichos contenidos que se han buscado. La sintaxis de este comando sería la siguiente:
Por ejemplo, si queremos buscar archivos index.php dentro del directorio de plugins de una instalación de WordPress, podemos ejecutar lo siguiente (si omitimos la ruta, la búsqueda se realizará desde el directorio en donde estemos ubicados):
![buscar archivos index.php dentro del directorio de plugins de una instalación de WordPress con comando find de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux17.png)
Algunos parámetros interesantes para añadir al comando pueden ser:
Una de las utilidades más interesantes e importantes que nos permite realizar este comando es buscar todos los ficheros de una determinada extensión en una ruta concreta, por ejemplo:
![Buscar todos los ficheros de una determinada extensión en una ruta concreta con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux18.png)
Como último ejemplo, si quisieras realizar alguna acción con el resultado de una búsqueda concreta, también sería posible con este comando. Te ponemos un ejemplo a continuación en el que eliminaremos todos los archivos ".php" de un directorio concreto.
Como puedes ver, este comando tiene infinidad de opciones y alguna de ellas es sumamente potente y peligrosa si no tenemos conocimientos sobre lo que estamos ejecutando y no estamos 100% seguros de lo que hacemos, por lo que te recomendamos ejecutar este comando con precaución.
Este comando se utiliza para buscar una cadena de texto o patrones en los ficheros del sistema, es decir, busca líneas en todos los archivos del sistema que coincidan con la expresión regular que estemos buscando:
El ejemplo indicado buscará la cadena de texto "texto_a_buscar" en el fichero prueba.txt.
Al comando se le pueden añadir multitud de parámetros, te indico algunos de los más interesantes a continuación:
![Buscar una cadena de texto o patrones en los ficheros del sistema con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux19.png)
En la captura podemos ver 2 ejemplos, el primero busca la cadena "prueba" en el fichero ".escondido", y el segundo busca la misma cadena en el directorio actual y en sus subdirectorios, y además, únicamente muestra el nombre de los ficheros en dónde se encuentra dicha cadena de texto.
Este comando nos permite visualizar las últimas 10 líneas de una archivo, lo que puede ser de gran utilidad para verificar las últimas líneas de un fichero de errores, en dónde los más recientes se sitúan justamente al final.
En caso de que nos interese revisar las últimas 25 líneas del fichero, tan solo tendríamos que añadir un parámetro indicando la cantidad total de líneas que queremos visualizar, por ejemplo:
Tiene el mismo funcionamiento que el anterior comando (y los mismos parámetros), pero en vez de mostrar las últimas 10 líneas, muestra las primeras 10 líneas del archivo.
Por ejemplo, si queremos que se muestren las primeras 15 líneas del fichero prueba.txt, el comando sería el siguiente:
El comando "du" se utiliza para comprobar el uso de disco (almacenamiento) de determinado archivo o de los directorios del sistema.
Las opciones más interesantes del comando son las siguientes:
Por ejemplo, si queremos verificar el uso de disco total de un directorio en concreto, podemos utilizar el siguiente comando:
![Verificar el uso de disco total de un directorio con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux20.png)
Si quisiéramos hacer lo mismo, pero que nos indique el uso de disco total de cada uno de los subdirectorios de "/wp-content", podríamos ejecutar el siguiente comando:
![Comando du de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux21.png)
Se utiliza para comprimir determinados contenidos en un fichero zip o para descomprimirlos, la sintaxis en este caso sería:
Los parámetros más interesantes del comando son los siguientes:
Por ejemplo, si queremos hacer un zip del directorio de /plugins de forma recursiva, y además, establecer una contraseña que se solicite cuando se intente descomprimir, podemos usar el siguiente comando.
![Hacer un zip del directorio de forma recursiva con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux22.png)
Para descomprimir dicho fichero, tendremos que utilizar el comando "unzip" (nos solicitará la contraseña anteriormente configurada).
![Descomprimir directorio con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux23.png)
Otro comando que podamos utilizar para comprimir y descomprimir archivos, la sintaxis sería la siguiente:
Las opciones más interesantes del comando son las siguientes:
Por ejemplo, para crear un comprimido tar del directorio plugins (primer comando), y posteriormente descomprimirlo (segundo comando) y mostrar el resultado en pantalla, escribiremos los siguientes comandos:
![Crear un comprimido tar del directorio con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux24.png)
El comando top nos muestra información en tiempo real de todos los procesos del sistema, la sintaxis es simple, tan solo tendremos que escribir top en la terminal, y podremos ver algo parecido a esto:
![Comando top de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux25.png)
Este comando proporciona mucha información, desde procesos en ejecución, incluyendo sus PID (un ID que se le asigna a un proceso), usuarios, el uso de memoria, información del uso de la CPU, tiempo de ejecución, etc., lo que suele ser de gran ayuda para identificar qué procesos pueden estar ocasionando un consumo elevado de recursos.
Una vez ejecutado el comando, existen varias opciones que te permiten interactuar con el resultado, por ejemplo:
Por último, también existen varios que permiten modificar ciertas funciones del comando, por ejemplo, si únicamente queremos que se muestren los procesos de un usuario en concreto, podemos ejecutar lo siguiente:
El comando top se ejecuta de forma indefinida y va cargando/actualizando los resultados cada 3 segundos, no obstante, esto podríamos modificarlo. Por ejemplo, si queremos que la tasa de refresco sea de 10 segundos, y que únicamente nos muestre 5 resultados, el comando a ejecutar sería el siguiente:
El comando "htop" muestra la misma información que el comando top, aunque de una forma más colorida y clara, y además, también dispone de ciertas opciones más sencillas de utilizar y que son de bastante utilidad para gestionar los procesos de nuestro sistema. Podemos ejecutarlo de la misma forma que top, incluyendo todos los parámetros anteriormente comentados.
![Comando htop de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux26.png)
Realmente, tiene la misma función que el comando top, pero con elementos mejorados, por ejemplo, nos permite utilizar el ratón en dicha interfaz y nos muestra por pantalla instrucciones para realizar ciertas tareas (mediante teclas).
Otro comando que nos permite revisar los procesos del sistema, aunque en este caso imprime en pantalla el resultado una única vez, es decir, nos muestra información de ese momento en concreto, y no en tiempo real como en el caso de "top" o "htop".
Para ejecutar el comando, únicamente habría que introducir "ps" en la terminal, y de esta forma, nos listará los procesos que estén en ese momento en ejecución, así como su PID, duración (TIME, el comando que lanza dicho proceso (CMD) y el TTY (tipo de terminal).
![Comando ps de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux27.png)
Este comando tiene varias opciones que nos permiten mostrar más información:
Se utiliza para terminar un proceso que se esté ejecutando, puede ser de utilidad para matar ciertos procesos maliciosos o procesos que se hayan quedado "colgados", y para ello necesitaremos el PID del proceso en cuestión, el cual podremos conseguir fácilmente con los comandos "top" o "ps":
Es importante tener en cuenta que no siempre es recomendable matar un proceso directamente, ya que esto podría provocar que otros procesos no respondan por ello. Es por esto, por lo que este comando incluye una función denominada "señales", que se utilizan para indicarle al proceso que es lo que tiene que hacer exactamente.
Dichas señales podemos verlas con el siguiente mediante añadiendo el parámetro "-l":
![Comando kill de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux28.png)
Las señales más utilizadas, son las siguientes:
1) SIGHUP: reinicia el proceso completamente.
9) SIGKILL: le indica al proceso que debe finalizar de inmediato (sin liberar los recursos que esté utilizando), esta señal no puede ser ignorada por el proceso en cuestión.
15) SIGTERM: le permite al proceso terminar su ejecución de forma normal, dándole la posibilidad de liberar esos recursos que está utilizando. No obstante, esta señal sí que puede ser ignorada por el proceso, por lo que, en ciertas ocasiones, habría que utilizar "SIGKILL" para matarlo completamente.
Este comando nos permite descargar archivos/directorios a través de conexiones FTP, HTTP o HTTPS, nos permite descargar ciertos contenidos de internet, o incluso una instalación completa alojada en otro servidor.
Por ejemplo, si queremos descargar el propio WordPress mediante terminal, podríamos utilizar el comando
![Descargar WordPress mediante terminal con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux29.png)
Este es uno de los comandos en el que más opciones y parámetros puedes añadir, una de sus funciones más interesantes es sin duda la descarga mediante FTP
Este comando nos permite contar líneas, palabras, y bytes de un archivo concreto, la sintaxis del comando es la siguiente:
Las opciones/parámetros que nos permite incluir el plugin son las siguientes:
El comando "diff" nos permite comparar 2 archivos para verificar si coinciden, también nos permite comparar 2 directorios y verificar si tienen la misma estructura.
Las opciones más interesantes del comando pueden ser:
Para comparar dos directorios y que se muestren las diferencias, tendríamos que lanzar el siguiente comando:
El comando "sort" nos permite ordenar las líneas de un archivo de texto de forma numérica o alfabéticamente. Es muy útil si queremos ordenar un resultado muy grande de otro comando.
Las opciones más interesantes de este comando son las siguientes:
Si no recordamos algún comando que hemos lanzado, el comando "history" es tu solución al respecto, ya que nos permite verificar qué comandos se han lanzado recientemente desde la terminal (registra los últimos 500 comandos).
Para utilizarlo, simplemente tendremos que escribir el propio comando y ya nos mostrará el resultado por pantalla, no obstante, si queremos que nos muestre únicamente los últimos 15 comandos, podemos hacer de la siguiente forma:
![Comando history de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux30.png)
El comando "ping" envía paquetes ICMP al destino que le indiquemos (una IP o a un dominio) y suele utilizarse para revisar si existen problemas de conectividad. La sintaxis es sencilla
Las opciones que nos permite añadir este plugin son las siguientes:
Si escribimos únicamente el comando "ping" seguido de la IP o dominio, los paquetes se enviarán por defecto cada segundo y de forma ilimitada (hasta que forcemos su salida).
En caso de que quisiéramos establecer una periodicidad de 3 segundos entre paquetes y poner un límite de 4 paquetes, el comando sería el siguiente:
![Envía paquetes ICMP con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux31.png)
El comando "traceroute" se utiliza también para realizar pruebas de conectividad, envía paquetes ICMP o UDP y va comprobando todos los saltos de red hasta el destino, por lo que es de mucha utilidad si queremos detectar en qué punto en concreto se pierde la conexión
Algunas de las opciones interesantes que tiene son:
![realizar pruebas de conectividad con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux32.png)
El comando "nslookup" nos permite obtener información sobre la resolución de nombres de un dominio, realiza consultas sobre nombres de dominio y verifica cómo están resolviendo las DNS, a qué IP apuntan, etc.
Este comando es muy útil para diagnosticar problemas de resolución DNS (ignora el contenido del fichero hosts de tu equipo). La sintaxis es sencilla:
Al ejecutar el comando, podremos ver algo parecido a esto:
![Comando nslookup con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux33.png)
La información que te está proporcionando es la siguiente:
Como puedes observar, existen infinidad de comandos y opciones que te permiten gestionar tu sistema y sitios webs de una forma rápida y eficaz, permitiéndonos incluso concatenar o lanzar otro comando en base al resultado del primero, no obstante, esto sería una gestión mucho más avanzada y que no tocaremos en este post, en el que únicamente queríamos hacer una pequeña introducción de los comandos más básicos de Linux.
![Linux operating system](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux1.jpg)
Existen muchos motivos por los que sucede esto, aunque podríamos destacar los siguientes:
- Seguridad, ya que es menos vulnerable a virus y malware en comparación con otros SO, lo que nos brinda una capa de seguridad extra para nuestros datos y sitios webs alojados en este tipo de servidores.
- Flexibilidad y escalabilidad, ya que es altamente personalizable y ofrece una cantidad enorme de herramientas y opciones de configuración para adaptar el servidor a unas necesidades específicas.
- Coste, ya que es de código abierto, y en la mayoría de casos, gratuito.
- Soporte, ya que cuenta con una gran comunidad de usuarios y desarrolladores que ofrecen soporte, documentación y actualizaciones de forma constante.
- Estabilidad y fiabilidad, lo que garantiza que nuestros contenidos funcionen de la forma más fluida y óptima posible.
Índice del artículo
- Qué es un comando de Linux y que necesitamos para poder ejecutarlo
- Comandos de Linux básicos
- Comando cd
- Comando pwd
- Comando ls
- Comando cat
- Comando nano
- Comando mkdir
- Comando chown
- Comando chmod
- Comando tree
- Comando rm
- Comando mv
- Comando cp
- Comando find
- Comando grep (o fgrep)
- Comando tail
- Comando head
- Comando du
- Comando zip y unzip
- Comando tar
- Comando top
- Comando htop
- Comando ps
- Comando kill
- Comando wget
- Comando wc
- Comando diff
- Comando sort
- Comando history
- Comando ping
- Comando traceroute
- Comando nslookup
![Suscríbete](https://cdn-assets.raiolanetworks.com/dist/images/resources/subscribe.webp?width=302&height=217)
Qué es un comando de Linux y que necesitamos para poder ejecutarlo
Ahora que ya tenemos un poco más claro qué es y qué ventajas tiene Linux con respecto a otro tipo de SO, ¿qué son entonces los comandos de Linux y de qué me pueden servir exactamente?
A grandes rasgos, podríamos decir que un comando son una especie de órdenes o instrucciones que un usuario le proporciona a un sistema informático desde una terminal, una shell o desde una llamada de programación.
![Qué es un comando de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux2.jpg)
Debemos tener en cuenta que cualquier interfaz gráfica (sea la que sea) es básicamente un comando llevado a lo gráfico, por ejemplo, para abrir, cerrar o modificar una ventana es un programa de nuestro ordenador, se está ejecutando un comando en segundo plano, y es justamente el comando lo que hace que sea funcional.
Como indicamos anteriormente, para poder ejecutar un comando es necesario tener acceso a una terminal, y en el caso de un alojamiento web, hay que tener en cuenta que no todos ellos te van a permitir acceder por SSH, ya que las tareas que se realizan con este tipo de acceso son muy potentes y sumamente peligrosas si no sabemos lo que estamos haciendo (y en hostings compartidos, podría afectar al resto de usuarios del servidor).
En caso de que necesites un servidor o alojamiento en el que poder gestionar tus contenidos por SSH, en Raiola Networks tenemos varios planes que te van a permitir conectarte mediante este método y gestionar tus contenidos desde la línea de comandos, desde nuestros VPS y servidores dedicados, hasta nuestros Hostings Elásticos.
Dicho todo esto, a continuación os indicaremos los comandos de Linux más básicos y que debes de conocer para poder gestionar un alojamiento o sitio web mediante un acceso SSH.
Comandos de Linux básicos
Comando cd
Nos sirve para movernos entre los directorios y archivos del sistema, la sintaxis sería:
cd [/ruta/directorio/carpeta/]
Dependiendo de la ubicación en dónde te encuentres, necesitarás poner la ruta completa o el nombre del directorio, y en la mayoría de sistemas, te va a permitir ir autocompletando y mostrando las posibilidades mediante el tabulador.
![Comando cd de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux3.png)
Si ponemos únicamente el comando, nos dirigiremos a la carpeta de inicio del sistema, y para moverse entre directorios podemos utilizar los siguientes atajos:
- cd ..: nos movemos al directorio inmediatamente inferior
- cd -: nos movemos al directorio anterior, es decir, en el que estábamos justamente antes de llegar al actual
![Moverse entre directorios con el comando cd de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux4.png)
Comando pwd
Nos indica la ruta del directorio en el que estamos trabajando actualmente:
pwd [opción]
![Comando pwd de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux5.png)
Comando ls
El comando "ls" nos sirve para listar los archivos y directorios del sistema. La sintaxis es la siguiente:
ls [/ruta/directorio/carpeta/]
Si no introduces ninguna ruta, el comando mostrará los contenidos del directorio en el que te encuentres.
![Comando ls de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux6.png)
Puedes añadir multitud de parámetros a este comando y modificar lo que muestra y cómo se muestra. Te pongo aquí algunos parámetros interesantes (puedes revisar todos los parámetros disponibles poniendo "ls --help" en la terminal que utilices):
- l: utiliza un listado de formato largo
- a: muestra los ficheros ocultos (los que comienzan con “.”)
- i: muestra el nodo del fichero
- lh: muestra los tamaños en formatos legibles (GB, MB, TB, etc.)
![Parámetros del comando ls de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux7.png)
Comando cat
Nos permite visualizar el contenido de un archivo concreto, la sintaxis sería:
cat archivo_de_prueba.txt
![Comando cat de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux8.png)
Comando nano
Existen varias opciones para crear o editar un fichero en Linux desde la línea de comandos (vi, jed, etc.), no obstante, la más sencilla suele ser nano:
nano fichero_a_crear.txt
En caso de que el archivo que escribimos no exista, se creará uno con dicho nombre, y en caso de que exista, abriremos un editor de texto para poder editar su contenido.
![Comando nano de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux9.png)
Comando mkdir
Nos permite crear uno o varios directorios, para ello, únicamente habría que añadir el nombre del directorio que queremos crear:
mkdir [opción] [nombre_directorio]
Si solo escribimos el nombre del directorio a crear, el sistema lo creará en la ruta en la que estemos ubicados, y si quisiéramos crearlo en una ruta en concreto, tendríamos que especificarla (o situarnos en dicha ruta).
![Comando mkdir de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux10.png)
Tenemos que tener en cuenta que los comandos que crean un fichero o directorio (ya sea el nano o el mkdir), los crean estableciendo como propietario y grupo del mismo el usuario con el que se ha creado, por lo que es importante reajustar estos permisos posteriormente (o simplemente crearlos con el usuario correspondiente).
Comando chown
Si queremos cambiar el propietario de algún archivo o directorio, el comando a utilizar sería "chown":
chown usuario:grupo archivo/directorio
![Comando chown de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux11.png)
En principio, únicamente el superusuario "root" debería de poder utilizar este comando, y tenemos que tener claro el usuario y grupo que tenemos que establecer, ya que podríamos generar un problema de permisos en nuestro sistema.
Comando chmod
Nos sirve para modificar permisos de los archivos y directorios, es decir, las restricciones que tienen dichos archivos para realizar cierto tipo de operaciones (lectura, escritura y ejecución).
Además, cada archivo o directorio en Linux tiene una serie de permisos en 3 tipos de usuario distintos:
- Dueño: el propietario del archivo
- Grupo: el grupo del usuario propietario
- Otros: el resto de usuarios
Dicho esto, el comando "chmod" tiene varios tipos de sintaxis para aplicar permisos, en este caso explicaremos únicamente una de ellas, que sería mediante modos numéricos del 0 al 7:
- 0 –> sin permisos.
- 4 –> solo lectura.
- 6 –> leer y escribir.
- 7 -> leer, escribir y ejecutar.
Teniendo esto en cuenta, podemos poner como ejemplo el siguiente comando:
chmod 644 archivo_de_prueba.txt
Lo que se realizará en este caso sería establecer permisos de lectura y escritura al propietario (6), y permisos de lectura al grupo (4) y al resto de usuarios (4).
![Comando chmod de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux12.png)
Comando tree
Te permite mostrar todos los directorios y archivos del sistema de manera esquemática y en forma de árbol.
tree /ruta/directorio
![Comando tree de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux13.png)
Existen varios parámetros interesantes que nos permiten acotar el resultado o mostrar archivos ocultos en la estructura.
- d: muestra solo directorios.
- a: muestra todos los ficheros, incluyendo los ocultos.
- L X: muestra hasta X directorios de profundidad.
Comando rm
Si queremos eliminar un directorio o un archivo en Linux, podemos utilizar el comando "rm":
rm [/ruta/nombrearchivo1] [nombrearchivo2] [nombrearchivo3]
Podrías eliminar varios archivos separándolos por un espacio o eliminar un directorio completamente (si dicho directorio tiene contenido, habría que utilizar un parámetro adicional).
- i: pide confirmación antes de eliminar.
- r: borra archivos y directorios de forma recursiva.
- f: te permite eliminar sin ninguna confirmación.
Por ejemplo, para eliminar el directorio, subdirectorios, y todos los contenidos del ejemplo del anterior comando, podemos hacerlo de esta forma.
![Comando rm de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux14.png)
Comando mv
Este comando se utiliza para mover o renombrar contenidos, ya sean archivos o directorios.
mv prueba.txt prueba_renombrada.txt
mv directorio_de_prueba/ /home
El funcionamiento de este comando es simple, tendremos que poner el comando, y posteriormente, el directorio/archivo de origen y el destino:
![Comando mv de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux15.png)
![Mover o renombrar contenidos con comando mv](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux16.png)
Comando cp
Puedes utilizar el comando "cp" para copiar archivos o directorios de una ubicación a otra; en este caso, podemos utilizarlo de varias formas:
- Para copiar un fichero del directorio en dónde estamos ubicados a otra carpeta (en este caso, copiaremos el fichero "prueba_archivo.txt" al directorio "carpeta"):
cp prueba_archivo.txt /ruta/directorio/carpeta
- Si queremos copiar los contenidos de un archivo en concreto a otro archivo en el mismo directorio:
cp prueba_archivo.txt prueba_archivo2.txt
- Si queremos copiar un directorio completo (archivos y subdirectorios incluidos):
cp -R /ruta/directorio/carpeta /ruta2/directorio2/carpeta2
Comando find
El comando "find" es sin duda uno de los más interesantes y potentes de Linux, ya que nos permite buscar archivos o directorios dentro del sistema, e incluso realizar ciertas tareas con dichos contenidos que se han buscado. La sintaxis de este comando sería la siguiente:
find [directorio_a_buscar] [opciones] [expresion]
Por ejemplo, si queremos buscar archivos index.php dentro del directorio de plugins de una instalación de WordPress, podemos ejecutar lo siguiente (si omitimos la ruta, la búsqueda se realizará desde el directorio en donde estemos ubicados):
![buscar archivos index.php dentro del directorio de plugins de una instalación de WordPress con comando find de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux17.png)
Algunos parámetros interesantes para añadir al comando pueden ser:
- type f: para buscar únicamente ficheros.
- type d: para buscar directorios.
- name: distingue entre mayúsculas y minúsculas
- iname: no distingue entre mayúsculas y minúsculas
Una de las utilidades más interesantes e importantes que nos permite realizar este comando es buscar todos los ficheros de una determinada extensión en una ruta concreta, por ejemplo:
![Buscar todos los ficheros de una determinada extensión en una ruta concreta con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux18.png)
Como último ejemplo, si quisieras realizar alguna acción con el resultado de una búsqueda concreta, también sería posible con este comando. Te ponemos un ejemplo a continuación en el que eliminaremos todos los archivos ".php" de un directorio concreto.
find wp-content/uploads/ -name "*.php" -exec rm -f {} \;
Como puedes ver, este comando tiene infinidad de opciones y alguna de ellas es sumamente potente y peligrosa si no tenemos conocimientos sobre lo que estamos ejecutando y no estamos 100% seguros de lo que hacemos, por lo que te recomendamos ejecutar este comando con precaución.
Comando grep (o fgrep)
Este comando se utiliza para buscar una cadena de texto o patrones en los ficheros del sistema, es decir, busca líneas en todos los archivos del sistema que coincidan con la expresión regular que estemos buscando:
grep texto_a_buscar prueba.txt
El ejemplo indicado buscará la cadena de texto "texto_a_buscar" en el fichero prueba.txt.
Al comando se le pueden añadir multitud de parámetros, te indico algunos de los más interesantes a continuación:
- l: únicamente saca por pantalla los archivos que contienen dicha cadena de texto (y no el texto completo).
- r: realiza la búsqueda de forma recursiva.
- i: ignora la distinción entre mayúsculas y minúsculas
- o: muestra por pantalla únicamente la línea del fichero que coincida con el patrón buscado
![Buscar una cadena de texto o patrones en los ficheros del sistema con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux19.png)
En la captura podemos ver 2 ejemplos, el primero busca la cadena "prueba" en el fichero ".escondido", y el segundo busca la misma cadena en el directorio actual y en sus subdirectorios, y además, únicamente muestra el nombre de los ficheros en dónde se encuentra dicha cadena de texto.
Comando tail
Este comando nos permite visualizar las últimas 10 líneas de una archivo, lo que puede ser de gran utilidad para verificar las últimas líneas de un fichero de errores, en dónde los más recientes se sitúan justamente al final.
tail [opción] [archivo]
En caso de que nos interese revisar las últimas 25 líneas del fichero, tan solo tendríamos que añadir un parámetro indicando la cantidad total de líneas que queremos visualizar, por ejemplo:
tail -n25 prueba.txt
Comando head
Tiene el mismo funcionamiento que el anterior comando (y los mismos parámetros), pero en vez de mostrar las últimas 10 líneas, muestra las primeras 10 líneas del archivo.
head [opción] [archivo]
Por ejemplo, si queremos que se muestren las primeras 15 líneas del fichero prueba.txt, el comando sería el siguiente:
head -n15 prueba.txt
Comando du
El comando "du" se utiliza para comprobar el uso de disco (almacenamiento) de determinado archivo o de los directorios del sistema.
du [opciones] [ruta]
Las opciones más interesantes del comando son las siguientes:
- h: muestra el tamaño en un formato legible para humanos.
- s: muestra el tamaño total del directorio especificado
- m: muestra el resultado en megabytes
- -max-depth: limita la profundidad del resumen de espacio en disco (a nivel subdirectorios)
- -exclude: excluye los directorios que le especifiques en la medición
Por ejemplo, si queremos verificar el uso de disco total de un directorio en concreto, podemos utilizar el siguiente comando:
![Verificar el uso de disco total de un directorio con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux20.png)
Si quisiéramos hacer lo mismo, pero que nos indique el uso de disco total de cada uno de los subdirectorios de "/wp-content", podríamos ejecutar el siguiente comando:
![Comando du de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux21.png)
Comando zip y unzip
Se utiliza para comprimir determinados contenidos en un fichero zip o para descomprimirlos, la sintaxis en este caso sería:
zip [opciones] archivo.zip /directorios_o_ficheros_a_comprimir
Los parámetros más interesantes del comando son los siguientes:
- r: comprime todos los contenidos del directorio de forma recursiva
- e: te permite encriptar contenidos con una contraseña
Por ejemplo, si queremos hacer un zip del directorio de /plugins de forma recursiva, y además, establecer una contraseña que se solicite cuando se intente descomprimir, podemos usar el siguiente comando.
![Hacer un zip del directorio de forma recursiva con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux22.png)
Para descomprimir dicho fichero, tendremos que utilizar el comando "unzip" (nos solicitará la contraseña anteriormente configurada).
![Descomprimir directorio con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux23.png)
Comando tar
Otro comando que podamos utilizar para comprimir y descomprimir archivos, la sintaxis sería la siguiente:
tar [opciones] /directorios_o_ficheros_a_comprimir
Las opciones más interesantes del comando son las siguientes:
- c: crea un nuevo archivo .tar
- x: descomprime los contenidos de un archivo .tar
- v: muestra el resultado de los archivos comprimidos/descomprimidos.
- f: te permite especificar el archivo
Por ejemplo, para crear un comprimido tar del directorio plugins (primer comando), y posteriormente descomprimirlo (segundo comando) y mostrar el resultado en pantalla, escribiremos los siguientes comandos:
![Crear un comprimido tar del directorio con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux24.png)
Comando top
El comando top nos muestra información en tiempo real de todos los procesos del sistema, la sintaxis es simple, tan solo tendremos que escribir top en la terminal, y podremos ver algo parecido a esto:
![Comando top de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux25.png)
Este comando proporciona mucha información, desde procesos en ejecución, incluyendo sus PID (un ID que se le asigna a un proceso), usuarios, el uso de memoria, información del uso de la CPU, tiempo de ejecución, etc., lo que suele ser de gran ayuda para identificar qué procesos pueden estar ocasionando un consumo elevado de recursos.
Una vez ejecutado el comando, existen varias opciones que te permiten interactuar con el resultado, por ejemplo:
- k: finaliza un proceso
- M: Ordena la lista de procesos por uso de memoria
- N: Ordena la lista de procesos por PID.
- r: Cambia la prioridad de un proceso.
- h: Muestra la ventana de ayuda.
Por último, también existen varios que permiten modificar ciertas funciones del comando, por ejemplo, si únicamente queremos que se muestren los procesos de un usuario en concreto, podemos ejecutar lo siguiente:
top -u usuario
El comando top se ejecuta de forma indefinida y va cargando/actualizando los resultados cada 3 segundos, no obstante, esto podríamos modificarlo. Por ejemplo, si queremos que la tasa de refresco sea de 10 segundos, y que únicamente nos muestre 5 resultados, el comando a ejecutar sería el siguiente:
top -n5 –d10
Comando htop
El comando "htop" muestra la misma información que el comando top, aunque de una forma más colorida y clara, y además, también dispone de ciertas opciones más sencillas de utilizar y que son de bastante utilidad para gestionar los procesos de nuestro sistema. Podemos ejecutarlo de la misma forma que top, incluyendo todos los parámetros anteriormente comentados.
![Comando htop de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux26.png)
Realmente, tiene la misma función que el comando top, pero con elementos mejorados, por ejemplo, nos permite utilizar el ratón en dicha interfaz y nos muestra por pantalla instrucciones para realizar ciertas tareas (mediante teclas).
Comando ps
Otro comando que nos permite revisar los procesos del sistema, aunque en este caso imprime en pantalla el resultado una única vez, es decir, nos muestra información de ese momento en concreto, y no en tiempo real como en el caso de "top" o "htop".
Para ejecutar el comando, únicamente habría que introducir "ps" en la terminal, y de esta forma, nos listará los procesos que estén en ese momento en ejecución, así como su PID, duración (TIME, el comando que lanza dicho proceso (CMD) y el TTY (tipo de terminal).
![Comando ps de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux27.png)
Este comando tiene varias opciones que nos permiten mostrar más información:
- u usuario: lista procesos asociados a un usuario en concreto.
- A: muestra los procesos que se están ejecutando en el sistema (de todos los usuarios).
- x: muestra los procesos del usuario que está ejecutando el comando.
- f: muestra los procesos de forma más detallada.
Comando kill
Se utiliza para terminar un proceso que se esté ejecutando, puede ser de utilidad para matar ciertos procesos maliciosos o procesos que se hayan quedado "colgados", y para ello necesitaremos el PID del proceso en cuestión, el cual podremos conseguir fácilmente con los comandos "top" o "ps":
kill [opciones] PID
Es importante tener en cuenta que no siempre es recomendable matar un proceso directamente, ya que esto podría provocar que otros procesos no respondan por ello. Es por esto, por lo que este comando incluye una función denominada "señales", que se utilizan para indicarle al proceso que es lo que tiene que hacer exactamente.
Dichas señales podemos verlas con el siguiente mediante añadiendo el parámetro "-l":
![Comando kill de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux28.png)
Las señales más utilizadas, son las siguientes:
1) SIGHUP: reinicia el proceso completamente.
9) SIGKILL: le indica al proceso que debe finalizar de inmediato (sin liberar los recursos que esté utilizando), esta señal no puede ser ignorada por el proceso en cuestión.
15) SIGTERM: le permite al proceso terminar su ejecución de forma normal, dándole la posibilidad de liberar esos recursos que está utilizando. No obstante, esta señal sí que puede ser ignorada por el proceso, por lo que, en ciertas ocasiones, habría que utilizar "SIGKILL" para matarlo completamente.
Comando wget
Este comando nos permite descargar archivos/directorios a través de conexiones FTP, HTTP o HTTPS, nos permite descargar ciertos contenidos de internet, o incluso una instalación completa alojada en otro servidor.
wget [opción] [url]
Por ejemplo, si queremos descargar el propio WordPress mediante terminal, podríamos utilizar el comando
wget http://wordpress.org/latest.tar.gz
![Descargar WordPress mediante terminal con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux29.png)
Este es uno de los comandos en el que más opciones y parámetros puedes añadir, una de sus funciones más interesantes es sin duda la descarga mediante FTP
wget --ftp-user=Usuario_FTP --ftp-password=Contraseña_FTP ftp://servidor_FTP_origen/directorio/archivo
Comando wc
Este comando nos permite contar líneas, palabras, y bytes de un archivo concreto, la sintaxis del comando es la siguiente:
wc [opciones] archivo
Las opciones/parámetros que nos permite incluir el plugin son las siguientes:
- -l -> muestra únicamente las líneas del fichero.
- -w -> muestra el número total de palabras del fichero.
- -c -> muestra los bytes del fichero.
Comando diff
El comando "diff" nos permite comparar 2 archivos para verificar si coinciden, también nos permite comparar 2 directorios y verificar si tienen la misma estructura.
diff [opciones] fichero1 fichero2
Las opciones más interesantes del comando pueden ser:
- -b -> hace la comparación omitiendo los espacios en blanco.
- -r -> comprueba directorios de forma recursiva.
- -q -> muestra solo los archivos que difieren entre los directorios
Para comparar dos directorios y que se muestren las diferencias, tendríamos que lanzar el siguiente comando:
diff -r -q directorio1/ directorio2/
Comando sort
El comando "sort" nos permite ordenar las líneas de un archivo de texto de forma numérica o alfabéticamente. Es muy útil si queremos ordenar un resultado muy grande de otro comando.
sort [opciones] [archivo]
Las opciones más interesantes de este comando son las siguientes:
- -n –> para ordenar de forma numérica.
- -r –> para invertir el orden en el que se muestra el resultado
- -k –> te permite ordenar dependiendo de un campo o columna en específico
Comando history
Si no recordamos algún comando que hemos lanzado, el comando "history" es tu solución al respecto, ya que nos permite verificar qué comandos se han lanzado recientemente desde la terminal (registra los últimos 500 comandos).
Para utilizarlo, simplemente tendremos que escribir el propio comando y ya nos mostrará el resultado por pantalla, no obstante, si queremos que nos muestre únicamente los últimos 15 comandos, podemos hacer de la siguiente forma:
![Comando history de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux30.png)
Comando ping
El comando "ping" envía paquetes ICMP al destino que le indiquemos (una IP o a un dominio) y suele utilizarse para revisar si existen problemas de conectividad. La sintaxis es sencilla
ping [opción] [hostname_o_dirección_IP]
Las opciones que nos permite añadir este plugin son las siguientes:
- -i -> te permite establecer la periodicidad entre cada paquete enviado.
- -c -> te permite establecer el número máximo de paquetes enviados.
Si escribimos únicamente el comando "ping" seguido de la IP o dominio, los paquetes se enviarán por defecto cada segundo y de forma ilimitada (hasta que forcemos su salida).
En caso de que quisiéramos establecer una periodicidad de 3 segundos entre paquetes y poner un límite de 4 paquetes, el comando sería el siguiente:
![Envía paquetes ICMP con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux31.png)
Comando traceroute
El comando "traceroute" se utiliza también para realizar pruebas de conectividad, envía paquetes ICMP o UDP y va comprobando todos los saltos de red hasta el destino, por lo que es de mucha utilidad si queremos detectar en qué punto en concreto se pierde la conexión
traceroute [opciones] hostname_o_dirección_IP
Algunas de las opciones interesantes que tiene son:
- -w -> define el tiempo máximo de espera entre respuestas.
- -q -> te permite establecer el número de paquetes que se envían (por defecto son 3).
![realizar pruebas de conectividad con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux32.png)
Comando nslookup
El comando "nslookup" nos permite obtener información sobre la resolución de nombres de un dominio, realiza consultas sobre nombres de dominio y verifica cómo están resolviendo las DNS, a qué IP apuntan, etc.
Este comando es muy útil para diagnosticar problemas de resolución DNS (ignora el contenido del fichero hosts de tu equipo). La sintaxis es sencilla:
nslookup [opciones] hostname_o_IP
Al ejecutar el comando, podremos ver algo parecido a esto:
![Comando nslookup con comandos de Linux](https://cdn.raiolanetworks.com/blog/wp-content/uploads/comandoslinux33.png)
La información que te está proporcionando es la siguiente:
- Server: El servidor DNS que utiliza la herramienta "nslookup" para realizar la petición.
- Address: La dirección IP desde la cual se realiza la consulta.
- Non-authoritative answer: indica que el servidor DNS local no puede responder a la consulta solicitada, por lo que tiene que contactar con uno o varios servidores DNS alternativos para poder respoderla.
- Name: Corresponde al nombre de dominio sobre el que realizas la consulta.
- Address: Hace referencia al registro A, es decir, las direcciones IP que responden al dominio.
Como puedes observar, existen infinidad de comandos y opciones que te permiten gestionar tu sistema y sitios webs de una forma rápida y eficaz, permitiéndonos incluso concatenar o lanzar otro comando en base al resultado del primero, no obstante, esto sería una gestión mucho más avanzada y que no tocaremos en este post, en el que únicamente queríamos hacer una pequeña introducción de los comandos más básicos de Linux.
Deja una respuesta
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *