Introducción
Dominar la terminal de Linux es el primer paso para convertirte en un usuario avanzado, administrador de sistemas o desarrollador. No importa si usas Ubuntu, Debian, CentOS o Fedora — los comandos que te presentamos aquí son universales y te servirán en cualquier distribución.
En esta guía práctica vamos a repasar los 20 comandos esenciales que todo usuario básico debe conocer, con ejemplos concretos para que empieces a usarlos hoy mismo. 🐧
1. ls — Listar archivos y directorios
El comando más básico y más usado. Lista el contenido de un directorio.
ls # Lista básica
ls -l # Vista detallada (permisos, dueño, tamaño, fecha)
ls -a # Muestra archivos ocultos (los que empiezan con .)
ls -lh # Tamaños en formato legible (KB, MB, GB)
ls -la /var/log # Combina flags en un directorio específico
2. cd — Cambiar de directorio
Navega por el sistema de archivos.
cd /home/usuario # Va al directorio especificado
cd .. # Sube un nivel
cd ~ # Va al home del usuario
cd - # Va al directorio anterior
3. pwd — Mostrar directorio actual
Print Working Directory. Te dice exactamente dónde estás en el árbol de directorios.
pwd # Ejemplo: /home/gabriel/proyectos
4. cp — Copiar archivos y directorios
cp archivo.txt backup/ # Copiar archivo a otro directorio
cp archivo.txt archivo_copia.txt # Copiar con otro nombre
cp -r directorio/ backup/ # Copiar directorio recursivamente
cp -i archivo.txt destino/ # Preguntar antes de sobrescribir
5. mv — Mover o renombrar
mv archivo.txt /otra/ruta/ # Mover archivo
mv viejo.txt nuevo.txt # Renombrar archivo
mv -i archivo.txt destino/ # Preguntar antes de sobrescribir
6. rm — Eliminar archivos
rm archivo.txt # Eliminar archivo
rm -i archivo.txt # Preguntar antes de eliminar
rm -r directorio/ # Eliminar directorio recursivamente
rm -rf directorio/ # ¡Peligro! Elimina sin preguntar (usar con cuidado)
⚠️ Consejo: Siempre usa
-isi no estás seguro. Y considera usartrashen vez dermpara archivos importantes.
7. mkdir — Crear directorios
mkdir proyecto # Crear un directorio
mkdir -p proyecto/src/css # Crear estructura anidada (crea padres si no existen)
8. cat — Visualizar archivos
Muestra el contenido completo de un archivo en la terminal.
cat archivo.txt # Ver contenido
cat archivo1.txt archivo2.txt > union.txt # Concatenar archivos
cat -n archivo.txt # Mostrar con números de línea
9. less — Visualizar archivos grandes
Con less puedes navegar archivos grandes página por página, algo que cat no permite.
less archivo_grande.log # Navegar con flechas, PageUp/PageDown
# Dentro de less: /texto busca, q sale, g va al inicio, G va al final
10. head y tail — Principio y final
head -n 20 archivo.txt # Primeras 20 líneas
tail -n 30 archivo.txt # Últimas 30 líneas
tail -f /var/log/syslog # Sigue el archivo en tiempo real (ideal para logs)
tail -f es indispensable para monitorear logs en vivo mientras ocurren eventos.
11. grep — Buscar texto
El buscador de patrones más potente de la terminal.
grep "error" /var/log/syslog # Buscar "error" en un archivo
grep -i "error" archivo.log # Búsqueda sin distinción mayúsculas/minúsculas
grep -r "function" ./src/ # Buscar recursivamente en todo un directorio
grep -c "error" archivo.log # Contar ocurrencias
grep -v "debug" archivo.log # Excluir líneas que contengan "debug"
12. find — Buscar archivos
Encuentra archivos por nombre, tipo, tamaño, fecha y más.
find /home -name "*.txt" # Por nombre
find /var -type f -size +100M # Archivos mayores a 100MB
find . -mtime -7 # Archivos modificados en los últimos 7 días
find . -name "*.log" -exec rm {} \; # Encontrar y ejecutar un comando
13. chmod — Permisos de archivos
Cambia los permisos de lectura (r), escritura (w) y ejecución (x).
chmod 755 script.sh # rwxr-xr-x (estándar para scripts)
chmod 644 archivo.txt # rw-r--r-- (estándar para archivos)
chmod +x script.sh # Añadir ejecución
chmod -R 755 directorio/ # Recursivo en todo un directorio
14. chown — Cambiar propietario
sudo chown usuario:grupo archivo.txt # Cambiar dueño y grupo
sudo chown -R usuario:grupo directorio/ # Recursivo
15. ps — Procesos del sistema
ps # Procesos del usuario actual
ps aux # Todos los procesos del sistema
ps aux | grep nginx # Buscar proceso específico
ps -ef # Formato completo con más detalles
16. kill — Terminar procesos
kill 1234 # Terminar proceso por PID (SIGTERM)
kill -9 1234 # Forzar terminación (SIGKILL)
killall nginx # Terminar todos los procesos con ese nombre
pkill -f "python script.py" # Matar por nombre del comando
⚠️ Siempre intenta
kill PIDprimero (envía SIGTERM, permite cierre limpio). Usakill -9solo si el proceso no responde.
17. df — Espacio en disco
df -h # Espacio en discos montados (formato legible)
df -hT # Incluye tipo de sistema de archivos
18. du — Uso de disco por directorio
du -sh /home/usuario # Tamaño total de un directorio
du -h --max-depth=1 /var # Tamaño de subdirectorios (1 nivel)
du -h /var/log | sort -h # Ordenar por tamaño
19. tar — Comprimir y extraer archivos
tar -czvf archivo.tar.gz directorio/ # Comprimir directorio en .tar.gz
tar -xzvf archivo.tar.gz # Extraer .tar.gz
tar -cjvf archivo.tar.bz2 directorio/ # Comprimir en .tar.bz2 (mejor compresión)
tar -xzvf archivo.tar.gz -C /ruta/ # Extraer en directorio específico
20. nano / vim — Editores de texto en terminal
nano archivo.txt # Editor simple, intuitivo
vim archivo.txt # Editor potente (curva de aprendizaje)
Nano es ideal para empezar: los comandos se ven en la parte inferior (^G ayuda, ^O guarda, ^X sale). Vim requiere práctica pero una vez que lo dominas, editarás archivos a velocidad impresionante.
Bonus: Pipes y redirecciones
Lo que hace poderosos a estos comandos es que puedes combinarlos con pipes (|):
# Ejemplo: encontrar los 5 procesos que más memoria usan
ps aux --sort=-%mem | head -6
# Ejemplo: contar cuántos archivos .conf hay en /etc
find /etc -name "*.conf" | wc -l
# Ejemplo: buscar errores en logs y guardarlos
grep "ERROR" /var/log/app.log > errores.txt
# Ejemplo: monitorear logs en vivo filtrando por palabra
tail -f /var/log/syslog | grep "ssh"
Conclusión
Estos 20 comandos son la base de todo trabajo en Linux. No los memorices todos de golpe — empieza con los que más necesites y practica combinándolos con pipes. En poco tiempo estarás navegando la terminal con fluidez.
¿Quieres que profundice en algún comando en particular? Déjalo en los comentarios. ¡Hasta la próxima, Fronters! 🚀