Comandos Básicos de Linux en Terminal: Guía Práctica
Una guía práctica de comandos indispensables de Linux: navegación de carpetas, manipulación de archivos, inspección de logs en tiempo real, gestión de procesos y servicios con systemctl.
Los comandos básicos de Linux en terminal (`ls`, `cd`, `pwd`, `mkdir`, `cp`, `mv`, `rm`, `cat`, `grep`, `tail`, `top/htop`, `systemctl`) constituyen el repertorio de instrucciones indispensable para navegar, operar, diagnosticar y administrar servidores remotos mediante la consola.
La consola de comandos de Linux es el medio de control por excelencia en la nube: es cientos de veces más rápida que cualquier interfaz gráfica, consume un ancho de banda mínimo y permite automatizar cualquier proceso mediante scripts Bash reutilizables.
Imagina los controles de la cabina de un avión comercial: no hay pantallas táctiles con botones infantiles para ver videos; hay palancas, interruptores y diales de precisión directa conectados a los motores y timones. Cada comando de Linux es un interruptor de precisión diseñado para interactuar directamente con el sistema sin rodeos.
Explicación Paso a Paso del Tema
Navegar y manipular carpetas y archivos
Aprende a moverte por el árbol de directorios con soltura.
`pwd` (Print Working Directory) te dice dónde estás parado. `cd /ruta` cambia de directorio (`cd ..` sube un nivel, `cd ~` te lleva a tu carpeta personal de usuario). `mkdir -p a/b/c` crea carpetas anidadas. `cp origen destino` copia archivos (`cp -r` para carpetas). `mv origen destino` mueve o renombra archivos. `rm archivo` elimina archivos (`rm -r` para carpetas).
pwd && cd /var/www && mkdir -p mi-web/public && ls -l
| Parámetro / Flag | Tipo / Rol | Significado y Uso |
|---|---|---|
| mkdir -p | Bandera de padres | Crea todos los subdirectorios padres intermedios necesarios sin arrojar error si ya existen |
| cd .. | Navegación relativa | Sube al directorio inmediatamente superior en la jerarquía |
Usa la tecla TAB de tu teclado continuamente: autocompleta nombres de archivos y comandos, evitando que cometas errores tipográficos.
Ejecutar `rm -rf /` o `rm -rf /*` como root por descuido de sintaxis; esto borrará todo el disco duro completo del servidor sin confirmación.
Inspeccionar archivos de texto y logs
Lee contenidos sin abrirlos en editores pesados que puedan corromperlos.
`cat archivo` escupe todo el texto en la consola (ideal para archivos cortos). `head -n 20 archivo` muestra las primeras 20 líneas. `tail -n 20 archivo` muestra las últimas 20 líneas. `tail -f archivo` deja la terminal abierta escuchando nuevos eventos en vivo (esencial para depurar servidores). `less archivo` permite navegar por archivos gigantes página por página con el teclado.
tail -f -n 50 /var/log/nginx/access.log
| Parámetro / Flag | Tipo / Rol | Significado y Uso |
|---|---|---|
| -f (follow) | Modo escucha | Mantiene el archivo abierto y muestra nuevas líneas en tiempo real conforme llegan |
| -n 50 | Número de líneas | Comienza mostrando las últimas 50 líneas existentes antes de esperar novedades |
Para salir de `tail -f`, presiona `Ctrl + C`. Para salir del visor `less`, presiona la tecla `q`.
Usar `cat` para abrir archivos de logs de 5 Gigabytes; colapsará la terminal imprimiendo millones de líneas sin control. Usa siempre `less` o `tail`.
Gestionar servicios del sistema con systemctl
Controla los programas que corren en segundo plano (daemons de systemd).
En las distribuciones modernas de Linux, el gestor de inicio del sistema es `systemd`. El comando `systemctl` te permite iniciar (`start`), detener (`stop`), reiniciar (`restart`), consultar el estado (`status`) o hacer que un servicio arranque automáticamente cuando el servidor se encienda (`enable`).
sudo systemctl restart nginx && sudo systemctl status nginx
| Parámetro / Flag | Tipo / Rol | Significado y Uso |
|---|---|---|
| systemctl status | Diagnóstico de servicio | Informa si el proceso está activo, en ejecución, su PID principal y sus últimos logs |
| enable | Arranque automático | Crea el enlace simbólico para que el servicio inicie solo tras un reinicio de la máquina |
Para ver los logs del sistema unificados de un servicio específico gestionado por systemd, usa `journalctl -u nombre_servicio -e -f`.
Reiniciar un servicio con `restart` tras editar su configuración sin validar antes la sintaxis (ej. `nginx -t`), provocando que el servicio falle y quede caído en producción.
Casos Prácticos Reales en Producción
Situaciones de ingeniería reales sin mención de presupuestos ficticios.
1Caso de Producción: Diagnóstico Express de un Servidor de API Caído
Una API de pagos dejó de responder de forma imprevista y el panel de monitorización indicaba '502 Bad Gateway'. El desarrollador no tenía acceso a paneles gráficos.
El ingeniero accedió por SSH, ejecutó `systemctl status mi-api` y vio que el servicio Node.js estaba en estado 'failed'. Corrió `journalctl -u mi-api -n 30` y detectó en las últimas líneas una excepción de conexión rechazada porque la base de datos se había quedado sin memoria (verificado con `free -m`).
Fichas Nemotécnicas de Conceptos Clave
Glosario rápido para recordar los términos fundamentales de la lección.
Comando para monitorear en tiempo real las últimas líneas de un archivo de log conforme se van escribiendo.
Busca recursivamente dentro de todos los archivos del directorio actual qué líneas contienen una palabra clave.
Consulta el estado actual de ejecución, memoria y últimos eventos del servicio Nginx.
Comandos Básicos de Linux en Terminal: Guía Práctica
Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.
¿Qué comando se utiliza para monitorear en tiempo real las últimas líneas de un archivo de log a medida que se escriben?
¿Qué comando de systemd se debe ejecutar para que un servicio se inicie automáticamente tras encender o reiniciar el servidor?
¿Qué tecla de la terminal permite autocompletar nombres de archivos y comandos para evitar errores de escritura?
Preguntas Frecuentes (FAQ)
¿Cómo puedo buscar un archivo si no recuerdo en qué carpeta lo guardé?
Puedes usar el comando `find / -name "nombre_archivo.txt" 2>/dev/null`, que buscará desde la raíz descartando mensajes de permiso denegado.
¿Cuál es la diferencia entre 'top' y 'htop'?
`top` viene instalado por defecto en todos los sistemas Linux mostrando uso de CPU y RAM. `htop` es una versión visual moderna con colores interactivos, barras de carga y permite matar procesos con teclas rápidas.
¿Cómo mato un proceso rebelde que no responde?
Averigua su identificador de proceso (PID) con `ps aux | grep nombre` y luego ejecuta `kill -9 PID` para forzar su terminación inmediata a nivel de kernel.