Chuleta

Comandos de Linux: chuleta para principiantes y administradores

Actualizado: · Skillaria.Top

Los comandos básicos de Linux se agrupan por tareas: navegación (pwd, ls, cd), trabajo con archivos (cp, mv, rm, mkdir), permisos (chmod, chown), paquetes (apt), procesos (ps, top, kill), búsqueda y tratamiento de texto (find, grep, sed, awk), red (ip, ss, curl) y servicios (systemctl, journalctl). A continuación encontrará tablas con comandos y ejemplos que cubren la mayor parte del trabajo diario en la terminal.

Esta chuleta de comandos de Linux está organizada por tareas: encontrar un archivo, instalar un paquete, matar un proceso bloqueado, extraer una línea de un registro, comprobar un puerto. Los comandos están probados en Ubuntu y Debian; casi todo funciona también en otras distribuciones, y la diferencia está sobre todo en el gestor de paquetes.

Ayuda y pistas

ComandoQué hace
man lsmanual completo del comando; salir con q, buscar con /palabra
ls --helpresumen breve de las opciones
type cdqué es: comando interno, alias o archivo
which python3ruta del ejecutable
historyhistorial de comandos; !123 repite el comando número 123
Ctrl+Rbuscar en el historial
Ctrl+C / Ctrl+Dinterrumpir un comando / cerrar la shell
ComandoQué hace
pwddirectorio actual
ls -latodos los archivos, incluidos los ocultos, con permisos y tamaños
ls -lhtamaños legibles (K, M, G)
ls -ltordenar por fecha de modificación
cd /var/logir a una ruta absoluta
cd .. / cd ~ / cd -subir un nivel / directorio personal / directorio anterior
tree -L 2árbol de directorios de dos niveles (paquete tree)

Trabajo con archivos y directorios

ComandoQué hace
touch archivo.txtcrear un archivo vacío o actualizar su fecha de modificación
mkdir -p a/b/ccrear directorios junto con los padres
cp archivo.txt copia.txtcopiar un archivo
cp -r origen/ destino/copiar un directorio de forma recursiva
mv viejo.txt nuevo.txtrenombrar o mover
rm archivo.txtborrar un archivo (sin papelera)
rm -r directorio/borrar un directorio con su contenido; -f — sin preguntar, con cuidado
rmdir directorioborrar un directorio vacío
ln -s /opt/app/current appenlace simbólico
stat archivo.txtdetalles: tamaño, permisos, inodo, fechas
file imagen.bindeterminar el tipo de archivo por su contenido

Ver el contenido

ComandoQué hace
cat archivomostrar el archivo completo
less archivovisualización por páginas, buscar con /, salir con q
head -n 20 archivolas primeras 20 líneas
tail -n 50 archivolas últimas 50 líneas
tail -f /var/log/syslogseguir un archivo en tiempo real
wc -l archivonúmero de líneas
diff a.conf b.confdiferencias entre archivos

Permisos y propietarios

ComandoQué hace
chmod +x script.shpermitir la ejecución
chmod 644 archivorw-r--r--: el propietario escribe, los demás leen
chmod 755 directoriorwxr-xr-x: habitual en directorios y scripts
chmod 600 ~/.ssh/id_ed25519solo el propietario: para claves privadas
sudo chown www-data:www-data archivocambiar propietario y grupo
sudo chown -R alice /srv/appcambiar el propietario de forma recursiva
idsu UID, GID y grupos
sudo -ishell de root
sudo usermod -aG docker aliceañadir un usuario a un grupo

Paquetes (apt, Debian y Ubuntu)

ComandoQué hace
sudo apt updateactualizar las listas de paquetes de los repositorios
sudo apt upgradeactualizar los paquetes instalados
sudo apt install nginxinstalar un paquete
sudo apt remove nginxdesinstalar conservando la configuración; purge — con la configuración
sudo apt autoremoveeliminar dependencias que ya no hacen falta
apt search htopbuscar un paquete
apt show nginxdescripción y versión
dpkg -l | grep nginxcomprobar si un paquete está instalado
dpkg -L nginxqué archivos instaló el paquete

En RHEL, Fedora y Rocky Linux los equivalentes son dnf install, dnf remove, dnf upgrade y rpm -qa.

Entorno y perfil

ComandoQué hace
echo $PATHdónde busca la shell los programas
envtodas las variables de entorno
export APP_ENV=proddefinir una variable para la sesión actual y los procesos hijos
alias ll='ls -la'atajo para un comando
source ~/.bashrcvolver a leer el perfil sin cerrar sesión
crontab -e / crontab -leditar / mostrar las tareas cron

Procesos

ComandoQué hace
ps auxtodos los procesos con usuario, CPU y memoria
ps aux | grep nginxencontrar un proceso
pgrep -a nginxPID y línea de comandos a partir del nombre
top / htopcarga en tiempo real
kill 1234pedir al proceso que termine (SIGTERM)
kill -9 1234terminar a la fuerza (SIGKILL) — último recurso
pkill -f "python app.py"terminar por coincidencia en la línea de comandos
comando &, jobs, fgejecución en segundo plano y gestión de tareas
nohup ./job.sh &el proceso sobrevive al cierre de la terminal
free -hmemoria y swap
uptimetiempo de funcionamiento y carga media
strace -p 1234llamadas al sistema de un proceso

Servicios y registros (systemd)

