- Dominar comandos básicos como cd, ls, mkdir, cp o rm es la base para moverse rápido por el sistema de archivos en Linux.
- Herramientas como find, grep, less, tar, rsync, wget o curl permiten buscar, filtrar, empaquetar y sincronizar datos con gran flexibilidad.
- El uso de chmod, chown, sudo y passwd es clave para gestionar permisos, usuarios y tareas administrativas con seguridad.
- Alias, historial, atajos de teclado, pestañas y utilidades como top, htop, df o du multiplican tu productividad en la terminal.

Dominar unos cuantos trucos de Linux marca la diferencia entre ir arrastrándote por la terminal o moverte por ella con soltura y rapidez. Aunque el escritorio tenga sus iconos y ventanas, en Linux la línea de comandos sigue siendo el lugar donde de verdad se hacen las cosas rápido, automatizable y con control total.
Hoy Linux apenas llega a una pequeña parte del mercado de ordenadores de escritorio, pero es la base de la mayoría de servidores, nubes y contenedores que usamos a diario. Si estás empezando o ya llevas tiempo en este mundillo, aprender a fondo comandos, atajos de teclado y pequeños trucos te hará mucho más productivo y te evitará muchos quebraderos de cabeza.
Por qué merece la pena aprender comandos y trucos de Linux
Antes de entrar al detalle, conviene recordar que casi todo lo que ves en una interfaz gráfica se apoya en comandos que se ejecutan por debajo. Cerrar una ventana, copiar un archivo o montar un disco suelen ser llamadas a programas de terminal con opciones concretas.
En la terminal escribes una orden con esta estructura básica: nombre_del_comando [opciones] [argumentos]. Las opciones (o flags) se indican con guiones simples (-r, -v) o dobles (--help), y los argumentos suelen ser rutas de archivos, nombres de usuario, patrones de búsqueda, etc.
Es importante tener en cuenta que en Linux todo distingue mayúsculas y minúsculas. No es lo mismo Desktop que desktop, y confundirte aquí es una de las fuentes de errores más habituales cuando empiezas.
Para trabajar a gusto con la terminal necesitas abrir un emulador de terminal. En la mayoría de distribuciones gráficas basta con pulsar Ctrl + Alt + T o buscar «terminal» en el menú de aplicaciones. Desde ahí podrás conectar también a otros equipos mediante SSH si estás usando servidores o VPS remotos.
Trucos básicos para moverte por directorios y archivos
Navegar con fluidez por el sistema de archivos es lo primero que debes interiorizar. Aquí entran en juego comandos como pwd, cd, ls, mkdir, cp, mv o rm, junto con algunos atajos poco conocidos.
El comando pwd (print working directory) muestra la ruta absoluta en la que te encuentras: por ejemplo /home/usuario/Documentos. No tiene misterio: escribes pwd y obtienes tu ubicación actual.
Para cambiar de carpeta usas cd. Puedes moverte con rutas absolutas (cd /etc) o relativas (cd Documentos). Algunos trucos útiles con cd son: cd o cd ~ para ir directo a tu /home/usuario, cd .. para subir un nivel, y cd - para volver al directorio anterior como si fuera un “deshacer”.
Para listar el contenido de un directorio, recurres a ls. Solo con ls te saca archivos y carpetas, pero con ls -a ves también los ocultos (los que comienzan por punto), y con ls -lh obtienes un listado detallado con tamaños legibles (KB, MB, GB…). Si quieres más legibilidad, puedes usar opciones como --color=auto y terminar configurándolo en un alias para no escribirlo siempre.
Crear carpetas es cosa de mkdir. Si escribes mkdir proyectos generas un directorio con ese nombre, y con mkdir -p 2025/enero/informes se crean todas las carpetas intermedias si no existían. Además, puedes definir permisos en el momento con mkdir -m 755 carpeta, de forma que controlas qué puede hacer cada usuario sobre ese directorio.
Para borrar directorios vacíos tienes rmdir, pero en cuanto haya algo dentro tendrás que tirar de rm -r. El combo peligroso (y muy usado) es rm -rf ruta, que elimina recursivamente sin pedir confirmación. Ojo aquí, porque lo que borres así no pasa por la papelera y recuperarlo es bastante complicado.
Copiar, mover y crear archivos con rapidez
En el día a día vas a copiar y mover cosas constantemente, así que conviene que domines bien cp, mv y touch, y que sepas un par de detalles extra como el comando file.
Con cp copias archivos y directorios. Un uso típico sería cp archivo.txt copia.txt para duplicar un fichero en el mismo sitio, o cp archivo.txt /ruta/de/destino/ para enviarlo a otra carpeta. Para copiar directorios completos hace falta cp -R carpeta_origen carpeta_destino, incluyendo todos sus subdirectorios y contenido.
El comando mv sirve tanto para mover como para renombrar. Si haces mv archivo.txt /otra/carpeta/ lo mueves de sitio, mientras que mv viejo.txt nuevo.txt simplemente cambia el nombre en el mismo directorio. Puedes combinar las dos cosas: mover a otra ruta y de paso ponerle un nombre nuevo.
Para crear archivos vacíos o actualizar la marca de tiempo de uno existente se usa touch. Por ejemplo touch notas.txt genera el fichero si no existe, y touch -m viejo.log actualiza la fecha de modificación del archivo a la hora actual.
Cuando no tienes claro qué tipo de archivo es algo, puedes preguntar a file. Escribes file imagen.png o file script.sh y te devuelve si es texto, binario, imagen, ejecutable, etc., e incluso el tipo MIME con file -i. Es muy útil cuando te pasan ficheros “raros” o sin extensión clara.
Comandos para empaquetar, comprimir y gestionar backups
En entornos Linux es bastante habitual trabajar con archivos comprimidos y copias empaquetadas, tanto localmente como de un servidor a otro. Aquí entran en juego tar, zip, unzip, wget, curl, scp y, para ir un paso más allá, rsync.
El clásico de los clásicos es tar, que agrupa varios archivos o directorios en un solo archivo tar, con o sin compresión. Un ejemplo típico sería tar -cvzf backup.tar.gz /home/usuario/documentos, donde -c crea, -v muestra el progreso, -z comprime con gzip y -f define el nombre del archivo resultante.
Si prefieres el formato ZIP, tienes zip y unzip. Para comprimir algo simple, zip archivo.zip notas.txt crea un zip con ese fichero. Con zip -r proyecto.zip proyecto/ puedes comprimir todo un árbol de directorios. Para extraer, bastan comandos tipo unzip archivo.zip o unzip archivo.zip -d carpeta_destino si quieres sacar el contenido en otra ruta.
Cuando necesitas descargar algo de Internet desde la terminal, las dos estrellas son wget y curl. Con wget URL descargas un archivo por HTTP, HTTPS o FTP; por ejemplo, wget https://wordpress.org/latest.zip te baja la última versión de WordPress. Con curl además de descargar, puedes hacer peticiones HTTP/HTTPS avanzadas, cambiar el método con -X, enviar cabeceras con -H o subir ficheros con -F.
Para copiar ficheros de forma segura entre equipos por red tienes scp. El formato genérico es algo así como scp fichero usuario@IP:/ruta/de/destino. Admite opciones como -P para indicar un puerto distinto al 22, -l para limitar el ancho de banda o -C para comprimir durante la transferencia.
El siguiente nivel es rsync, pensado para sincronizar directorios sin duplicar trabajo. Solo copia los archivos nuevos o modificados, ahorrando tiempo y ancho de banda. Se usa mucho con opciones como -a (modo archivo, conserva permisos y atributos), -v (verbose), -u (omite archivos más nuevos en destino) y -z (comprimir en la transferencia). Puedes, por ejemplo, traer todas las carpetas de un host remoto, excluir ciertos archivos (como grandes resultados de simulaciones científicas) o copiar solo ficheros ligeros con filtros de tamaño.
Buscar, ver y filtrar contenido como un pro
Otra pata fundamental de los trucos de Linux es saber encontrar cosas y leer archivos grandes sin volverte loco. Aquí reinan find, locate, cat, less, head, tail, grep, wc, awk y sed, con alguna ayuda extra como column.
Para localizar archivos por nombre o patrón, el comodín es find. La estructura habitual es find ruta -type f -name "*.txt" para buscar ficheros que acaben en .txt dentro de esa ruta. También puedes usar find ./ -name "long.txt" para buscar un archivo concreto, o combinar criterios tipo tamaño, fecha, permisos, etc.
Si quieres algo más rápido pero menos preciso, está locate, que busca en una base de datos actualizada periódicamente. Con locate -i escuela*nota encuentras archivos que contengan ambas palabras, sin distinguir mayúsculas o minúsculas, gracias a la opción -i.
Para simplemente echar un vistazo a un archivo de texto largo, cat es el más directo, pero puede volcarte demasiada información de golpe. Como alternativa más cómoda, less te permite moverte hacia arriba y abajo por el contenido con las flechas o con PgUp/PgDn. Tienes también head para ver las primeras líneas (por defecto 10, personalizables con -n) y tail para las últimas, muy útil cuando estás vigilando un log.
Cuando te toca filtrar por patrones, entra en acción grep. Escribes algo como grep "error" /var/log/syslog para ver solo las líneas que contengan “error”, o grep -c "linux" long.txt para contar cuántas veces aparece una palabra en un archivo. Soporta expresiones regulares, colores y mil opciones más.
Para contar líneas, palabras y bytes tienes wc. Por ejemplo, wc long.txt te devuelve algo del estilo “37 207 1000 long.txt”, donde 37 son líneas, 207 palabras y 1000 bytes. Si solo quieres el número de palabras, basta con wc -w archivo.
Si ya quieres rizar el rizo, puedes procesar datos con awk y sed. awk permite leer archivos de texto estructurados por columnas y aplicar expresiones, hacer sumas, medias, filtros condicionales… Por ejemplo, podrías cargar un archivo con nombres y notas, calcular una media y listar solo los alumnos por encima de esa nota. Con sed puedes buscar, sustituir o eliminar patrones sin abrir un editor; el típico sed 's/rojo/azul/g' archivo.txt cambia todas las apariciones de “rojo” por “azul”.
Para mejorar la legibilidad de algunos comandos, column es un truco muy agradecido. Si ejecutas mount verás una salida un poco caótica; si haces mount | column -t, la ordena en columnas alineadas por espacios, de forma mucho más fácil de leer. Puedes cambiar el delimitador con -s si lo necesitas.
Gestionar permisos, usuarios y seguridad
Linux se toma muy en serio quién puede hacer qué en el sistema, así que saber manejar permisos, propietarios y privilegios de root es clave para no meterte en líos ni quedarte bloqueado con errores de “Permission denied”.
El comando estrella aquí es chmod, que sirve para cambiar los permisos de lectura (r), escritura (w) y ejecución (x) de archivos y directorios. Puedes usar la notación de letras (chmod +x script para hacerlo ejecutable) o numérica (chmod 755 carpeta), donde cada dígito representa permisos para propietario, grupo y otros.
Para cambiar el propietario de un fichero o carpeta usas chown. Por ejemplo, chown usuario2 archivo.txt hace que usuario2 pase a ser el dueño de ese archivo. También puedes cambiar el grupo con chown usuario:grupo archivo.
Muchos comandos administrativos necesitan privilegios de superusuario, y aquí entra sudo. Anteponiendo sudo a una orden, esta se ejecuta con permisos de root, tras pedirte tu contraseña. Por ejemplo sudo apt-get update o sudo useradd nombre. Como truco muy útil, si has ejecutado un comando que te ha fallado por falta de permisos, puedes escribir sudo !! para repetir exactamente la última orden pero con sudo delante.
Otro comando relevante a nivel de usuarios es passwd, que permite cambiar la contraseña de la cuenta actual (o de otra, si tienes permisos). Te pedirá la clave antigua, la nueva y su confirmación.
Si alguna vez quieres borrar un archivo de forma que resulte extremadamente difícil recuperarlo, puedes recurrir a shred. Con shred archivo.txt sobrescribes su contenido varias veces, y con shred -u archivo.txt además de triturarlo lo borras del sistema de archivos.
Monitorizar el sistema, procesos y recursos
Uno de los puntos fuertes de Linux es que te deja ver con bastante detalle qué está pasando en la máquina: qué procesos hay, cuánta memoria se usa, cómo van los discos, etc. Conocer los comandos correctos te evita tener que instalar siempre herramientas gráficas.
Para listar procesos rápidamente, ps es la opción más directa. Solo con ps ves los procesos en la sesión actual, pero con ps -A obtienes todos los que están corriendo en el sistema. Puedes filtrar por usuario con ps -u nombre o ver solo los de tu terminal con ps -T.
Cuando quieras algo interactivo, con refresco en tiempo real, lo suyo es usar top o su versión vitaminada htop. Ambas muestran procesos, uso de CPU, memoria, carga del sistema…; en htop además puedes moverte con el ratón, matar procesos directamente y ver gráficos de recursos, suelen ser más amigables para el día a día.
Para terminar procesos atascados existe kill. Primero localizas el PID (identificador de proceso) con ps o top, y luego haces algo como kill 533494. Por defecto usa la señal SIGTERM, que intenta cerrar el programa de forma ordenada. Si no responde, puedes usar opciones como kill -9 PID (SIGKILL), que lo fulmina sin darle opción a guardar.
Si necesitas saber cómo van los discos, df y du son tus amigos. df -h te muestra sistemas de ficheros montados y el espacio disponible en MB/GB, mientras que du -sh /ruta te dice cuánto ocupa exactamente una carpeta concreta, con -s de resumen y -h de formato legible.
Para ver información básica del sistema operativo y el kernel, tienes uname. Su versión más completa es uname -a, que te saca nombre del kernel, versión, arquitectura de CPU, etc. Y si quieres algo más vistoso, neofetch imprime un resumen del sistema junto al logo ASCII de tu distribución.
Red, conectividad y utilidades para la terminal
Además de los comandos puramente de sistema, hay un grupo de utilidades muy prácticas para comprobar la red y automatizar tareas sin salir de la terminal. Aquí entran ping, curl, wget, watch y algunos más generales como echo, history o which.
Para saber si tienes conectividad hacia un host o IP, usas ping. Por ejemplo, ping google.com o ping 8.8.8.8 envían paquetes ICMP y te indican tiempo de ida y vuelta y porcentaje de pérdida. Es una herramienta básica para diagnosticar problemas de red.
El comando watch te permite ejecutar de forma repetida otra orden y ver su salida refrescada cada cierto intervalo. Funciona así: watch -n 2 comando ejecuta esa orden cada 2 segundos; puedes añadir -d para resaltar las diferencias entre ejecuciones. Es muy práctico para monitorizar cambios sin tener que reescribir el comando una y otra vez.
Para mostrar texto por pantalla o el valor de variables de entorno está echo. Con algo tan sencillo como echo "Hola $USER" ves tu nombre de usuario en el mensaje. Además, echo se usa mucho dentro de scripts o en combinación con redirecciones para generar archivos rápidos.
Si pierdes de vista un comando que ejecutaste hace un rato, history lista todas las órdenes recientes con un número de índice. Luego puedes repetir cualquiera escribiendo, por ejemplo, !255 para reejecutar la orden que ocupa esa posición. Con opciones como history -c puedes vaciar el historial, y con el cursor arriba/abajo (↑, ↓) vas navegando por las últimas líneas sin escribirlas de nuevo.
La utilidad which indica la ruta completa del binario que se ejecutará cuando llamas a un comando. Si haces which python o which brave verás en qué directorio está el ejecutable, algo muy útil cuando tienes varias versiones instaladas.
Alias, atajos de teclado y productividad en la terminal
Además de los comandos en sí, hay muchos trucos para escribir menos, cometer menos errores y trabajar a toda velocidad. Aquí entran alias, autocompletado con TAB, reutilización del historial y atajos de teclado típicos de los emuladores de terminal.
Con alias puedes definir atajos para comandos largos. Por ejemplo, alias ls="ls --color=auto" hace que cada vez que escribas ls se ejecute con colores. Con alias a secas ves todos los que tienes definidos en la sesión, y con unalias ls puedes eliminar uno en concreto.
El autocompletado con la tecla TAB es otro truco imprescindible. Escribes el inicio de un comando o ruta, pulsas TAB y la terminal intenta completar lo que falta. Si solo hay una coincidencia, la rellena entera; si hay varias, al pulsar TAB dos veces verás un listado de opciones posibles. Esto reduce muchísimo errores al escribir rutas largas como /home/joan/Documentos y acelera cualquier tarea.
Para repetir comandos sin tener que teclearlos de nuevo puedes tirar de historial y expansiones. La más famosa es !!, que ejecuta el último comando otra vez. Es muy útil cuando te olvidas de sudo: ejecutas algo, te suelta un “Permission denied”, y a continuación escribes sudo !! para reintentarlo como administrador. También puedes usar !-2, !-3, etc., para repetir el penúltimo, antepenúltimo… o escribir !526 para ejecutar la entrada 526 del history.
Hay más trucos curiosos, como ^viejo^nuevo, que repite el último comando sustituyendo un texto por otro. Si has corrido sudo apt update y quieres cambiar solo la palabra update por dist-upgrade, escribes ^update^dist-upgrade y la terminal construye y ejecuta sudo apt dist-upgrade por ti.
Los atajos de teclado en la terminal también dan mucho juego: Ctrl + L limpia la pantalla (similar a clear), Ctrl + A te lleva al inicio de la línea, Ctrl + E al final, Ctrl + U borra desde el cursor hacia el inicio y Ctrl + K desde el cursor hasta el final. Con Ctrl + R puedes buscar en el historial escribiendo parte de un comando, y con Ctrl + S y Ctrl + Q puedes bloquear y desbloquear la salida de la terminal.
Trucos extra: pestañas, limpieza de pantalla y multitarea en la shell
Los emuladores de terminal modernos permiten trabajar con varias pestañas y ajustar la vista para que todo sea más cómodo, especialmente si pasas muchas horas dentro de la shell.
Para abrir una nueva pestaña suele funcionar Ctrl + Shift + T, y para cerrarla, atajos como Ctrl + Shift + W o simplemente escribir exit. Para moverte entre pestañas a menudo se usan combinaciones con Ctrl + PgUp/PgDn o variantes con Shift, aunque esto puede cambiar según el emulador que uses.
Si quieres limpiar la pantalla sin perder el historial, ejecutas clear o pulsas Ctrl + L. Si lo que quieres es resetearla por completo, como si cerraras y volvieras a abrir la terminal, puedes usar reset, que borra el scrollback y reestablece el estado.
En cuanto a accesibilidad, muchos terminales permiten cambiar el tamaño de la fuente al vuelo con atajos como Ctrl + Shift + + para aumentar y Ctrl + Shift + – para reducir. Y para trabajar a pantalla completa, casi siempre sirve F11, lo que ayuda si estás leyendo logs largos o tienes varios paneles divididos.
Por último, recuerda que la shell de Linux tiene soporte para trabajos en segundo plano. Puedes lanzar un comando añadiendo & al final, gestionar los jobs con el comando jobs y traerlos de vuelta al primer plano con fg o enviarlos de nuevo al fondo con bg. Combinando esto con pestañas y buen uso del historial tendrás un entorno de trabajo muy potente sin salir de la terminal.
Al final, todos estos trucos de Linux —desde los comandos básicos y la gestión de permisos hasta el uso del historial, alias, atajos de teclado y herramientas como rsync, grep o htop— te permiten pasar de “ir tirando” en la terminal a sentirte realmente cómodo y eficiente, tanto si gestionas un servidor en producción como si simplemente quieres controlar mejor tu propio ordenador.