En el momento de escribir esto, Linux tiene una cuota de mercado mundial del 2,68% en ordenadores de escritorio, pero más del 90% de toda la infraestructura en la nube y los servicios de alojamiento se ejecutan en este sistema operativo. Solo por esta razón, es crucial estar familiarizado con los comandos populares de Linux.
Según la encuesta de StackOverflow de 2020, Linux es el sistema operativo más utilizado por los desarrolladores profesionales, con un impresionante 55,9% de la cuota de mercado. No es solo una coincidencia. Linux es gratuito y de código abierto, tiene mejor seguridad que sus competidores y cuenta con una potente línea de comandos que hace que los desarrolladores y usuarios avanzados sean más eficaces. También tiene acceso a un potente gestor de paquetes y a un montón de herramientas de desarrollo como DevKinsta.
Tanto si eres un administrador de sistemas con experiencia como si eres un recién llegado a Linux, puedes aprovechar esta guía.
¡Comencemos!
¿Qué es un comando de Linux?
Un comando Linux es un programa o utilidad que se ejecuta en la línea de comandos. Una línea de comandos es una interfaz que acepta líneas de texto y las procesa en forma de instrucciones para tu ordenador.
Cualquier interfaz gráfica de usuario (GUI) no es más que una abstracción de los programas de línea de comandos. Por ejemplo, cuando cierras una ventana haciendo clic en la «X», hay un comando que se ejecuta detrás de esa acción.
Un flag es una forma de pasar opciones al comando que se ejecuta. La mayoría de los comandos de Linux tienen una página de ayuda que podemos llamar con la flag -h
. La mayoría de las veces, las flag son opcionales.
Un argument o parámetro es la input que damos a un comando para que pueda ejecutarse correctamente. En la mayoría de los casos, el argumento es una ruta de archivo, pero puede ser cualquier cosa que se escriba en el terminal.
Puedes invocar flags utilizando guiones (-
) y guiones dobles (--
), mientras que la ejecución de los argumentos depende del orden en que los pase a la función.
Los comandos de Linux más utilizados
Antes de pasar a los comandos más utilizados de Linux, asegúrate de abrir un terminal. En la mayoría de las distribuciones de Linux, usarás Ctrl + Alt + T para hacerlo. Si esto no funciona, busca en tu panel de aplicaciones «terminal».
Ahora vamos a sumergirnos en los 40 comandos de Linux más utilizados. Muchos de ellos tienen múltiples opciones que puedes encadenar, así que asegúrate de revisar el manual de los comandos.
1. Comando ls
ls
es probablemente el primer comando que todo usuario de Linux teclea en su terminal. Te permite listar el contenido del directorio que quieras (el directorio actual por defecto), incluyendo archivos y otros directorios anidados.
ls
Tiene muchas opciones, así que puede ser bueno obtener algo de ayuda usando el flag --help
. Este flag devuelve todas los flag que puedes utilizar con ls.
Por ejemplo, para colorear la salida del comando ls
, puede utilizar lo siguiente:
ls --color=auto
Ahora la salida del comando ls
está coloreada, y se puede apreciar la diferencia entre un directorio y un archivo.
Pero escribir ls
con el flag de color sería ineficiente; por eso usamos el comando alias
.
2. Comando alias
El comando alias
te permite definir alias temporales en tu sesión de shell. Al crear un alias, se indica al shell que sustituya una palabra por una serie de comandos.
Por ejemplo, para que ls
tenga color sin tener que teclear el flag --color
cada vez, se usaría:
alias ls="ls --color=auto"
Como puedes ver, el comando alias
toma un par de parámetros clave-valor: alias NAME="VALUE"
. Ten en cuenta que el valor debe estar entre comillas.
Si quieres listar todos los alias que tienes en tu sesión de shell, puedes ejecutar el comando alias
sin argumento.
alias
3. Comand unalias
Como su nombre indica, el comando unalias
tiene como objetivo eliminar un alias
de los ya definidos. Para eliminar el alias ls
anterior, puedes utilizar:
unalias ls
4. Comando pwd
El comando pwd
significa «imprimir el directorio de trabajo» y muestra la ruta absoluta del directorio en el que se encuentra. Por ejemplo, si tu nombre de usuario es «john» y está en tu directorio Documentos, tu ruta absoluta sería /home/john/Documents
.
Para utilizarlo, basta con escribir pwd
en el terminal:
pwd
# My result: /home/kinsta/Documents/linux-commands
5. Comando cd
El comando cd
es muy popular, junto con ls
. Se refiere a «cambiar de directorio» y, como su nombre indica, te cambia al directorio al que intentas acceder.
Por ejemplo, si estás dentro del directorio Documentos y tratas de acceder a una de sus subcarpetas llamada Vídeos, puedes entrar en ella escribiendo:
cd Videos
También puedes proporcionar la ruta absoluta de la carpeta:
cd /home/kinsta/Documents/Videos
Hay algunos trucos con el comando cd
que pueden ahorrarte mucho tiempo al jugar con él:
1. Ir a la carpeta de inicio
cd
2. Sube un nivel
cd ..
3. Volver al directorio anterior
cd -
6. Comando cp
Es tan fácil copiar archivos y carpetas directamente en el terminal de Linux que a veces puede sustituir a los gestores de archivos convencionales.
Para utilizar el comando cp
, basta con escribirlo junto con los archivos de origen y destino:
cp file_to_copy.txt new_file.txt
También puede copiar directorios enteros utilizando el flag recursiva:
cp -r dir_to_copy/ new_copy_dir/
Recuerda que en Linux, las carpetas terminan con una barra diagonal (/
).
7. Comando rm
Ahora que sabes cómo copiar archivos, te será útil saber cómo eliminarlos.
Puedes utilizar el comando rm
para eliminar archivos y directorios. Sin embargo, ten cuidado al usarlo, porque es muy difícil (aunque no imposible) recuperar los archivos eliminados de esta manera.
Para borrar un archivo normal, escribirías:
rm file_to_copy.txt
Si deseas eliminar un directorio vacío, puedes utilizar el flag recursiva (-r
):
rm -r dir_to_remove/
Por otro lado, para eliminar un directorio con contenido en tu interior, es necesario utilizar el flag force (-f) y recursive:
rm -rf dir_with_content_to_remove/
8. Comando mv
El comando mv
se utiliza para mover (o renombrar) archivos y directorios en el sistema de archivos.
Para utilizar este comando, debes escribir tu nombre con los archivos de origen y destino:
mv source_file destination_folder/
mv command_list.txt commands/
Para utilizar las rutas absolutas, utilizarías:
mv /home/kinsta/BestMoviesOfAllTime ./
…donde ./
es el directorio en el que te encuentras.
También puedes usar mv
para renombrar archivos mientras los mantienes en el mismo directorio:
mv old_file.txt new_named_file.txt
9. Comando mkdir
Para crear carpetas en el shell, se utiliza el comando mkdir
. Solo tienes que especificar el nombre de la nueva carpeta, asegurarte de que no existe y ya está.
Por ejemplo, para crear un directorio para guardar todas tus imágenes, solo tienes que escribir:
mkdir images/
Para crear subdirectorios con un simple comando, utiliza el flag padre (-p
):
mkdir -p movies/2004/
10. Comando man
Otro comando esencial de Linux es man
. Muestra la página del manual de cualquier otro comando (siempre que tenga uno).
Para ver la página del manual del comando mkdir
, escribe:
man mkdir
Incluso puedes consultar la página del manual man
:
man man
11. Comando touch
El comando touch
permite actualizar los tiempos de acceso y modificación de los archivos especificados.
Por ejemplo, tengo un archivo antiguo que fue modificado por última vez el 12 de abril:
Para cambiar su fecha de modificación a la hora actual, necesitamos utilizar el flag -m
:
touch -m old_file
Ahora la fecha coincide con la de hoy (que en el momento de escribir este artículo era el 8 de agosto).
No obstante, la mayoría de las veces no se utilizará touch
para modificar las fechas de los archivos, sino para crear nuevos archivos vacíos:
touch new_file_name
12. Comando chmod
El comando chmod
te permite cambiar el modo de un archivo (permisos) rápidamente. Tienes un montón de opciones disponibles con él.
Los permisos básicos que puede tener un archivo son:
- r (leer)
- w (escribir)
- x (ejecutar)
Uno de los casos más comunes de uso de chmod
es hacer que un archivo sea ejecutable por el usuario. Para ello, escriba chmod
y el flag +x
, seguido del archivo en el que desea modificar los permisos:
chmod +x script
Se utiliza para hacer ejecutables los scripts, lo que permite ejecutarlos directamente utilizando la notación ./
.
13. Comando ./
Tal vez la notación ./
no sea un comando en sí mismo, pero vale la pena mencionarlo en esta lista. Permite a tu shell ejecutar un archivo ejecutable con cualquier intérprete instalado en tu sistema directamente desde el terminal. Se acabó el hacer doble clic en un archivo en un gestor de archivos gráfico!
Por ejemplo, con este comando puedes ejecutar un script de Python o un programa solo disponible en formato .run, como XAMPP. Cuando ejecutes un ejecutable, asegúrate de que tiene permisos de ejecución (x), que puedes modificar con el comando chmod
.
Aquí tenemos un sencillo script de Python y cómo lo ejecutaríamos con la notación ./
:
#! /usr/bin/python3
# filename: script
for i in range(20):
print(f"This is a cool script {i}")
Así es como convertiríamos el script en un ejecutable y lo ejecutaríamos:
chmod +x script
./script
14. Comando exit
El comando exit
hace exactamente lo que tu nombre sugiere: Con él, puedes terminar una sesión de shell y, en la mayoría de los casos, cerrar automáticamente el terminal que estás utilizando:
exit
15. Comando sudo
Este comando significa «superuser do», y te permite actuar como superusuario o usuario root mientras ejecutas un comando específico. Es la forma en que Linux se protege a sí mismo y evita que los usuarios modifiquen accidentalmente el sistema de archivos de la máquina o instalen paquetes inapropiados.
Sudo se utiliza comúnmente para instalar software o para editar archivos fuera del directorio personal del usuario:
sudo apt install gimp
sudo cd
/root/
Te pedirá la contraseña de administrador antes de ejecutar el comando que hayas escrito después.
16. Comando shutdown
Como puedes adivinar, el comando shutdown
te permite apagar tu máquina. Sin embargo, también puede utilizarse para detenerla y reiniciarla.
Para apagar el ordenador inmediatamente (el valor predeterminado es un minuto), escriba:
shutdown now
También puedes programar el apagado de tu sistema en un formato de 24 horas:
shutdown 20:40
Para cancelar una llamada de shutdown
anterior, puedes utilizar el flag -c
:
shutdown -c
17. Comando htop
htop
es un visor de procesos interactivo que te permite gestionar los recursos de tu máquina directamente desde el terminal. En la mayoría de los casos, no está instalado de forma predeterminada, así que asegúrate de leer más sobre él en su página de descargas.
htop
18. Comando unzip
El comando unzip permite extraer el contenido de un archivo .zip desde el terminal. Una vez más, este paquete puede no estar instalado por defecto, así que asegúrate de instalarlo con tu gestor de paquetes.
Aquí, estamos descomprimiendo un archivo .zip lleno de imágenes:
unzip images.zip
19. Comandos apt
, yum
, pacman
Independientemente de la distribución de Linux que utilices, es probable que uses gestores de paquetes para instalar, actualizar y eliminar el software que utilizas a diario.
Puedes acceder a estos gestores de paquetes a través de la línea de comandos, y utilizarás uno u otro dependiendo de la distro que ejecute tu máquina.
Los siguientes ejemplos instalarán GIMP, un software libre y de código abierto que suele estar disponible en la mayoría de los gestores de paquetes:
1. Basado en Debian (Ubuntu, Linux Mint)
sudo apt install gimp
2. Basado en Red Hat (Fedora, CentOS)
sudo yum install gimp
3. Basado en Arch (Manjaro, Arco Linux)
sudo pacman -S gimp
20. Comando echo
El comando echo
muestra el texto definido en el terminal – es así de simple:
echo "Cool message"
Su uso principal es imprimir las variables de entorno dentro de esos mensajes:
echo "Hey $USER"
# Hey kinsta
21. Comando cat
Cat
, abreviatura de «concatenate», permite crear, visualizar y concatenar archivos directamente desde el terminal. Se utiliza principalmente para previsualizar un archivo sin abrir un editor de texto gráfico:
cat long_text_file.txt
22. Comando ps
Con ps
, puedes echar un vistazo a los procesos que tu sesión de shell actual está ejecutando. Imprime información útil sobre los programas que está ejecutando, como el ID del proceso, el TTY (Teletipo), la hora y el nombre del comando.
ps
En caso de que quieras algo más interactivo, puedes utilizar htop
.
23. Comando kill
Es molesto cuando un programa no responde y no puedes cerrarlo por ningún medio. Afortunadamente, el comando kill
resuelve este tipo de problemas.
En pocas palabras, kill envía una señal TERM o kill
a un proceso que lo termina.
Puedes matar procesos introduciendo el PID (ID de los procesos) o el nombre binario del programa:
kill 533494
kill firefox
Ten cuidado con este comando – con kill
, corres el riesgo de borrar accidentalmente el trabajo que has estado haciendo.
24.Comando ping
ping
es la utilidad de terminal de red más popular que se utiliza para probar la conectividad de la red. ping
tiene un montón de opciones, pero en la mayoría de los casos, lo utilizarás para solicitar un dominio o una dirección IP:
ping google.com
ping 8.8.8.8
25. Comando vim
vim
es un editor de texto de terminal libre y de código abierto que se utiliza desde los años 90. Te permite editar archivos de texto plano utilizando combinaciones de teclas eficientes.
Algunas personas consideran que es difícil de usar — salir de Vim es una de las preguntas más vistas en StackOverflow- pero una vez que te acostumbras a él, se convierte en tu mejor aliado en la línea de comandos.
Para activar Vim, solo tienes que escribir:
vim
26. Comando history
Si te cuesta recordar un comando, el history
es muy útil. Este comando muestra una lista enumerada con los comandos que has utilizado en el pasado:
history
27. Comando passwd
passwd
te permite cambiar las contraseñas de las cuentas de usuario. En primer lugar, te pide que introduzcas tu contraseña actual y, a continuación, te pide una nueva contraseña y una confirmación.
Es similar a cualquier otro cambio de contraseña que hayas visto en otros lugares, pero en este caso, es directamente en tu terminal:
passwd
Ten cuidado al usarlo: ¡no querrás estropear tu contraseña de usuario!
28. Comando which
El comando which
muestra la ruta completa de los comandos del shell. Si no puede reconocer el comando dado, arrojará un error.
Por ejemplo, podemos usar esto para comprobar la ruta binaria para Python y el navegador web Brave:
which python
# /usr/bin/python
which brave
# /usr/bin/brave
29. Comando shred
Si alguna vez has querido que un archivo sea casi imposible de recuperar, shred
puede ayudarte con esta tarea. Este comando anula el contenido de un archivo repetidamente, y como resultado, el archivo dado se vuelve extremadamente difícil de recuperar.
Aquí hay un archivo con poco contenido:
Ahora, hagamos que shred
haga lo suyo escribiendo el siguiente comando:
shred file_to_shred.txt
Si deseas eliminar el archivo de inmediato, puedes utilizar el flag -u
:
shred -u file_to_shred.txt
30. Comando less
less
(opuesto a more) es un programa que permite inspeccionar archivos hacia atrás y hacia adelante:
less large_text_file.txt
Lo bueno de less
es que incluye los comandos more y vim
en su interfaz. Si necesitas algo más interactivo que cat
, less
es una buena opción.
31. Comando tail
Similar a cat
, tail
imprime el contenido de un archivo con una advertencia importante: sólo imprime las últimas líneas. Por defecto, imprime las últimas 10 líneas, pero puedes modificar ese número con -n
.
Por ejemplo, para imprimir las últimas líneas de un archivo de texto de gran tamaño, se utilizaría:
tail long.txt
Para ver solo las cuatro últimas líneas:
tail -n 4 long.txt
32. Comando head
Éste es complementario al comando tail
. head
muestra las primeras 10 líneas de un archivo de texto, pero puede establecer cualquier número de líneas que desee mostrar con la flag -n
:
head long.txt
head -n 5 long.txt
33. Comando grep
Grep es una de las utilidades más potentes para trabajar con archivos de texto. Busca líneas que coincidan con una expresión regular y las imprime:
grep "linux" long.txt
Puede contar el número de veces que se repite el patrón utilizando el flag -c
:
grep -c "linux" long.txt
# 2
34. Comando whoami
El comando whoami
(abreviatura de «who am i») muestra el nombre de usuario actualmente en uso:
whoami
# kinsta
Se obtendría el mismo resultado utilizando echo
y la variable ambiental $USER:
echo $USER
# kinsta
35. Comando whatis
whatis
imprime una descripción de una sola línea de cualquier otro comando, lo que lo convierte en una referencia útil:
whatis python
# python (1) - an interpreted, interactive, object-oriented programming language
whatis whatis
# whatis (1) - display one-line manual page descriptions
36. Comando wc
Wc significa «word count» (recuento de palabras) y, como su nombre indica, devuelve el número de palabras de un archivo de texto:
wc long.txt
# 37 207 1000 long.txt
Vamos a desglosar la salida de este comando:
- 37 líneas
- 207 palabras
- 1000 bytes de tamaño
- El nombre del archivo (long.txt)
Si solo necesitas el número de palabras, utiliza el indicador -w
:
wc -w long.txt
207 long.txt
37. Comando uname
uname
(abreviatura de «Unix name») imprime la información del sistema operativo, lo que resulta útil cuando se conoce la versión actual de Linux.
La mayoría de las veces, usted utilizará el flag -a
(–all), ya que la salida por defecto no es tan útil:
uname
# Linux
uname -a
# Linux kinstamanjaro 5.4.138-1-MANJARO #1 SMP PREEMPT Thu Aug 5 12:15:21 UTC 2021 x86_64 GNU/Linux
38. Comando neofetch
Neofetch es una herramienta CLI (command-line interface) que muestra información sobre tu sistema -como la versión del kernel, el shell y el hardware- junto a un logotipo ASCII de tu distribución de Linux:
neofetch
En la mayoría de las máquinas, este comando no está disponible por defecto, así que asegúrate de instalarlo primero con tu gestor de paquetes.
39. Comando find
El comando find
busca archivos en una jerarquía de directorios basándose en una expresión regex. Para utilizarlo, sigue la siguiente sintaxis:
find [flags] [path] -name [expression]
Para buscar un archivo llamado long.txt en el directorio actual, introduce lo siguiente
find ./
-name "long.txt" # ./long.txt
Para buscar archivos que terminen con una extensión .py (Python), puedes utilizar el siguiente comando:
find ./
-type f -name "*.py" ./get_keys.py ./github_automation.py ./binarysearch.py
40. Comando wget
wget
(World Wide Web get) es una utilidad para recuperar contenidos de Internet. Tiene una de las mayores colecciones de flags que existen.
Así es como se descarga un archivo de Python desde un repositorio de GitHub:
wget https://raw.githubusercontent.com/DaniDiazTech/Object-Oriented-Programming-in-Python/main/object_oriented_programming/cookies.py
Hoja de trucos de los comandos de Linux
Siempre que quiera una referencia rápida, solo tiene que revisar la siguiente tabla:
Comando | Uso |
---|---|
ls |
Lista el contenido de un directorio |
alias |
Definir o mostrar alias |
unalias |
Eliminar las definiciones de alias |
pwd |
Imprime el directorio de trabajo |
cd |
Cambios en el directorio |
cp |
Copia archivos y directorios |
rm |
Eliminar archivos y directorios |
mv |
Mueve (renombra) archivos y directorios |
mkdir |
Crea directorios |
man |
Muestra la página del manual de otros comandos |
touch |
Crea archivos vacíos |
chmod |
Cambia los permisos de los archivos |
./ |
Ejecuta un ejecutable |
exit |
Sale de la sesión actual del shell |
sudo |
Ejecuta los comandos como superusuario |
shutdown |
Apaga tu máquina |
htop |
Muestra información sobre procesos y recursos |
unzip |
Extrae archivos ZIP comprimidos |
apt , yum , pacman |
Gestores de paquetes |
echo |
Muestra las líneas de texto |
cat |
Imprime el contenido del archivo |
ps |
Informa del estado de los procesos del shell |
kill |
Termina los programas |
ping |
Prueba la conectividad de la red |
vim |
Edición eficiente de textos |
history |
Muestra una lista de comandos anteriores |
passwd |
Cambia la contraseña del usuario |
which |
Devuelve la ruta binaria completa de un programa |
shred |
Sobrescribe un archivo para ocultar su contenido |
less |
Inspecciona los archivos de forma interactiva |
tail |
Muestra las últimas líneas de un archivo |
head |
Muestra las primeras líneas de un archivo |
grep |
Imprime las líneas que coinciden con los patrones |
whoami |
Salidas nombre de usuario |
whatis |
Muestra descripciones de una sola línea |
wc |
Archivos de recuento de palabras |
uname |
Muestra la información del sistema operativo |
neofetch |
Muestra información sobre el sistema operativo y el hardware |
find |
Busca archivos que siguen un patrón |
wget |
Recupera archivos de Internet |
Resumen
Puede llevar algún tiempo aprender Linux, pero una vez que domines algunas de sus herramientas, se convertirá en tu mejor aliado, y no te arrepentirás de haberlo elegido como tu conductor diario.
Una de las cosas destacables de Linux es que, incluso si eres un usuario experimentado, nunca dejarás de aprender para ser más productivo usándolo.
Hay muchos más comandos de Linux útiles. Si nos hemos dejado algo, ¡comparte tus comandos Linux favoritos en los comentarios de abajo!
Deja una respuesta