Publicado en

Comandos Linux imprescindibles: referencia rápida

Comandos Linux imprescindibles organizados por categoría sobre fondo oscuro

Referencia rápida de los comandos Linux más utilizados en el día a día como desarrollador o administrador de sistemas.

Navegación y directorios

pwd                        # directorio actual
ls -la                     # listar con detalles y ocultos
ls -lh                     # tamaños legibles (K, M, G)
cd /ruta/absoluta          # ir a ruta absoluta
cd ~                       # ir al home
cd -                       # volver al directorio anterior
mkdir -p padre/hijo/nieto  # crear árbol de directorios
rmdir directorio           # eliminar directorio vacío
rm -rf directorio          # eliminar directorio con contenido (cuidado)
cp -r origen/ destino/     # copiar directorio
mv origen destino          # mover o renombrar
tree -L 2                  # árbol de directorios (puede requerir instalación)

Archivos

cat archivo.txt            # mostrar contenido
less archivo.txt           # mostrar paginado (q para salir)
head -n 20 archivo.txt     # primeras 20 líneas
tail -n 20 archivo.txt     # últimas 20 líneas
tail -f /var/log/syslog    # seguir archivo en tiempo real
wc -l archivo.txt          # contar líneas
wc -w archivo.txt          # contar palabras

touch archivo.txt          # crear archivo vacío o actualizar fecha
cp origen.txt destino.txt  # copiar archivo
mv archivo.txt nuevo.txt   # renombrar / mover
rm archivo.txt             # eliminar
ln -s /ruta/real enlace    # crear enlace simbólico
file imagen.png            # detectar tipo de archivo
stat archivo.txt           # metadatos completos (fecha, inodo, permisos)

Búsqueda

# find: busca archivos por atributos
find / -name "*.log"                        # por nombre
find /var/log -name "*.log" -mtime +7       # modificados hace más de 7 días
find . -type f -size +10M                  # archivos de más de 10 MB
find . -type f -name "*.log" -delete       # buscar y eliminar

# grep: busca texto dentro de archivos
grep "error" archivo.log                    # buscar patrón
grep -r "TODO" ./src/                       # búsqueda recursiva
grep -i "error" archivo.log                 # sin distinción mayús/minús
grep -n "error" archivo.log                 # mostrar número de línea
grep -v "DEBUG" archivo.log                 # excluir líneas con DEBUG
grep -c "error" archivo.log                 # contar ocurrencias

# locate: búsqueda rápida en base de datos (actualizar con updatedb)
locate nginx.conf

Procesos

ps aux                     # todos los procesos
ps aux | grep nginx        # filtrar por nombre
top                        # monitor interactivo
htop                       # monitor mejorado
kill -15 PID               # terminar proceso (SIGTERM)
kill -9 PID                # forzar cierre (SIGKILL)
killall nginx              # matar por nombre
pgrep nginx                # obtener PID por nombre
pkill -f "server.js"       # matar por patrón en el comando
nohup comando &            # ejecutar en background, resistente al logout
jobs                       # procesos en segundo plano de la shell
bg %1                      # enviar proceso parado a background
fg %1                      # traer proceso de background al frente

Red

ip addr                    # ver interfaces de red y IPs
ip route                   # tabla de rutas
ss -tulnp                  # puertos abiertos y qué los usa
netstat -tulnp             # alternativa (más legacy)
lsof -i :3000              # qué proceso usa el puerto 3000
curl -I https://ejemplo.com         # cabeceras HTTP
curl -X POST -d '{"k":"v"}' -H 'Content-Type: application/json' URL
wget https://ejemplo.com/archivo    # descargar archivo
ping 8.8.8.8               # verificar conectividad
traceroute 8.8.8.8         # trazar ruta de paquetes
dig ejemplo.com            # consultas DNS
nslookup ejemplo.com       # alternativa a dig
ssh usuario@host           # conectar por SSH

Disco y espacio

df -h                      # espacio en particiones
du -sh directorio/         # tamaño de un directorio
du -sh /* | sort -hr       # ver qué ocupa más en /
du -sh /var/log/* | sort -hr  # top de directorios en /var/log
ncdu /                     # explorador interactivo de disco (requiere instalación)
lsblk                      # discos y particiones

Compresión y archivos

tar -czf backup.tar.gz directorio/    # comprimir
tar -xzf backup.tar.gz                # descomprimir
tar -tzf backup.tar.gz                # listar contenido sin extraer
gzip archivo.txt                      # comprimir (reemplaza el archivo)
gunzip archivo.txt.gz                 # descomprimir
zip -r backup.zip directorio/         # crear zip
unzip backup.zip                      # extraer zip
unzip -l backup.zip                   # listar sin extraer

Texto y procesamiento

sort archivo.txt                      # ordenar líneas
sort -nr archivo.txt                  # orden numérico inverso
sort -u archivo.txt                   # ordenar y eliminar duplicados
uniq archivo.txt                      # eliminar líneas duplicadas consecutivas
cut -d',' -f1,3 datos.csv             # extraer columnas por delimitador
awk '{print $1}' archivo.txt          # extraer primera columna
sed 's/viejo/nuevo/g' archivo.txt     # reemplazar texto
tr '[:upper:]' '[:lower:]'           # convertir a minúsculas
xargs: pasa salida como argumentos: find . -name "*.log" | xargs rm