ComandoQué hace
systemctl status nginxestado del servicio y últimas líneas de su registro
sudo systemctl start|stop|restart nginxiniciar, detener, reiniciar
sudo systemctl reload nginxvolver a leer la configuración sin detenerse
sudo systemctl enable --now nginxactivar el arranque automático e iniciar ahora
systemctl --failedunidades con fallo
journalctl -u nginx -fregistro del servicio en tiempo real
journalctl -u nginx --since "1 hour ago"registro de la última hora
journalctl -p err -berrores desde el último arranque

Búsqueda de archivos

ComandoQué hace
find /var/log -name "*.log"buscar por nombre
find . -type f -mtime -1archivos modificados en las últimas 24 horas
find / -size +500M 2>/dev/nullarchivos grandes, errores de acceso ocultos
find . -name "*.tmp" -deletebuscar y borrar
du -sh *tamaño de cada elemento de un directorio
df -hespacio libre en los sistemas de archivos

Búsqueda y tratamiento de texto: grep, sed, awk, jq

ComandoQué hace
grep "error" app.loglíneas que contienen la palabra
grep -i -n "error" app.logsin distinguir mayúsculas, con números de línea
grep -r "listen" /etc/nginx/recursivamente por un directorio
grep -v "DEBUG" app.loglíneas donde no aparece la palabra
grep -c "500" access.lognúmero de coincidencias
grep -E "warn|error" app.logexpresiones regulares extendidas
sed 's/viejo/nuevo/g' archivoreemplazar y mostrar el resultado
sed -i 's/8080/9090/' app.confreemplazar directamente en el archivo
sed -n '10,20p' archivomostrar las líneas 10–20
awk '{print $1}' access.logel primer campo de cada línea
awk -F: '{print $1}' /etc/passwdnombres de usuario (separador :)
awk '$9 == 500' access.loglíneas cuyo noveno campo es 500
sort | uniq -c | sort -rncontar repeticiones y ordenar por frecuencia
cut -d, -f2 datos.csvla segunda columna de un CSV
jq '.items[].name' datos.jsonextraer campos de un JSON

Ejemplo de tubería: las diez direcciones IP que más peticiones han hecho a nginx.

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

Redirección y tuberías

ConstrucciónQué hace
cmd > salida.txtescribir la salida en un archivo (sobrescribe)
cmd >> salida.txtañadir al final del archivo
cmd 2> errores.txtredirigir los errores
cmd > todo.log 2>&1salida y errores en un mismo archivo
cmd1 | cmd2pasar la salida de un comando a la entrada de otro
cmd | tee salida.txtmostrar en pantalla y guardar
cmd1 && cmd2ejecutar el segundo solo si el primero tiene éxito
cmd1 || cmd2ejecutar el segundo si el primero falla

Archivos comprimidos

ComandoQué hace
tar -czf copia.tar.gz directorio/empaquetar y comprimir con gzip
tar -xzf copia.tar.gzdescomprimir
tar -tzf copia.tar.gzver el contenido
zip -r sitio.zip sitio/ / unzip sitio.ziparchivos zip

Red

ComandoQué hace
ip ainterfaces y direcciones IP
ip rtabla de rutas
ping -c 4 8.8.8.8disponibilidad de un equipo
ss -tulpnpuertos abiertos y los procesos que los usan
dig example.com / nslookup example.comconsulta DNS
curl -I https://example.comsolo las cabeceras de respuesta
curl -s https://api.example.com | jqpetición a una API con JSON formateado
wget URLdescargar un archivo
traceroute example.comruta de los paquetes hasta el equipo
ssh usuario@hostconectarse a un servidor
ssh-keygen -t ed25519crear un par de claves SSH
scp archivo usuario@host:/tmp/copiar un archivo al servidor
rsync -avz directorio/ usuario@host:/srv/directorio/sincronizar un directorio
sudo ufw statusreglas del cortafuegos

Sistema y discos

ComandoQué hace
uname -anúcleo y arquitectura
cat /etc/os-releasedistribución y versión
hostnamectlnombre del equipo e información del sistema
lsblkdiscos y particiones
sudo mount /dev/sdb1 /mntmontar una partición
who / wquién está conectado ahora
sudo reboot / sudo shutdown -h nowreiniciar / apagar

Resumen

Para el trabajo diario bastan unas dos docenas de comandos: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl y ssh. Guarde esta chuleta de comandos de Linux y consúltela hasta que los comandos le salgan de forma natural. Todos los grupos de comandos se explican paso a paso y con práctica en nuestro curso de Linux.

Preguntas frecuentes

¿Cómo salgo de man o de less?

Pulse q. Para buscar dentro, escriba una barra seguida de la palabra; n pasa a la siguiente coincidencia.

¿Cómo salgo del editor vim?

Pulse Esc, escriba :q! y Intro para salir sin guardar, o :wq para guardar y salir. Los principiantes suelen encontrar más sencillo nano para editar archivos.

¿Por qué es peligroso rm -rf?

El comando borra sin confirmación y sin papelera, y un error en la ruta (por ejemplo, un espacio de más antes del asterisco) puede eliminar el directorio equivocado. Compruebe la ruta con ls antes de ejecutarlo.

¿Cómo repito el último comando con sudo?

Escriba sudo !! — la shell sustituye el comando anterior completo.

¿Cómo detengo un comando bloqueado en la terminal?

Ctrl+C envía una señal de interrupción. Si el comando no responde, localice su PID con ps o pgrep en otra terminal y termínelo con kill.