Comandos Esenciales de la Línea de Comandos de Linux que Todo Desarrollador Debería Conocer
Una referencia práctica de los comandos de Linux más utilizados en el desarrollo diario: navegación del sistema de archivos, permisos, gestión de procesos, procesamiento de texto y redes.
La línea de comandos de Linux es la interfaz universal para servidores, contenedores, pipelines de CI y entornos de desarrollo. Ya sea que estés conectado por SSH a un servidor de producción a las 2 de la madrugada o depurando un contenedor Docker, el dominio de estos comandos marca la diferencia entre la confusión y la confianza.
Navegación y gestión de archivos
# Navegar directorios
pwd # mostrar el directorio de trabajo actual
cd /var/log # ruta absoluta
cd .. # subir un nivel
cd - # volver al directorio anterior
cd ~ # directorio de inicio
# Listar archivos
ls # listado básico
ls -la # formato largo + archivos ocultos
ls -lh # tamaños de archivo legibles por humanos
ls -lt # ordenar por tiempo de modificación (más reciente primero)
# Crear, copiar, mover, eliminar
mkdir -p path/to/dir # crear directorio + directorios padre
cp -r source/ dest/ # copia recursiva
mv oldname newname # renombrar o mover
rm -rf directory/ # eliminar directorio y contenido (¡irreversible!)
touch file.txt # crear archivo vacío / actualizar marca de tiempo
# Ver y navegar archivos
cat file.txt # mostrar el archivo completo
less file.txt # visor paginado (q para salir, / para buscar)
head -n 20 file.txt # primeras 20 líneas
tail -n 20 file.txt # últimas 20 líneas
tail -f /var/log/app.log # seguir el log en tiempo real
Permisos de archivos
Los permisos de Linux se expresan como tres conjuntos de bits de lectura/escritura/ejecución para el propietario, el grupo y otros:
-rwxr-xr-- 1 alice devs 4096 Apr 8 10:00 script.sh
Lectura de la cadena de permisos: -rwxr-xr--
-— tipo de archivo (d = directorio, l = enlace simbólico)rwx— propietario: lectura, escritura, ejecuciónr-x— grupo: lectura, ejecución (sin escritura)r--— otros: solo lectura
chmod — cambiar permisos
# Notación simbólica
chmod u+x script.sh # agregar ejecución para el propietario
chmod g-w file.txt # quitar escritura para el grupo
chmod o=r file.txt # establecer otros como solo lectura
chmod a+r file.txt # agregar lectura para todos (a = all)
# Notación numérica (octal)
chmod 755 script.sh # rwxr-xr-x (común para ejecutables)
chmod 644 file.txt # rw-r--r-- (común para archivos)
chmod 600 ~/.ssh/id_rsa # rw------- (requerido para claves SSH)
chmod 700 ~/.ssh/ # rwx------ (requerido para el directorio .ssh)
Usa nuestra Calculadora Chmod para construir cadenas de permisos visualmente y entender qué significa cada valor octal.
Búsqueda y procesamiento de texto
# Buscar archivos
find /var/log -name "*.log" # buscar por nombre
find . -name "*.ts" -newer package.json # archivos más nuevos que package.json
find . -type f -size +10M # archivos de más de 10MB
find . -name "node_modules" -prune # excluir directorios
# Buscar en el contenido de archivos
grep "error" app.log # buscar en un archivo
grep -r "TODO" ./src # búsqueda recursiva
grep -i "error" app.log # sin distinción de mayúsculas
grep -n "error" app.log # mostrar números de línea
grep -v "DEBUG" app.log # líneas que NO coinciden
grep -E "error|warning" app.log # regex: error O warning
# Procesamiento de texto en flujo
cat access.log | grep "404" | wc -l # contar errores 404
cat data.csv | cut -d',' -f1,3 # extraer columnas 1 y 3
cat file.txt | sort | uniq # ordenar y deduplicar
cat file.txt | sort | uniq -c | sort -rn # contar ocurrencias, ordenar por frecuencia
awk — procesamiento basado en campos
# Imprimir campos específicos (separados por tabulación por defecto)
awk '{print $1, $3}' file.txt
# Procesar CSV (separado por comas)
awk -F',' '{print $2}' data.csv
# Sumar una columna
awk -F',' '{sum += $3} END {print sum}' data.csv
# Imprimir líneas que coincidan con un patrón
awk '/ERROR/ {print $0}' app.log
sed — editor de flujo
# Reemplazar texto
sed 's/foo/bar/' file.txt # reemplazar primera ocurrencia por línea
sed 's/foo/bar/g' file.txt # reemplazar todas las ocurrencias (global)
sed -i 's/foo/bar/g' file.txt # edición en el archivo (modifica el archivo)
# Eliminar líneas
sed '/^#/d' file.txt # eliminar líneas de comentarios
sed '5,10d' file.txt # eliminar líneas 5-10
# Imprimir líneas específicas
sed -n '10,20p' file.txt # imprimir líneas 10-20
Gestión de procesos
# Ver procesos en ejecución
ps aux # todos los procesos con detalles
ps aux | grep nginx # buscar procesos nginx
top # visor interactivo de procesos
htop # visor interactivo mejorado (si está instalado)
# Control de procesos
kill PID # enviar SIGTERM (cierre ordenado)
kill -9 PID # enviar SIGKILL (forzar cierre)
pkill nginx # matar por nombre
killall node # matar todos los procesos que coincidan
# Trabajos en segundo plano
command & # ejecutar en segundo plano
jobs # listar trabajos en segundo plano
fg %1 # traer el trabajo 1 al primer plano
nohup command & # ejecutar inmune a desconexiones (sobrevive al cierre de sesión)
# Recursos del sistema
free -h # uso de memoria
df -h # uso de espacio en disco
du -sh /var/log/ # tamaño del directorio
lsof -i :3000 # qué está usando el puerto 3000
Comandos de red
# Conectividad
ping google.com # probar conectividad
curl -I https://example.com # solo cabeceras HTTP
curl -o file.zip https://example.com/file.zip # descargar archivo
wget https://example.com/file.zip # descargador alternativo
# Inspeccionar conexiones
ss -tulpn # puertos en escucha y procesos
netstat -tulpn # alternativa (sistemas más antiguos)
lsof -i :80 # qué está en el puerto 80
# DNS
dig example.com # consulta DNS
dig example.com MX # registros MX
host example.com # consulta DNS simple
nslookup example.com # consulta DNS interactiva
SSH y acceso remoto
# Conectarse a un servidor
ssh user@server.com
ssh -p 2222 user@server.com # puerto no estándar
ssh -i ~/.ssh/id_rsa user@server.com # clave específica
# Copiar archivos
scp file.txt user@server.com:~/ # copiar al directorio de inicio remoto
scp user@server.com:~/file.txt . # copiar desde remoto
scp -r ./dist user@server.com:~/app/ # copia recursiva
# Túnel SSH (reenvío de puertos)
ssh -L 5432:localhost:5432 user@server.com # conectar BD remota a puerto local
Genera pares de claves SSH para autenticación segura con nuestro Generador de Claves SSH.
Entorno y shell
# Variables de entorno
export API_KEY=abc123 # establecer para la sesión actual y procesos hijo
echo $API_KEY # mostrar variable
env # listar todas las variables de entorno
printenv PATH # mostrar variable específica
unset API_KEY # eliminar variable
# Historial del shell
history # listar comandos anteriores
!! # repetir el último comando
!grep # repetir el último comando grep
Ctrl+R # búsqueda inversa en el historial (escribe para buscar)
# Atajos útiles
Ctrl+C # interrumpir el proceso actual
Ctrl+Z # suspender al segundo plano
Ctrl+L # limpiar pantalla (igual que clear)
Ctrl+A # ir al inicio de la línea
Ctrl+E # ir al final de la línea
Ctrl+U # borrar la línea antes del cursor
Tuberías y redirección
# Tuberías — encadenar comandos
ls -la | grep ".log" | wc -l
# Redirigir salida
command > file.txt # sobreescribir archivo con stdout
command >> file.txt # agregar stdout al archivo
command 2> errors.txt # redirigir stderr
command > all.txt 2>&1 # redirigir stdout + stderr al mismo archivo
command &> all.txt # forma abreviada de lo anterior
# /dev/null — descartar salida
command > /dev/null 2>&1 # descartar toda la salida (ejecutar en silencio)
Comandos de una línea útiles para desarrolladores
# Buscar y reemplazar en todos los archivos de un directorio
find . -name "*.tsx" | xargs sed -i 's/OldComponent/NewComponent/g'
# Obtener la IP pública
curl -s ifconfig.me
# Monitorear un archivo en busca de cambios
watch -n 2 "ls -la uploads/"
# Comprimir un directorio
tar -czf archive.tar.gz ./directory/
# Extraer un tar.gz
tar -xzf archive.tar.gz
# Mostrar los 10 archivos más grandes en el directorio actual
du -sh * | sort -rh | head -10
# Contar líneas de código por tipo de archivo
find . -name "*.ts" | xargs wc -l | sort -rn | head -20
La línea de comandos recompensa la inversión. Cada comando que aprendes se convierte en un bloque de construcción para combinaciones más potentes. Empieza con la navegación y grep, luego añade tuberías y después awk, y podrás resolver cualquier tarea de procesamiento de texto que se te presente.