Cuáles son los comandos esenciales de Ubuntu?
Los lectores habituales me han hecho esta pregunta varias veces, y he intentado evitar responderla.
¿Por qué? ¿No conozco los comandos de Ubuntu? No. Esa no es la razón. Es porque es difícil clasificarlos. Lo que es esencial para mí puede no serlo para ti.
Pero supongo que eso se aplica a todo y a todas las listas de aplicaciones recomendadas de nuestro portal.
Es por eso que finalmente cedí y creé esta lista de comandos básicos pero esenciales de Linux que deberían serte útiles como usuario de Ubuntu. Esto está más enfocado a usuarios de Ubuntu de escritorio, pero si usas Ubuntu como servidor, también deberían ayudarte. Los usuarios de Debian y otras distribuciones de Linux también podrían encontrarlo útil.
Comandos esenciales de Ubuntu
Cada comando que enumero aquí tiene múltiples opciones y varios usos. Si intento dar incluso los ejemplos más comunes de cada comando, se convertirá rápidamente en un libro de bolsillo de más de 10.000 palabras.
No entraré en detalles con ninguno de estos comandos. Enumeraré el propósito de cada comando con su sintaxis básica. Puedes leer más sobre el uso de estos comandos en sus tutoriales enlazados.
Lectura recomendada antes de empezar a seguir la lista:
Otra cosa. Aquí he utilizado más el término carpeta que el de directorio.
Una carpeta se llama directorio en Linux, y puede que a los puritanos no les guste esto. Sin embargo, creo que es más fácil de entender para los principiantes.
ls: Lista el contenido de una carpeta
Este es uno de los primeros comandos que aprende un nuevo usuario de Linux. Este comando te permite ver qué archivos y carpetas hay en tu carpeta actual.
ls
Puede utilizar la opción de listado largo ls -l para ver detalles como el tamaño del archivo, el permiso, la hora de modificación, etc. Puedes ordenar y controlar estas opciones si lo deseas.
ls -l
Lectura relacionada: ejemplos del comando ls
cd: Cambiar de directorio
Por defecto, empiezas en tu carpeta personal. A menudo necesitarás cambiar la carpeta y moverte a otra.
Por ejemplo, has descargado un archivo deb o un script. Ahora quieres ejecutarlo. Puedes hacerlo desde tu directorio de trabajo actual proporcionando la ruta completa, pero cambiar a esa ubicación facilita las cosas.
El comando cd significa cambiar directorio; con esto, puedes cambiar tu ubicación y moverte a otra.
En este punto, recomiendo encarecidamente leer sobre el concepto de rutas en Linux para que las cosas sean fáciles de entender mientras se navega a través de directorios en la línea de comandos de Linux.
Lectura recomendada: ejemplos del comando cd
cat: Leer un archivo de texto
Si quieres ver rápidamente el contenido de un archivo de texto en Linux, cat es el comando que debes utilizar. Muestra el contenido en la pantalla.
cat nombre_archivo
También puede utilizar el comando cat para crear nuevos archivos o añadir más texto a los archivos existentes.
less: Leer un archivo de texto grande
El comando cat es lo suficientemente bueno para ver archivos de texto pequeños. Pero no te recomiendo usar cat si tienes un archivo de texto enorme con cientos de líneas. Inundará tu pantalla con todo el texto, y tendrás dificultades con él.
Aquí es donde el comando less entra en escena. Cuando abres un archivo con less, lo abre en páginas. Puedes desplazarte arriba/abajo, buscar texto y mucho más.
Una vez que haya terminado de leer el fichero, puede salir de la vista reducida pulsando la tecla Q. Verás que no aparece nada en la pantalla. Tu pantalla estará limpia.
Lectura sugerida: ejemplos del comando less
touch: Crear nuevos archivos
Hay múltiples formas de crear nuevos archivos en la terminal de Linux. El comando cat que viste arriba también puede crear nuevos archivos.
Sin embargo, prefiero el comando touch para este propósito.
touch nuevo_nombre_de_archivo
Si lo utiliza con archivos existentes, se modificarán sus marcas de tiempo.
Lea también: Ejemplos del comando touch
mkdir: Crear nuevas carpetas
Si bien no existe un comando específico para crear nuevos archivos, hay un comando dedicado para crear nuevas carpetas (o directorios, como los llamamos en Linux).
mkdir nuevo_directorio
Lectura recomendada: Ejemplos del comando mkdir
cp: Copiar archivos y carpetas
Copiar archivos y carpetas en la línea de comandos es también una de las tareas más comunes con las que te encontrarás. El comando cp, abreviatura de copy, se utiliza para este propósito.
Imagina que tienes que modificar un archivo de configuración. Un movimiento inteligente será copiar el archivo con otro nombre. De esta forma, tendrás una copia de seguridad del fichero.
cp nombre_archivo_origen.txt nombre_archivo_destino.back
También puede utilizar el mismo comando cp para copiar directorios. Para ello, debe especificar la opción recursiva -r:
cp -r directorio ubicacion_destino
Lectura recomendada: Ejemplos del comando cp
mv: Cortar-pegar o renombrar archivos y carpetas
El comando mv significa 'mover'. Cuando copias un archivo a otra ubicación, éste permanece en su lugar original.
El comando mv mueve los archivos y carpetas a la otra ubicación. Es como cortar y pegar.
mv archivo.txt /otra/ubicación
También puede utilizar el comando mv para renombrar el archivo.
mv archivo.txt nuevo_archivo.txt
El mismo comando mv también mueve o renombra carpetas sin ninguna opción especial.
Lectura recomendada: Ejemplos del comando mv
rm: Eliminar archivos y carpetas
El comando rm (abreviatura de remove) se utiliza para eliminar archivos en el terminal de Linux.
rm nombre_de_archivo
No existe la opción de deshacer después de borrar archivos en la línea de comandos. Por eso debe ser extremadamente cuidadoso al borrar archivos. Si tienes miedo de borrar el archivo equivocado, utiliza el modo interactivo con la opción -i, que te da un prompt adicional para confirmar la acción.
rm -i nombre_de_archivo
Con la opción recursiva -r, también puede utilizar el mismo comando rm para eliminar carpetas.
Lectura recomendada: Ejemplos del comando rm
nano: Editar archivos
Tarde o temprano, tendrás que hacer cambios en el contenido de un archivo. Imagina que tienes que cambiar un archivo de configuración de SSH, grub, o alguna otra aplicación.
Existen editores de texto basados en línea de comandos para este propósito. Ubuntu viene con el editor Nano preinstalado, y es relativamente más fácil de usar que Vim, Emacs, etc.
Si tienes curiosidad sobre las diferencias, lee nuestro artículo comparativo Nano vs. Vim.
Más fácil de usar no significa la misma comodidad que un editor de texto basado en GUI. Tendrás que usar los atajos de teclado para moverte, hacer cambios, guardar y salir de los archivos.
Para abrir un nuevo archivo sin nombre con nano, utilice:
nano
Para editar un archivo existente en Nano, utilice:
nano nombre_de_archivo
En ambos casos, debería ver una interfaz como ésta.
Para guardar (o descartar los cambios) y salir de la interfaz del editor, utiliza las teclas Ctrl+x.
Por favor, consulta la guía para principiantes de Nano que he creado antes para familiarizarte con ella.
clear: Limpiar la pantalla del terminal
Nano parece complicado, ¿verdad? Déjame compartir un comando simple.
El comando clear limpia la terminal. Eso es todo.
clear
¿Y por qué necesitas hacer eso? Bueno, si la pantalla de tu terminal está inundada de cosas aleatorias y quieres hacer algo nuevo. Limpiar el terminal es como limpiar la pizarra o abrir una nueva página en tu cuaderno.
ps: Comprobar y manejar procesos
El comando ps sirve para manejar los procesos que se están ejecutando en tu sistema. Cada proceso tiene un ID asociado llamado PID, que puede ser usado para varios propósitos, como terminar un proceso.
marcocarmonapy@Msi:~$ ps
PID TTY TIME CMD
30022 pts/0 00:00:00 bash
30042 pts/0 00:00:00 ps
Aquí,
- PID: ID del proceso
- TTY: Terminal de control asociada al proceso (Hoy en día no es tan importante)
- TIEMPO: Tiempo total de uso de la CPU
- CMD: Nombre del comando que ejecuta el proceso
Pero un sistema no puede ejecutar sólo 2-3 procesos, ¿verdad? Para ver todos los procesos ejecutados por todos los usuarios, utilice:
ps aux
Esto le dará una lista masiva de procesos y más detalles sobre ellos. Si ejecutas este comando, ahora será un excelente momento para usar el comando clear.
Lectura recomendada: Ejemplos de comandos ps
top: Monitor del sistema
Mientras que el comando ps le proporciona todos los procesos en ejecución, el comando top le ofrece una vista en tiempo real de los procesos y del consumo de recursos del sistema.
top
Considéralo como la variante terminal del gestor de tareas en Linux. Verás un montón de detalles interesantes con el comando top.
Yo utilizo el comando top principalmente para comprobar qué proceso consume demasiada CPU o RAM. Hay mejores alternativas de top si estás interesado en experimentar.
Para detener la ejecución del comando top, utilice la combinación de teclas Ctrl+C.
Lectura recomendada: Utilizar el comando top eficazmente como gestor de tareas
lsblk: Listar discos y particiones
El comando lsblk lista todos los dispositivos de bloque de su sistema. En términos muy simples (y no del todo precisos técnicamente), muestra los discos y particiones.
root@Msi:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 79.9M 1 loop /snap/lxd/22923
loop1 7:1 0 103M 1 loop /snap/lxd/23541
loop2 7:2 0 63.2M 1 loop /snap/core20/1623
loop3 7:3 0 48M 1 loop /snap/snapd/17336
loop4 7:4 0 48M 1 loop /snap/snapd/17029
loop6 7:6 0 63.2M 1 loop /snap/core20/1634
vda 252:0 0 25G 0 disk
├─vda1 252:1 0 24.9G 0 part /
├─vda14 252:14 0 4M 0 part
└─vda15 252:15 0 106M 0 part /boot/efi
vdb 252:16 0 466K 1 disk
root@Msi:~#
fdisk: Listar y gestionar discos y particiones
Otro comando similar pero mejor es el comando fdisk. Te permite manipular las particiones del disco. Esto significa que puedes crear nuevas particiones y borrar y redimensionar las existentes con este comando.
También puedes usarlo para listar todos los dispositivos de bloque, incluidos los de bucle, de tu sistema.
sudo fdisk -l
La salida podría ser enorme si tienes muchas particiones, discos y dispositivos de bucle (creados por aplicaciones snap). Aquí muestro una parte relevante de la salida:
Disk /dev/ram0: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/ram1: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
find: Buscar archivos
Incluso como usuario de escritorio, te encontrarás con casos en los que tendrás que buscar archivos en la línea de comandos de Linux.
El comando find es un comando extenso y versátil para este propósito. Tiene más de cincuenta opciones, y probablemente nunca las necesites todas.
Aquí hay un ejemplo del comando find que te dará todos los archivos que terminan con extensión .txt en el directorio actual.
find . -type f -name "*.txt"
Otros ejemplos comunes son la búsqueda de archivos por tamaño, hora de modificación, etc. Puede combinar find con exec o xargs para realizar acciones sobre el resultado del comando find. Por ejemplo, puede buscar todos los archivos .txt y elegir eliminarlos.
Lea también: Ejemplos del comando find
grep: Buscar en el contenido del archivo
El comando find busca archivos basándose en su nombre y tipo. Si desea buscar basándose en el contenido de los archivos, utilice el comando grep.
Así, en lugar de buscar todos los archivos que terminan en .txt, con grep buscas todos los archivos que contienen el texto 'foss'.
grep -ri término_a_buscar
¿Quieres más? Aquí tienes más ejemplos prácticos del comando grep. La práctica hoja de trucos de grep te ayudará.
kill: Terminar procesos
La violencia no es la respuesta... es la solución.
Es broma.
Si tienes un proceso que se porta mal y consume demasiados recursos del sistema, puedes encontrarlo y terminarlo usando el comando kill.
sudo kill -9 id_del_proceso_o_nombre
Como puedes ver en el comando anterior, necesitas saber el ID del proceso (PID) o el nombre para terminarlo. Puede utilizar el comando ps o top para obtener el PID o el nombre exacto del proceso.
ps aux | grep -i “nombre_del_programa_deseado”
¿Te has fijado en el uso del comando grep? Ya estás utilizando los comandos mencionados en esta lista.
history: Revisa qué comandos ejecutaste en el pasado
Hace unos días utilizaste un comando específico de Linux. Necesitas volver a ejecutarlo, pero no puedes recordarlo correctamente.
Puedes pulsar las teclas de flecha arriba y abajo.
Ese es un escenario familiar para muchos usuarios de Linux; aquí es donde el comando historial ayuda.
En Ubuntu, tu shell guarda un historial de los comandos que ejecutas. Introduce history en el terminal, y deberías ver un historial de los comandos que ejecutaste en el pasado.
Puede elegir ejecutar una entrada del historial utilizando su número de la siguiente manera:
!número
Pero incluso el historial puede ser enorme, así que (de nuevo) utiliza el comando grep para filtrar tu término de búsqueda.
marcocarmonapy@Msi:~/test$ history | grep -i docker
1034 docker-compose up --build -d
1037 docker-compose up -d
1038 docker-compose ps
1050 docker-compose ps
1051 docker-compose stop sn-msa-container
1052 docker-compose ps
1053 docker stop sn-msa-container
1054 docker-compose ps
1079 docker-compose ps
Hay otra forma de acceder al historial de comandos y buscar en él. Pulse Ctrl+R y, a continuación, introduzca el término de búsqueda.
Lectura recomendada: ejemplos del comando history
chmod: Cambiar permisos de archivos
Recomiendo encarecidamente leer acerca de los permisos de archivos de Linux en esta etapa. Eso te ayudará a entender las cosas mejor que simplemente ejecutar el comando chmod a ciegas.
El comando chmod (cambiar modo) se utiliza para cambiar los permisos de un archivo.
El uso más común de este comando es cuando quieres hacer ejecutable un archivo. ¿Tienes un script de shell? Hazlo ejecutable así:
chmod u+x archivo_ejecutable
Muchos más casos de uso hacen de chmod un comando imprescindible para los usuarios de Ubuntu.
Dato curioso: La empresa matriz de It's FOSS es chmod777 Media Tech. El comando chmod 777 da todos los permisos a todos los usuarios. Esto representa nuestro lema de 'acceso al conocimiento para todos'.
lshw: Obtener los detalles del hardware
Hay toneladas de herramientas de línea de comandos para obtener los detalles del hardware y otra información del sistema en Linux.
La que probablemente viene preinstalada en Ubuntu es lshw (abreviatura de list hardware).
Ahora, por defecto, muestra una gran salida con detalles sobre todos los componentes de hardware y créeme, eso no es muy fácil de entender.
lshw
Puedes sentir la tentación de usar grep aquí, pero no hay necesidad de eso. La salida de lshw está dividida en clases y puedes usarla para mostrar los detalles de una clase de hardware.
¿Quieres saber el fabricante de tus adaptadores de red? Usa esto:
lshw -C network
sudo: Ejecutar comandos con privilegios de root
Te habrás dado cuenta de que he utilizado sudo como prefijo para algunos comandos de los que he hablado anteriormente.
Por defecto, en Ubuntu, sudo está configurado de forma que te permite (al usuario admin por defecto) ejecutar cualquier comando con privilegios de root.
Se te pide que introduzcas una contraseña, y es la contraseña de tu cuenta de usuario. Cuando introduces la contraseña, no aparece nada en la pantalla. Los nuevos usuarios se desconciertan, pero es el comportamiento esperado en UNIX/Linux. Escribes la contraseña y pulsas intro.
Más información sobre el usuario root en Ubuntu aquí.
apt: Instalar, eliminar y gestionar paquetes .deb
El comando apt se utiliza para gestionar paquetes en Ubuntu. Tendrás que usarlo con sudo ya que son tareas administrativas.
Para instalar un paquete, utiliza:
sudo apt install nombre_de_paquete
Para eliminar un software instalado, utilice:
sudo apt remove nombre_de_paquete
Para actualizar su sistema Ubuntu con todos los paquetes actualizables a la vez:
sudo apt update && sudo apt upgrade
La diferencia entre apt update y upgrade es que un update refresca la caché de paquetes y el upgrade realmente instala la actualización.
Hay mucho más en el comando apt. Puede leer esta guía detallada del comando apt.
add-apt-repository: Añadir y eliminar PPAs
De acuerdo. Este comando no es tan popular como lo era hace una década. Todavía se encontrará con el comando add-apt-repository aquí y allá. Se utiliza para gestionar los PPA (repositorios no oficiales generados por los usuarios) de tu sistema.
Mientras sigues tutoriales en la web, puede que te encuentres con instrucciones de instalación que se componen de tres líneas:
sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt update
sudo apt install lighttable-installer
El primer comando es añadir el PPA (repositorio externo). Ya estás familiarizado con los dos siguientes, que se utilizan para actualizar la caché de paquetes e instalar software proporcionado por el repositorio PPA que acabas de añadir.
Para eliminar un PPA, primero debes eliminar el software que instalaste desde él y luego eliminarlo de la siguiente manera:
sudo add-apt-repository -r ppa:dr-akulavich/lighttable
Tengo una guía completa sobre PPA para más detalles sobre este tema.
snap: Instalar, eliminar y gestionar paquetes snap
Hasta ahora, conoces los paquetes apt y su gestión. Sin embargo, Ubuntu también usa y recomienda activamente usar su formato de paquetes snap.
Aprender algunos comandos básicos de snap te ayudará a gestionar estos paquetes de forma efectiva.
Para encontrar un paquete, utiliza
snap find término_a_buscar
Para instalar un paquete, utilice:
sudo snap install nombre_de_paquete
Para listar las aplicaciones snap instaladas:
snap list
Para listar las aplicaciones snap instaladas:
sudo snap remove nombre_de_paquete
ip: Comprobar la dirección IP y otra información
El comando ip te permite comprobar tu dirección IP. También puedes ver y manipular las rutas, dispositivos de red y más.
ip a
ping: Comprueba si el sistema remoto es alcanzable
Ping es otro comando de red de Linux que deberías conocer. Para comprobar si un sistema remoto está disponible o no, dale su dirección IP al comando ping:
ping dirección_ip
También puedes utilizarlo para comprobar si un sitio web está caído, aunque últimamente no es muy preciso.
Utilice Ctrl+C para detener la ejecución del comando ping.
Lectura recomendada: Ejemplos del comando ping
ssh: Conectarse a sistemas remotos
No me atrevía a añadir ssh a la lista de comandos Linux imprescindibles. Muchos usuarios de escritorio pueden no necesitarlo. SSH se utiliza para conectarse a otros sistemas Linux desde tu terminal.
ssh usuario@dirección_ip_del_sistema_remoto
Necesitas conocer el usuario y la contraseña del sistema remoto, por supuesto.
Si tienes servidores en la nube o una configuración doméstica donde hay otros sistemas Linux disponibles, puedes usarlo para conectarte a ellos desde tu sistema principal.
scp: Copia archivos entre sistemas remotos
Ya que incluí ssh en la lista, era justo incluir algo para transferir archivos entre los sistemas remotos a través de una conexión SSH.
El comando scp funciona casi como el comando cp que viste antes.
Aquí tienes un ejemplo que copia el fichero desde el directorio home del usuario en el sistema remoto al directorio actual de tu sistema local conectado.
scp nombre_usuario@dirección_ip:/home/nombre_usuario/nombre_archivo .
Lectura recomendada: Ejemplos de comandos scp
exit: Cierra el terminal
La lista de comandos esenciales de Linux está terminando. Así que hablemos de salir de la terminal. Es muy sencillo. Sólo tienes que entrar:
go
Si estás utilizando otro usuario o shell, se te cerrará la sesión desde ese.
También puede utilizar las teclas Ctrl+D para salir del terminal.
shutdown: Apagar o reiniciar el sistema
Muy bien. Permíteme compartir un último comando si aún no has salido de la terminal.
¿Qué tal apagar tu sistema desde la línea de comandos?
Utiliza el comando shutdown para este propósito:
shutdown
El comando anterior programa un apagado en un minuto. Puedes hacer que se apague inmediatamente con:
shutdown -now
También puedes utilizar el mismo comando de apagado para reiniciar tu sistema Ubuntu:
shutdown -r now
Consejo adicional: man: Conozca los comandos en detalle
Uno más, y éste es el último, lo prometo. Todos los sistemas Linux vienen con un manual para los comandos. Se llama manpage, y puedes acceder a la página del manual de un comando instalado con lo siguiente:
man commando
Entender la página man puede resultar abrumador para los nuevos usuarios, pero resulta bastante útil. Te da la sintaxis genérica y la descripción de las opciones de un comando.
Cuando no estés seguro de cómo utilizar un comando, prueba a consultar su página de manual antes de buscarlo en Internet.
Siempre hay más...
Comando | Descripción |
---|---|
ls | Listar contenido de una carpeta |
cd | Cambiar de directorio |
cat | Leer un archivo de texto |
less | Leer un archivo de texto grande |
touch | Crear nuevos archivos |
mkdir | Crear nuevas carpetas |
cp | Copiar archivos y carpetas |
mv | Cortar-pegar o renombrar archivos y carpetas |
rm | Eliminar archivos y carpetas |
nano | Editar archivos |
clear | Limpiar la pantalla del terminal |
ps | Comprobar y manejar procesos |
top | Monitor del sistema |
lsblk | Listar discos y particiones |
fdisk | Listar y gestionar discos y particiones |
find | Buscar archivos |
grep | Buscar en el contenido del archivo |
kill | Terminar procesos |
history | Revisar qué comandos se ejecutaron en el pasado |
chmod | Cambiar permisos de archivos |
lshw | Obtener detalles del hardware |
sudo | Ejecutar comandos con privilegios de root |
apt | Instalar, eliminar y gestionar paquetes .deb |
add-apt-repository | Añadir y eliminar PPAs |
snap | Instalar, eliminar y gestionar paquetes snap |
ip | Comprobar dirección IP y demás información |
ping | Comprobar si el sistema remoto es alcanzable |
ssh | Conectarse a sistemas remotos |
scp | Copiar archivos entre sistemas remotos |
exit | Terminar la terminal |
shutdown | Apagar y reiniciar el sistema |
Son sólo unos 30 comandos. Y eso no es ni siquiera el 20% de los comandos de Linux. No he cubierto muchos comandos de red. Ni siquiera he tratado los comandos de gestión de usuarios.
Escribí esto teniendo en mente a un usuario normal de escritorio de Ubuntu. Estos son los tipos de comandos que es más probable que utilices. Tener algún conocimiento sobre ellos sería útil a largo plazo.
Aparte de eso, el aprendizaje no tiene fin. Incluso los usuarios más experimentados de Linux constantemente descubren y aprenden cosas nuevas.
Considerando que estás interesado en aprender comandos de Linux, déjame recomendarte algunos buenos libros y recursos de Linux.
- Cómo funciona Linux: Explica el funcionamiento de Linux más que los comandos
- The Linux Command Line por William Shotts: Legalmente disponible para descargar gratis en formato PDF
- Linux Pocket Guide por Daniel J Barrett: Comandos de Linux por categorías y brevemente explicados con pequeños ejemplos
- Aprenda Linux rápidamente: Totalmente centrado en los comandos de Linux con ejemplos adecuados y ejercicios de muestra
Aparte de eso, también puedes aprender de sitios web como Linux Journey y Linux Handbook.
Sé que ha sido una lectura larga, pero ni siquiera es la punta del iceberg. Siempre hay más cosas que aprender, pero tampoco es que tengas que sentirte miserable si no conoces todos los comandos de Linux.
Nadie lo sabe todo.
Ahora te toca a ti. ¿Te ha resultado útil esta lista de comandos de Ubuntu?
Si tuvieras que añadirle algunos comandos más, ¿cuáles serían? La sección de comentarios es toda tuya.