Comandos Linux esenciales para todo técnico

Domina los comandos Linux imprescindibles para diagnóstico, administración y resolución de incidencias en entornos reales de trabajo técnico.

Como técnico, el día a día en la terminal puede marcar la diferencia entre resolver una incidencia en cinco minutos o perder una hora navegando por menús gráficos. Dominar una docena de comandos esenciales te da control total sobre el sistema, especialmente cuando trabajas sin interfaz gráfica o sobre SSH. Aquí van los que uso a diario.

Diagnóstico rápido del sistema

Antes de tocar nada, hay que saber qué está pasando. top o htop son el primer vistazo, pero htop (si lo tienes instalado) es más amigable. Para ver carga media y procesos de un vistazo:

htop

Para memoria RAM y swap, nada como free -h. El -h humaniza las cifras:

free -h

Y para el disco duro, df -h te muestra la ocupación de las particiones. Si necesitas saber qué está ocupando espacio en una carpeta concreta, du -sh * dentro de ella es tu aliado:

du -sh /var/log/*

Gestión de procesos y servicios

Cuando un servicio se cuelga o un proceso consume toda la CPU, hay que actuar rápido. ps aux te da una foto completa de los procesos. Para buscar uno concreto, encadénalo con grep:

ps aux | grep apache

Si necesitas matar un proceso por su PID, usa kill -9 <PID>. Para localizar el PID primero, pgrep te ahorra un paso:

kill -9 $(pgrep -f "nombre_del_proceso")

Con systemd, gestionar servicios es pan comido. Los comandos clave:

systemctl status apache2    # Ver estado
systemctl restart apache2   # Reiniciar
systemctl enable apache2    # Activar en arranque
journalctl -u apache2       # Ver logs del servicio

Moverse por el sistema es básico, pero find es una navaja suiza. Buscar archivos por nombre, tamaño o fecha de modificación:

find /var -name "*.log" -mtime -7   # Archivos .log modificados en los últimos 7 días

Para buscar dentro del contenido de archivos, grep con -r (recursivo) es insustituible:

grep -r "error" /var/log/ --include="*.log"

Y para copiar o mover archivos entre equipos, rsync es mucho más eficiente que scp porque solo transfiere las diferencias:

rsync -avz --progress /carpeta/local/ usuario@servidor:/carpeta/remota/

Red básica y conectividad

Cuando un cliente dice “no va internet”, empiezo por aquí. ping para ver si hay conectividad básica, traceroute para ver la ruta, y ss para ver puertos abiertos:

ping -c 4 8.8.8.8
traceroute google.com
ss -tuln | grep LISTEN

Para resolver un nombre de dominio rápidamente, dig es más fiable que nslookup:

dig +short mohamedch.com

Y si necesitas saber qué proceso está usando un puerto concreto, lsof te lo dice:

lsof -i :80

Conclusión

Estos comandos cubren el 90% de las incidencias que veo en el día a día. Con práctica, los acabas tecleando sin pensar. Mi consejo: ten siempre abierta una terminal y juega con ellos en un entorno de pruebas. La línea de comandos no muerde, y cuando dominas estos básicos, cualquier problema de sistema se vuelve manejable.