// guía interactiva
Linux Command
Cheatsheet
Referencia completa de los comandos más usados en Linux. Haz clic en cualquier tarjeta para ver las opciones detalladas y ejemplos reales.
80+comandos
8categorías
200+ejemplos
No se encontraron comandos para ""
Archivos y Directorios
Navegar, crear, copiar, mover y eliminar
ls
Lista el contenido de un directorio
-lFormato largo con permisos, tamaño, fecha
-aMuestra archivos ocultos (empiezan con .)
-hTamaños legibles (KB, MB, GB)
-RRecursivo: lista subdirectorios
-tOrdena por fecha de modificación
-SOrdena por tamaño (mayor primero)
Listar con detalles y archivos ocultos:
$ ls -lah /home/usuario
Solo archivos .txt, ordenados por fecha:
$ ls -lt *.txt
cd
Cambia el directorio de trabajo actual
~Directorio home del usuario actual
..Directorio padre (sube un nivel)
-Vuelve al directorio anterior
/Directorio raíz del sistema
Ir al home, subir dos niveles, volver al anterior:
$ cd ~
$ cd ../../etc
$ cd -
$ cd ../../etc
$ cd -
mkdir
Crea directorios nuevos
-pCrea directorios intermedios si no existen
-mEstablece permisos al crear (ej: -m 755)
-vMuestra cada directorio creado
Crear árbol de directorios de una vez:
$ mkdir -p proyecto/{src,docs,tests,bin}
Crear con permisos específicos:
$ mkdir -m 700 datos_privados
cp
Copia archivos y directorios
-rRecursivo: copia directorios completos
-pPreserva permisos, fechas y propietario
-iPregunta antes de sobreescribir
-uCopia solo si el origen es más nuevo
-vMuestra cada archivo copiado
Copiar directorio preservando atributos:
$ cp -rp /var/www/html /backup/html_bak
mv
Mueve o renombra archivos y directorios
-iPregunta antes de sobreescribir
-nNo sobreescribe archivos existentes
-uMueve solo si el origen es más nuevo
-vMuestra cada archivo movido
Renombrar archivo:
$ mv informe_v1.txt informe_final.txt
Mover todos los .log a otro dir:
$ mv *.log /var/log/archive/
rm
Elimina archivos o directorios permanentemente
-rRecursivo: elimina directorios y su contenido
-fForzado: no pide confirmación ni errores
-iPregunta antes de eliminar cada archivo
-vMuestra cada archivo eliminado
Eliminar directorio completo (¡cuidado!):
$ rm -rf carpeta_temporal/
⚠ No hay papelera de reciclaje
⚠ No hay papelera de reciclaje
find
Busca archivos con criterios avanzados
-namePor nombre (admite wildcards: *.log)
-typef=archivo, d=directorio, l=enlace
-sizePor tamaño: +10M (mayor), -1k (menor)
-mtimeModificado hace N días (-7 = última semana)
-execEjecuta comando en cada resultado
-permPor permisos (ej: -perm 777)
Buscar logs de la última semana y comprimirlos:
$ find /var/log -name "*.log" -mtime -7 -exec gzip {} \;
Archivos mayores de 100MB:
$ find /home -type f -size +100M
ln
Crea enlaces entre archivos
-sEnlace simbólico (como acceso directo)
(sin -s)Enlace duro: comparte inodo con el original
-fFuerza creación aunque ya exista el destino
Crear acceso directo a un ejecutable:
$ ln -s /opt/app/bin/app /usr/local/bin/app
du
Muestra el espacio ocupado en disco
-sResumen total por directorio
-hFormato legible (KB, MB, GB)
-d NProfundidad máxima de directorios
--max-depthEquivalente a -d
Ver los directorios más grandes en /home:
$ du -sh /home/* | sort -rh | head -10
rsync
Sincroniza archivos local o remotamente
-aModo archivo: preserva todo (permisos, fechas…)
-vVerbose: muestra archivos transferidos
-zComprime durante la transferencia
--deleteElimina en destino lo que no está en origen
-nDry run: simula sin copiar nada
--excludeExcluye patrones (ej: --exclude="*.tmp")
Backup a servidor remoto:
$ rsync -avz --delete /home/user/ user@192.168.1.10:/backup/
Red y Conectividad
Diagnóstico, transferencia y configuración de red
ping
Verifica conectividad con un host
-c NEnvía N paquetes y termina
-i NIntervalo en segundos entre paquetes
-t NTTL (tiempo de vida del paquete)
-W NTimeout en segundos por respuesta
Enviar 4 pings a Google DNS:
$ ping -c 4 8.8.8.8
ssh
Conexión segura a servidores remotos
-p NPuerto específico (defecto: 22)
-iEspecifica archivo de clave privada
-LTúnel local: -L puerto:host:puertoRemoto
-XReenvío de X11 (apps gráficas remotas)
-vVerbose: muestra detalles de conexión
Conectar con clave y puerto personalizado:
$ ssh -i ~/.ssh/id_rsa -p 2222 user@servidor.com
Túnel SSH para acceder a base de datos remota:
$ ssh -L 3306:localhost:3306 user@servidor.com
curl
Transfiere datos con URLs (HTTP, FTP, etc.)
-oGuarda la salida en un archivo
-OGuarda con el nombre original del archivo
-IMuestra solo las cabeceras HTTP
-XMétodo HTTP: GET, POST, PUT, DELETE
-dDatos a enviar en el cuerpo (POST)
-HCabecera personalizada (ej: -H "Auth: token")
-LSigue redirecciones automáticamente
Hacer POST con JSON a una API:
$ curl -X POST -H "Content-Type: application/json" \
-d '{"user":"admin"}' https://api.ejemplo.com/login
-d '{"user":"admin"}' https://api.ejemplo.com/login
ss
Lista sockets y conexiones de red activas
-tSolo conexiones TCP
-uSolo conexiones UDP
-lSolo puertos en escucha (listening)
-nMuestra números en vez de nombres
-pMuestra el proceso que usa el socket
Ver puertos TCP en escucha con su proceso:
$ ss -tlnp
nmap
Escanea puertos y detecta servicios en red
-sVDetecta versión de servicios
-sSEscaneo SYN (sigiloso)
-pPuertos a escanear (ej: -p 22,80,443)
-ODetecta sistema operativo
-AEscaneo completo: versión + OS + scripts
Escanear toda la red local:
$ nmap -sV 192.168.1.0/24
dig
Consultas DNS detalladas
+shortSalida reducida solo con el resultado
-t MXTipo de registro: A, MX, NS, TXT, CNAME
@serverUsar servidor DNS específico (ej: @8.8.8.8)
Consultar registros MX de un dominio:
$ dig +short -t MX gmail.com
Procesos y Memoria
Monitorear, controlar y gestionar procesos
ps
Lista procesos en ejecución
auxTodos los procesos de todos los usuarios
-efFormato completo con jerarquía
--sortOrdenar: --sort=-%cpu o --sort=-%mem
-u userSolo procesos de un usuario específico
Top 10 procesos por uso de CPU:
$ ps aux --sort=-%cpu | head -11
top / htop
Monitor interactivo de procesos en tiempo real
kMatar proceso por PID
rCambiar prioridad (renice)
MOrdenar por uso de memoria
POrdenar por uso de CPU
qSalir del monitor
Monitorear solo procesos de un usuario:
$ top -u www-data
kill / killall
Envía señales a procesos para terminarlos
-1 (HUP)Reiniciar el proceso (reload config)
-2 (INT)Interrupción (equivale a Ctrl+C)
-9 (KILL)Terminación forzada e inmediata
-15 (TERM)Terminación ordenada (defecto)
Matar proceso por PID y por nombre:
$ kill -9 1234
$ killall nginx
$ killall nginx
systemctl
Gestiona servicios del sistema (systemd)
startInicia un servicio
stopDetiene un servicio
restartReinicia un servicio
reloadRecarga la configuración sin reiniciar
enableActiva arranque automático al inicio
disableDesactiva arranque automático
statusMuestra estado y logs recientes
Activar nginx y que arranque solo:
$ sudo systemctl enable --now nginx
free
Muestra el uso de RAM y swap
-hFormato legible (MB, GB)
-s NActualiza cada N segundos
-tMuestra fila total (RAM + swap)
Ver RAM cada 2 segundos:
$ free -h -s 2
Seguridad y Permisos
Usuarios, grupos y control de acceso
chmod
Cambia los permisos de archivos
7 = rwxLectura + escritura + ejecución
6 = rw-Lectura + escritura
5 = r-xLectura + ejecución
4 = r--Solo lectura
0 = ---Sin permisos
u/g/o/ausuario / grupo / otros / todos
+/-/=añadir / quitar / establecer
-RRecursivo para directorios
Script ejecutable solo por el dueño:
$ chmod 750 script.sh
$ chmod u+x,go-w archivo.sh
$ chmod u+x,go-w archivo.sh
chown
Cambia el propietario de archivos
userCambia solo el usuario propietario
user:groupCambia usuario y grupo
:groupCambia solo el grupo
-RRecursivo para directorios
Asignar web a www-data recursivamente:
$ sudo chown -R www-data:www-data /var/www/html
sudo
Ejecuta comandos como superusuario
-u userEjecuta como otro usuario (no root)
-iAbre shell interactivo como root
-lLista permisos sudo del usuario actual
!!Repite último cmd con sudo: sudo !!
Repetir último comando olvidado con sudo:
$ sudo !!
useradd / usermod
Crea y modifica cuentas de usuario
-mCrea directorio home
-sShell por defecto (ej: /bin/bash)
-GGrupos adicionales separados por coma
-aGAñade usuario a grupo SIN quitarlo de otros
-L / -UBloquear / desbloquear cuenta
Crear usuario y añadir a sudo:
$ sudo useradd -m -s /bin/bash juan
$ sudo usermod -aG sudo juan
$ sudo usermod -aG sudo juan
Texto y Búsqueda
Filtrar, transformar y procesar texto
grep
Busca patrones con expresiones regulares
-rRecursivo: busca en subdirectorios
-iIgnora mayúsculas/minúsculas
-nMuestra número de línea
-vInvierte: muestra líneas que NO coinciden
-cCuenta las líneas coincidentes
-lSolo muestra nombres de archivos con coincidencia
-EExpresiones regulares extendidas (ERE)
Buscar errores en logs ignorando mayúsculas:
$ grep -rni "error" /var/log/ --include="*.log"
sed
Editor de flujo para transformar texto
s/a/b/gSustituye 'a' por 'b' (g = todas las ocurrencias)
/patrón/dElimina líneas que contienen el patrón
-iEdita el archivo en su lugar (in-place)
-n 'Np'Imprime solo la línea N
Reemplazar texto en un archivo directamente:
$ sed -i 's/localhost/192.168.1.10/g' config.conf
awk
Procesa texto estructurado por columnas
$1,$2…$NCampos (columnas) del registro actual
$0Línea completa
NRNúmero de línea actual
NFNúmero total de campos
-FDefine el separador de campo (ej: -F:)
Listar usuarios y sus shells del sistema:
$ awk -F: '{print $1, $7}' /etc/passwd
tail / head
Muestra el inicio o final de archivos
-n NMuestra las primeras/últimas N líneas
-f(tail) Sigue el archivo en tiempo real
-F(tail) Como -f pero reabre si se rota
-c NMuestra los últimos/primeros N bytes
Seguir logs de nginx en tiempo real:
$ tail -F /var/log/nginx/access.log | grep ERROR
Sistema
Información del sistema, logs y administración
df
Muestra espacio disponible en discos
-hFormato legible (GB, MB)
-TMuestra el tipo de sistema de archivos
-iMuestra inodos en vez de bloques
Ver todos los discos con su tipo:
$ df -hT | grep -v tmpfs
journalctl
Consulta logs del sistema (systemd)
-uFiltrar por servicio: -u nginx
-fSeguir logs en tiempo real
--sinceDesde: --since "2024-01-01 10:00"
-pPrioridad: err, warning, info, debug
-n NÚltimas N entradas
--disk-usageEspacio ocupado por logs
Ver errores de ssh desde hoy:
$ journalctl -u ssh -p err --since today
crontab
Programa tareas automáticas
-eEdita el crontab del usuario actual
-lLista las tareas programadas
-rElimina todas las tareas del usuario
# min hora día mes diasem comando
* * * * * comando
* * * * * comando
Backup diario a las 2am:
0 2 * * * /home/user/scripts/backup.sh >> /var/log/backup.log 2>&1
uname
Información del sistema y kernel
-aTodo: kernel, hostname, arquitectura, etc.
-rSolo versión del kernel
-mArquitectura del hardware (x86_64, arm…)
Info completa del sistema:
$ uname -a
Linux ubuntu 6.8.0-45-generic #45-Ubuntu SMP x86_64 GNU/Linux
Linux ubuntu 6.8.0-45-generic #45-Ubuntu SMP x86_64 GNU/Linux
Gestión de Paquetes
apt, dpkg y snap para Ubuntu/Debian
apt
Gestor de paquetes de Debian/Ubuntu
updateActualiza la lista de paquetes disponibles
upgradeActualiza todos los paquetes instalados
installInstala uno o más paquetes
removeElimina un paquete (mantiene configs)
purgeElimina paquete Y sus archivos de config
autoremoveElimina dependencias huérfanas
searchBusca paquetes por nombre o descripción
showMuestra información detallada de un paquete
Actualizar sistema completo:
$ sudo apt update && sudo apt upgrade -y
dpkg
Gestiona paquetes .deb directamente
-iInstala un paquete .deb local
-rElimina un paquete instalado
-lLista todos los paquetes instalados
-LLista archivos de un paquete instalado
-SEncuentra qué paquete provee un archivo
Instalar .deb descargado y ver sus archivos:
$ sudo dpkg -i vscode.deb
$ dpkg -L code
$ dpkg -L code
Compresión de Archivos
tar, gzip, zip y formatos comunes
tar
Empaqueta y comprime directorios
-cCrear nuevo archivo
-xExtraer archivo
-tListar contenido sin extraer
-zComprimir/descomprimir con gzip (.gz)
-jComprimir/descomprimir con bzip2 (.bz2)
-JComprimir/descomprimir con xz (.xz)
-vVerbose: muestra archivos procesados
-fNombre del archivo (siempre al final)
Crear backup con fecha y extraer:
$ tar -czvf backup_$(date +%F).tar.gz /home/user/
$ tar -xzvf backup.tar.gz -C /tmp/restore/
$ tar -xzvf backup.tar.gz -C /tmp/restore/
zip / unzip
Comprime en formato ZIP multiplataforma
-rRecursivo: incluye subdirectorios
-9Máxima compresión (más lento)
-eCifra el zip con contraseña
-d dirExtrae en un directorio específico
-lLista contenido sin extraer
Comprimir y extraer con contraseña:
$ zip -re documentos.zip /home/user/docs/
$ unzip documentos.zip -d /tmp/docs/
$ unzip documentos.zip -d /tmp/docs/
Referencia: Permisos chmod
Tabla completa de valores
Valores octales
4 = r-- = solo lectura
5 = r-x = leer + ejecutar
6 = rw- = leer + escribir
7 = rwx = todo
0 = --- = sin permisos
Permisos comunes
777 = rwxrwxrwx todos
755 = rwxr-xr-x binarios
644 = rw-r--r-- archivos
600 = rw------- privados
400 = r-------- claves SSH
Posiciones UGO
User → primer dígito
Group → segundo dígito
Others → tercer dígito
ejemplo: chmod 754 arch
u=rwx g=r-x o=r--
Pipes y Redirección
Encadenar comandos y redirigir salidas