Comandos básicos de la terminal de Linux que sí necesitas
Arnold Wender · · 10 min de lectura
Ver todo: Linux & Open SourceLa mayoría de las guías de comandos Linux son lo mismo: una lista de 50 comandos con una línea de descripción cada uno, sin contexto, sin decirte cuándo usarlos ni por qué existen. Terminas memorizando ls -la sin entender qué significa -l o qué diferencia a -a de no ponerlo.
Esta guía funciona diferente. Vamos a cubrir los comandos que realmente usas en el día a día —no los 200 que existen—, con el razonamiento detrás de cada uno. El objetivo no es que memorizas una lista, sino que entiendas qué estás haciendo cuando los ejecutas.
El shell que asumo es Bash, que sigue siendo el default en Ubuntu 26.04 LTS (Resolute Raccoon), Debian y la mayoría de distros de servidor. En versión 5.3 al momento de escribir esto. Si usas Zsh (macOS, Arch con configuración moderna), casi todo aplica igual.
Lo esencial antes de empezar
- La terminal no es difícil — tiene una lógica consistente que una vez que entiendes, se extiende sola
- Los comandos básicos se reducen a tres grupos: navegar el filesystem, manipular archivos y entender qué está pasando en el sistema
- El operador
|(pipe) es la idea más poderosa de Unix: conectar herramientas simples para hacer cosas complejas - Los permisos son el concepto que más confunde a quienes vienen de Windows — son fundamentales, no opcionales
- Nunca corras
sudosin entender qué hace el comando que sigue man <comando>es la documentación que siempre está disponible, sin internet
Para más recursos del ecosistema Linux, visita Linux & Open Source en GeekShop.
Navegar el filesystem: los tres comandos de los que nunca te separas
El filesystem de Linux es una jerarquía que empieza en / (raíz). Todo —dispositivos, configuraciones, archivos de usuario— vive ahí dentro. Saber dónde estás y cómo moverte es lo primero.
NAVEGACIÓN
pwd, ls y cd: el triángulo de oro
pwd (Print Working Directory) te dice exactamente en qué directorio estás. Suena trivial hasta que estás en la quinta sesión SSH del día y pierdes el hilo. Úsalo sin miedo.
ls lista los contenidos del directorio actual. La versión que realmente usas es ls -lah: -l da formato largo (permisos, propietario, tamaño, fecha), -a incluye archivos ocultos (los que empiezan con .), -h convierte bytes en KB/MB legibles.
cd te mueve entre directorios. cd .. sube un nivel, cd ~ te lleva a tu home, cd - regresa al directorio anterior (un truco que muchos no conocen y que ahorra segundos constantes). cd sin argumento equivale a cd ~.
Un patrón que usarás todo el tiempo: ls -lah /ruta/que/no/conoces antes de hacer cualquier otra cosa. Ver qué hay antes de actuar es buena práctica.
Tab completion: la función más subestimada
No es un comando, pero vale mencionarlo aquí: presiona Tab para autocompletar rutas y nombres de comandos. Doble Tab muestra todas las opciones cuando hay ambigüedad. Si aprendes una sola cosa de esta sección, que sea el uso del Tab — reduce errores tipográficos y acelera el trabajo de forma inmediata.
Crear, leer, mover y eliminar archivos
ARCHIVOS
mkdir, cp, mv, rm: las operaciones fundamentales
mkdir nombre crea un directorio. mkdir -p ruta/profunda/nueva crea toda la jerarquía de golpe sin errores si los directorios intermedios no existen. El flag -p es el que más olvidarás y más necesitarás.
cp origen destino copia archivos. Para copiar directorios completos necesitas -r (recursivo): cp -r carpeta_origen/ carpeta_destino/. El / al final de una carpeta en el origen copia el contenido, no la carpeta misma — detalle que causa confusión.
mv origen destino mueve o renombra. Si el destino es un nombre diferente en el mismo directorio, renombra. Si es otro directorio, mueve. No necesita -r para directorios.
rm archivo elimina. No hay papelera. No hay deshacer. Para directorios: rm -r carpeta/. Jamás ejecutes rm -rf / ni rm -rf * en el directorio equivocado. Esta no es hipérbole — hay miles de historias reales de pérdida total de datos.
Para leer el contenido de un archivo: cat archivo.txt imprime todo el contenido de golpe. Para archivos largos, usa less archivo.txt — navega con las flechas, busca con /término, y sal con q. less es la herramienta correcta para leer logs.
touch archivo.txt crea un archivo vacío si no existe, o actualiza la fecha de modificación si ya existe. Se usa mucho en scripts para crear archivos placeholder.
Buscar cosas: find, grep y la diferencia entre los dos
Estos dos comandos hacen cosas completamente distintas y conviene tenerlos separados en la cabeza.
find busca archivos y directorios por nombre, tipo, tamaño, fecha. Busca en el filesystem:
find /home/usuario -name "*.log" # archivos .log en home
find . -type d -name "node_modules" # directorios llamados node_modules
find /var/log -mtime -7 # modificados en los últimos 7 días
grep busca texto dentro de archivos. Busca contenido, no nombres:
grep "error" /var/log/syslog # líneas con "error" en syslog
grep -r "TODO" ./src/ # busca "TODO" en todos los archivos de src/
grep -n "función" script.py # muestra número de línea
grep -i "Error" archivo.log # case-insensitive
El combo más útil: grep -rn "cadena" . — busca recursivamente en el directorio actual mostrando números de línea. Lo usarás constantemente en proyectos de código.
Permisos: el concepto que más confunde y más importa
Los permisos en Linux son de los conceptos que más frustran a quienes vienen de Windows porque en Windows casi no existen de forma explícita. Aquí son fundamentales.
Cuando haces ls -l ves algo así:
-rw-r--r-- 1 arnold users 4096 may 19 10:23 config.txt
drwxr-xr-x 2 arnold users 4096 may 19 09:00 scripts/
El primer bloque de caracteres define los permisos. Cada posición tiene un significado:
| Posición | Significado |
|---|---|
| 1 | Tipo: - archivo, d directorio, l symlink |
| 2-4 | Permisos del propietario (owner): rwx = leer/escribir/ejecutar |
| 5-7 | Permisos del grupo |
| 8-10 | Permisos de todos los demás |
chmod cambia permisos. Hay dos formas de usarlo:
chmod 755 script.sh # notación octal: rwxr-xr-x
chmod +x script.sh # agrega permiso de ejecución a todos
chmod u-w archivo.txt # quita escritura al propietario (u=user)
La notación octal: 7 = rwx, 6 = rw-, 5 = r-x, 4 = r--, 0 = ---. El número de 3 dígitos representa owner/group/others. 755 es el más común para scripts ejecutables, 644 para archivos normales.
chown usuario:grupo archivo cambia el propietario. Casi siempre necesitas sudo para esto.
Los permisos en Linux no son una molestia burocrática — son el mecanismo que hace que un proceso comprometido no pueda escribir donde no debe. Entenderlos es entender por qué Linux es más robusto en producción.
Procesos: ver qué está corriendo y cómo pararlo
PROCESOS
ps, top y kill: gestión del sistema en tiempo real
ps aux muestra todos los procesos corriendo en el momento. La salida puede ser larga — normalmente la combinas con grep: ps aux | grep nginx para ver si nginx está corriendo.
top es el monitor interactivo del sistema: uso de CPU, memoria, procesos ordenados por consumo. Presiona q para salir. Su versión mejorada es htop (instala con apt install htop) — mejor UX, colores, mouse support. En servers donde no tienes htop, top siempre está ahí.
kill PID manda una señal a un proceso por su ID (el número de la columna PID en ps o top). La señal default es SIGTERM — pide al proceso que termine limpiamente. Si no responde: kill -9 PID manda SIGKILL, terminación forzada inmediata.
killall nombre mata todos los procesos con ese nombre: killall firefox. Más conveniente que buscar el PID cuando hay un solo proceso.
jobs, fg y bg: cuando corres un proceso con & al final, corre en background. jobs lista los procesos en background, fg %1 trae el job 1 al frente, bg %1 lo manda atrás si está detenido. Y Ctrl+C interrumpe el proceso en foreground, Ctrl+Z lo pausa (sin terminarlo).
El pipe y la redirección: la filosofía Unix en la práctica
Este es el concepto más importante de esta guía. Unix tiene una filosofía: cada herramienta hace una cosa bien, y las herramientas se conectan entre sí. El operador | (pipe) conecta la salida de un comando con la entrada del siguiente.
cat /var/log/syslog | grep "error" | tail -20
Esto dice: toma el contenido de syslog, filtra las líneas con “error”, y muestra las últimas 20. Tres herramientas simples, una cadena poderosa.
Otros operadores de redirección que usarás:
comando > archivo.txt # redirige salida a archivo (sobreescribe)
comando >> archivo.txt # redirige salida a archivo (agrega al final)
comando 2> errores.txt # redirige stderr (errores) a archivo
comando 2>&1 # redirige stderr al mismo lugar que stdout
comando < entrada.txt # usa archivo como entrada
El 2>&1 aparece mucho en scripts de automatización: garantiza que tanto los mensajes normales como los errores se capturen juntos.
Tabla de referencia rápida
| Comando | Para qué sirve | Ejemplo práctico |
|---|---|---|
pwd |
Directorio actual | pwd |
ls -lah |
Listar con detalles y ocultos | ls -lah ~/Documentos |
cd - |
Volver al directorio anterior | cd - |
mkdir -p |
Crear jerarquía de directorios | mkdir -p proyectos/web/src |
cp -r |
Copiar directorio completo | cp -r backup/ backup_2026/ |
find . -name |
Buscar archivo por nombre | find . -name "*.conf" |
grep -rn |
Buscar texto en archivos | grep -rn "TODO" ./src |
chmod 755 |
Hacer script ejecutable | chmod +x deploy.sh |
ps aux | grep |
Ver si un proceso corre | ps aux | grep nginx |
tail -f |
Seguir un log en tiempo real | tail -f /var/log/syslog |
df -h |
Espacio en disco | df -h |
du -sh |
Tamaño de directorio | du -sh /var/log/ |
Errores comunes (y por qué suceden)
Comandos de sistema que usarás tarde o temprano
Algunos comandos que no son de “día uno” pero que encontrarás pronto:
df -h muestra el espacio disponible en todos los sistemas de archivos montados. El flag -h da unidades legibles (GB, MB). Esencial cuando algo falla porque el disco está lleno.
du -sh directorio/ dice cuánto espacio ocupa un directorio. Útil para diagnosticar qué está consumiendo espacio: du -sh /var/log/* te muestra el tamaño de cada log.
tail -f /var/log/syslog muestra las últimas líneas de un archivo y se queda observando — imprime en tiempo real cada nueva línea que se agrega. La herramienta de facto para depurar servicios: arranca el servicio en otra terminal y mira el log aquí.
ssh usuario@servidor conecta a un servidor remoto. Una vez adentro, tienes una shell interactiva exactamente igual a la local. La transferencia de archivos se hace con scp (modo tradicional) o rsync (más potente, con soporte de delta y compresión).
sudo ejecuta un comando como superusuario. No es “para administradores” — es para cualquier operación que afecta partes del sistema fuera de tu directorio home. Úsalo con consciencia: un comando mal escrito con sudo puede romper la instalación.
Si quieres continuar el hilo, los siguientes pasos naturales son configurar tu entorno de shell de forma seria en Cómo configurar tu terminal y dotfiles desde cero, o volver al principio con Cómo empezar en Linux sin frustrarte si todavía estás decidiendo qué distro usar.
Para comparar opciones de distribución antes de comprometerte con una, la guía Distros de Linux: comparativa con criterio te da el mapa completo.
FAQ
¿Necesito memorizar todos estos comandos desde el principio?
No. Los primeros cinco que debes tener automáticos son pwd, ls, cd, grep y man. El resto se aprende con uso. man <comando> existe precisamente porque nadie memoriza todo — lo consultas cuando lo necesitas.
¿Hay diferencia entre terminal, consola, shell y línea de comandos?
Sí, aunque en uso cotidiano se usan indistintamente. El emulador de terminal es el programa (GNOME Terminal, Alacritty, Kitty). La shell es el intérprete de comandos que corre dentro (Bash, Zsh, Fish). La consola históricamente es el terminal físico conectado al servidor. “Línea de comandos” es el término más genérico para todo el entorno.
¿Por qué en algunos comandos se usa - y en otros --?
Por convención (aunque no siempre se respeta): - prefija flags de una letra (-l, -a, -h), -- prefija flags de palabra completa (--help, --recursive, --all). Muchos comandos aceptan ambas formas: ls -a y ls --all son equivalentes.
¿Es peligroso usar la terminal?
Más que en una interfaz gráfica, sí — porque no hay confirmaciones automáticas para operaciones destructivas. El riesgo real no es la terminal en sí, sino ejecutar comandos que no entiendes. La regla práctica: si copiaste un comando de internet, léelo completo antes de presionar Enter. Si hay rm -rf, dd, o > /dev/ en el comando, entiende exactamente qué hace antes de ejecutarlo.
¿Bash o Zsh para empezar?
Bash si estás aprendiendo en un servidor o quieres portabilidad máxima — casi todos los scripts del mundo son Bash, y está en todas las distros por defecto. Zsh si estás en tu máquina local y quieres mejor autocompletado y plugins (Oh My Zsh, Starship). La sintaxis básica es prácticamente idéntica en ambos.