- La línea de comandos no es obligatoria para usar Linux.
- Pero si quieres exprimirlo de verdad, deberías aprenderla.
- Algunos comandos son mucho más útiles que otros.
Antes de empezar, quiero dejar algo claro: usar la línea de comandos no es un requisito para usar Linux. Digo esto porque la idea de “tener que escribir comandos” suele espantar a usuarios nuevos, y mi objetivo desde hace años ha sido precisamente acercar Linux a todo tipo de personas.
Dicho esto: después de más de dos décadas usando Linux, me siento totalmente cómodo con el terminal y tiendo a usarlo por defecto para muchas tareas. ¿Por qué? Porque a menudo es más eficiente que una interfaz gráfica. Puedo dejar una ventana de terminal abierta todo el tiempo y hacer casi todo sin quitar las manos del teclado.
Así que sí, hay una serie de comandos de Linux que utilizo cada día. Esos comandos me ayudan a hacer mi trabajo, mantener los sistemas en buen estado y saber qué está pasando “bajo el capó”.
Cada persona usa Linux de forma distinta, así que tu lista ideal puede cambiar. Pero estos son los nueve comandos que casi seguro se ejecutan a diario en mis máquinas.
1. top
Siempre me gusta saber qué está pasando por dentro, especialmente si noto que algo va raro. Cuando llega ese momento, mi comando de referencia es top.
Con top puedo ver rápidamente cuántos recursos está usando un proceso: CPU, memoria, tiempo de ejecución, etc. Además, puedo ver el PID (ID de proceso) asociado con cada app o comando y, si hace falta, matarlo desde ahí.
Uso top en lugar de una herramienta gráfica porque puedo conectarme por SSH a una máquina remota y tener la misma información en modo texto. Es rápido, ligero y nunca me falla.
Para abrir top, basta con ejecutar:
top
2. ssh
Probablemente podría argumentar que ssh es el comando más importante de toda esta lista.
¿Por qué? Imagina que una máquina virtual o un proceso se queda colgado y tu entorno gráfico deja de responder. En lugar de reiniciar a lo bruto, puedo conectarme desde otro equipo usando ssh, ejecutar top para localizar el PID del proceso problemático y matarlo con kill PID. Problema resuelto.
Uso ssh constantemente para acceder a otros equipos de mi red (o fuera de ella) y hacer tareas de administración: actualizar servidores, revisar logs, desplegar aplicaciones, etc. También utilizo mucho scp (parte del mismo paquete) para mover archivos de un sitio a otro.
Conectarse por SSH es muy sencillo. Por ejemplo, para entrar a un servidor en tu red local:
ssh stackscale@192.168.2.100
3. sudo
Este es, sin duda, uno de los comandos que más ejecuto a diario. ¿El motivo? Casi todo lo que implica instalar software, actualizar paquetes, gestionar servicios o modificar la configuración del sistema requiere permisos de administrador.
Sin sudo, tendría que cambiar primero al usuario root y trabajar desde ahí, algo menos seguro y más incómodo. Con sudo, obtengo privilegios de administración solo para ese comando y después se revocan automáticamente.
Fue una de las mejores decisiones de diseño en el ecosistema Unix/Linux y, a día de hoy, sigue siendo imprescindible.
Usarlo es tan simple como anteponerlo al comando que requiere permisos elevados:
sudo apt upgrade -y
4. apt
Como suelo trabajar con distribuciones basadas en Debian o Ubuntu, apt es uno de mis grandes imprescindibles. Es el gestor de paquetes que uso para instalar, actualizar, buscar y eliminar software desde el terminal.
apt hace muy sencillo gestionar aplicaciones e incluso arreglar instalaciones rotas (sudo apt install -f me ha salvado más de una vez).
Los frontends gráficos para apt son muy buenos, pero hay tareas que solo el terminal resuelve con comodidad, como limpiar paquetes huérfanos (apt autoremove) o purgar configuraciones. Por eso casi siempre acabo volviendo a la consola.
Por ejemplo, para instalar GIMP:
sudo apt install gimp -y
5. wget
wget es de esos comandos que no usas cada minuto, pero cuando lo necesitas, no hay sustituto.
Sirve para descargar archivos desde la terminal, ya sea un binario, un script de instalación o el código fuente de una aplicación. Es especialmente útil en servidores sin entorno gráfico, donde abrir un navegador web ni siquiera es una opción.
Siempre que estoy configurando un servidor nuevo o instalando software desde una URL directa, wget suele aparecer en la jugada.
Por ejemplo, para descargar el código fuente de la última versión de GIMP:
wget https://download.gimp.org/gimp/v3.0/gimp-3.0.6.tar.xz
6. ps
El comando ps es esencial cuando quieres inspeccionar procesos.
Aunque top ya da mucha información, a veces necesito un listado “congelado” y más detallado de procesos, que luego pueda filtrar. Para eso uso ps en combinación con grep.
Por ejemplo, si quiero saber más datos sobre un navegador como Zen Browser —tiempo de ejecución, PID, usuario, etc.— puedo usar ps para listar procesos y filtrar por nombre:
ps aux | grep zen
Esto me devuelve solo las líneas que contienen “zen”, y así puedo localizar rápidamente el proceso que me interesa.
ps es especialmente útil cuando quieres hacer cosas como:
- Ver cuántas instancias de un programa se están ejecutando.
- Comprobar qué usuario está lanzando un proceso.
- Obtener el PID exacto para combinarlo con
killorenice.
7. tail
Revisar logs es una de las tareas clásicas de cualquier admin de sistemas o usuario avanzado. Es la manera más directa de entender qué está pasando con un servicio o aplicación.
El problema es que muchos ficheros de log son enormes. Si los abres con less o un editor de texto, acabas navegando por miles de líneas que no te aportan gran cosa.
Ahí es donde entra tail. Este comando te muestra solo el final del archivo, que suele ser donde está la información más reciente e interesante. Y, con la opción -f, puedes seguir en tiempo real cómo se van escribiendo nuevas entradas, algo perfecto para depurar errores.
Por ejemplo, para seguir en directo el log del sistema (/var/log/syslog):
tail -f /var/log/syslog
Por defecto, tail muestra las últimas 10 líneas. Si quieres ver solo la última, puedes usar:
tail -f -n 1 /var/log/syslog
De esta forma reduces el ruido al mínimo y te centras en lo que está ocurriendo justo ahora.
8. systemctl
systemctl es la herramienta de control central para los servicios y unidades gestionadas por systemd, que está presente en la mayoría de distribuciones modernas.
Con este comando puedo:
- Arrancar y parar servicios.
- Ver su estado (si están activos, caídos, en fallo…).
- Hacer que un servicio se inicie automáticamente al arrancar el sistema.
- Consultar logs asociados (junto con
journalctl).
Si quieres mantener un servidor sano, antes o después tendrás que convivir con systemctl.
Por ejemplo, para iniciar el servicio del demonio SSH:
sudo systemctl start ssh
Para comprobar su estado:
systemctl status ssh
Para detenerlo:
sudo systemctl stop ssh
Para reiniciarlo:
sudo systemctl restart ssh
Si quieres que se inicie automáticamente al arrancar:
sudo systemctl enable ssh
Y si quieres que deje de iniciarse en el arranque:
sudo systemctl disable ssh
También puedes habilitarlo y arrancarlo a la vez:
sudo systemctl enable --now ssh
9. grep
Si tuviera que elegir el comando que más aparece “de rondón” en mi día a día, sería grep. Es el cuchillo suizo del filtrado de texto en Linux.
grep se usa para buscar patrones dentro de texto: líneas que contengan una palabra, una expresión regular, un error concreto, un usuario, una IP… Y lo mejor es cuando lo combinas con otros comandos mediante pipelines (|).
Algunos usos típicos:
- Filtrar procesos por nombre (como veíamos antes):
ps aux | grep nginx - Buscar errores concretos en los logs:
journalctl -u ssh | grep "Failed password" - Buscar cadenas en archivos de configuración de forma recursiva:
grep -R "stackscale.com" /etc
En cuanto te acostumbras a canalizar la salida de otros comandos hacia grep, tu productividad en el terminal se dispara. En lugar de leer cientos de líneas, ves solo lo que te interesa.
Estos nueve comandos —top, ssh, sudo, apt, wget, ps, tail, systemctl y grep— cubren una parte enorme de lo que hago cada día en Linux: monitorización, acceso remoto, gestión de paquetes, control de servicios y análisis de logs.
No hace falta memorizar todas las opciones avanzadas de cada uno, pero dominar sus usos básicos te dará una caja de herramientas muy potente para mantener tus sistemas Linux bajo control, resolver problemas más rápido y trabajar como si el terminal fuera una extensión natural de tus manos.