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».

El emulador de terminal de Linux.
El emulador de terminal de Linux.

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
El comando ls coloreado.
El comando ls coloreado.

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
El comando alias.
El comando 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
La página de manual de
La página de manual de «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:

Comando de listado que muestra las fechas de modificación de un conjunto de archivos.
Fecha antigua.

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).

Comando de la lista que muestra la nueva fecha.
Nueva fecha

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
La interfaz
La interfaz «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"
El comando echo que muestra
El comando eco

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
El comando cat que muestra
El comando cat.

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
El comando ps.
El 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
El editor de texto vim.
El editor de texto 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
El comando history.
El comando 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
El comando passwd preguntando por la contraseña actual.
El comando 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:

Un archivo_para_destruir.txt que contiene
Archivo para triturar.

Ahora, hagamos que shred haga lo suyo escribiendo el siguiente comando:

shred file_to_shred.txt
Contenido sobreescrito.
Contenido sobreescrito.

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
El comando less.
El comando less.

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
El comando tail.
El comando tail.

Para ver solo las cuatro últimas líneas:

tail -n 4 long.txt
El comando tail muestra las últimas cuatro líneas de un archivo.
tail cuatro líneas.

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
Head con diferentes banderas en un archivo.
El comando head.

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
El comando grep.
El comando grep.

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
Neofetch mostrando información del sistema.
El comando 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!

Daniel Diaz

Daniel es un Desarrollador Python autodidacta, Escritor Técnico y aprendiz de toda la vida. Disfruta creando software desde cero y explicando este proceso a través de asombrosos artículos. Síguele en X: @DaniDiazTech