Saltar al contenido
src / articulos / comandos-basicos-de-linux.md

Comandos básicos de Linux: Tu caja de herramientas diaria

Emilio Castro //
// NARRACIÓN 0:00 / 0:00

En el post anterior cubrimos cómo empezar con Linux y sus distribuciones. Lo que sigue es la parte que realmente importa si trabajas en tecnología: la línea de comandos.

No hay atajos. La terminal es el estándar para administrar servidores, armar pipelines de CI/CD y depurar incidentes en producción. Un clic en una GUI no escala; un script sí. Estos comandos son los que uso a diario y los que esperaría que cualquier ingeniero de mi equipo conozca de memoria.


1. Navegación y Gestión de Archivos

La mayor parte del tiempo en la terminal se va en moverse por el sistema de archivos. Mover, copiar, borrar. Repetido cientos de veces al día.

  1. ls (List)
    Muestra el contenido de un directorio.

    • ls -la: Lista todos los archivos (incluyendo los ocultos que comienzan con .) en formato largo, mostrando permisos, propietario y tamaño.
    • ls -lh: Muestra el tamaño de los archivos en formato legible: “5.2M” en lugar de un número de bytes que nadie va a convertir mentalmente.
  2. cd (Change Directory)
    Cambia tu ubicación actual en el sistema de archivos.

    • cd /var/log: Navega a una ruta absoluta.
    • cd -: Regresa al directorio inmediatamente anterior.
    • cd ~: Te lleva al directorio home del usuario actual.
  3. pwd (Print Working Directory)
    Imprime la ruta absoluta de donde estás parado. Parece trivial hasta que estás dentro de un script encadenado y ya no sabes en qué nivel del árbol ejecutó el último comando.

  4. mkdir (Make Directory)

    • mkdir -p infra/config/nginx: El parámetro -p crea toda la jerarquía de una vez, sin lanzar error si algún directorio intermedio ya existe.
  5. cp y mv (Copy / Move)

    • cp -r conf/ /backup/conf/: Copia directorios de forma recursiva.
    • mv config.yml config.yml.bak: Funciona tanto para mover archivos como para renombrarlos en el mismo directorio. Un solo comando, dos usos.
  6. rm (Remove)

    • rm -rf tmp/: Borra directorios recursivamente sin pedir confirmación. Úsalo con la cabeza fría, especialmente si eres root. No hay deshacer.

2. Monitoreo y Procesos

El diagnóstico de rendimiento es la habilidad más subestimada en infraestructura. La gente configura alertas en Datadog y olvida que estos comandos dan el mismo diagnóstico en segundos, sin dashboards.

  1. top / htop
    Muestra procesos activos en tiempo real con su consumo de CPU y RAM. htop es visualmente muy superior: deja filtrar y matar procesos sin salir de la pantalla, con navegación por teclado.

  2. df (Disk Free) y du (Disk Usage)

    • df -h: Muestra el espacio disponible en las particiones montadas.
    • du -sh /var/log/*: Te dice cuánto pesa cada directorio o archivo. Lo primero que ejecuto cuando un disco se llena y el equipo de desarrollo jura que no subió nada.
  3. ps y kill

    • ps aux | grep nginx: Lista todos los procesos y filtra para encontrar el PID de nginx.
    • kill -9 1234: Termina el proceso con PID 1234 enviando SIGKILL. No le da oportunidad de limpiarse; es el último recurso cuando el proceso ignoró todo lo demás.

3. Procesamiento de Texto y Análisis de Logs

Los servidores hablan en archivos de texto. Todo: eventos, errores, accesos, trazas. Saber leer esos archivos rápido es la diferencia entre resolver un incidente en diez minutos o en dos horas.

  1. grep (Global Regular Expression Print)

    • grep -i "error" /var/log/syslog: Busca la palabra “error” ignorando mayúsculas y minúsculas.
    • grep -r "TODO" src/: Busca recursivamente dentro del código fuente.
  2. cat, less y tail

    • cat config.json: Vuelca todo el archivo en pantalla. Útil para archivos pequeños.
    • less application.log: Abre un visor paginado para archivos grandes. No destruye la memoria como haría cat con un log de 2GB.
    • tail -f /var/log/auth.log: Imprime las últimas líneas y sigue el archivo en tiempo real. El comando por defecto cuando estás viendo un despliegue fallar en vivo.

4. Redes y Conectividad

  1. ping y curl

    • ping 8.8.8.8: Mide latencia y pérdida de paquetes a nivel ICMP. Primera prueba cuando algo no conecta.
    • curl -I https://emiliocastro.com.mx: Hace una petición HTTP y devuelve solo las cabeceras de respuesta. Útil para verificar certificados SSL o confirmar códigos de estado sin descargar el cuerpo completo.
  2. ssh (Secure Shell)

    • ssh -i ~/.ssh/id_rsa user@10.0.0.5: Accede a un servidor remoto usando un par de llaves criptográficas. Si todavía estás usando contraseñas en SSH, para lo que estás haciendo y configura llaves ahora.
  3. scp (Secure Copy)

    • scp dump.sql db-admin@192.168.1.100:/tmp/: Transfiere archivos al servidor remoto por SSH. Simple y funciona.

5. Privilegios y Administración

  1. sudo (SuperUser DO)
    Ejecuta comandos con privilegios elevados. Operar permanentemente como root es un error de seguridad básico, no una opinión. sudo te da el acceso puntual que necesitas, ya sea para instalar paquetes (sudo apt update) o reiniciar servicios (sudo systemctl restart docker), sin dejar la sesión entera expuesta.

  2. chmod y chown

    • chmod +x script.sh: Otorga permisos de ejecución a un script.
    • chown www-data:www-data /var/www/html: Cambia el propietario y grupo de un directorio.

Conclusión

No memorices flags. Si algo no recuerdas, man [comando] tiene la respuesta exacta, sin anuncios ni versiones desactualizadas de Stack Overflow.