Linux desde la terminal: primeros comandos para sentirse en casa
La terminal de Linux asusta al principio porque parece hostil: un cursor parpadeando en una ventana negra, sin botones, sin iconos, sin pistas. Pero esa misma austeridad es su virtud. No hay capas visuales que ocultan lo que está pasando: cada comando que escribes es una instrucción exacta, reproducible, y que puedes guardar en un archivo para volver a correrla mañana sin tocar un mouse.
Este artículo es un recorrido lineal por lo esencial. Al terminarlo vas a poder abrir una terminal en cualquier distribución Linux y: saber quién eres, dónde estás, moverte por el sistema de archivos, crear y eliminar cosas sin miedo, entender qué significa que un archivo tenga permisos rwxr-xr-x, y ver qué está haciendo el sistema por dentro.
No es un manual exhaustivo — para eso está The Linux Command Line de William Shotts, gratis y completo. Este artículo es el mapa que te enseña a leer el manual.
Si es la primera vez que abres una terminal, te recomiendo leer primero Linux: tu primer contacto con la terminal. Allí están los mismos comandos pero con diagramas del sistema de archivos, anatomía del prompt y más explicación paso a paso. Este artículo asume que ya sabes abrir una terminal y leer su prompt.
Este artículo aplica a cualquier distribución Linux moderna: Ubuntu, Debian, Fedora, Rocky, RHEL, openSUSE, Arch, Mint, Manjaro, Alma, etc. El 95% de los comandos son idénticos. Cuando algo cambia entre familias (Debian/Ubuntu vs Red Hat/Rocky/Fedora), se indica con una caja como esta.
0. Antes de empezar: cómo tener una terminal a mano
Si no tienes Linux instalado, no es bloqueante. Puedes seguir todos los ejemplos de este artículo con cualquiera de estas opciones, de la más fácil a la más completa:
Killercoda Ubuntu playgroundSin registro, sin instalación. Máquina Ubuntu en tu navegador durante 1 hora. Perfecto para leer este artículo. WebminalServidor Linux compartido con tutoriales integrados. Requiere registro gratuito. WSL (Windows Subsystem for Linux)Si usas Windows 10/11: un comando y tienes Ubuntu dentro de tu Windows, con acceso a tus archivos. Es la forma más cómoda si trabajas en Windows a diario. VirtualBox + ISO oficialLa forma clásica: una máquina virtual completa. Más pesada pero totalmente aislada.En macOS ya tienes una terminal Unix muy parecida a Linux (Terminal.app o iTerm2). La mayoría de lo que veremos funciona igual; cuando no, se menciona.
Cómo leer las simulaciones de este artículo
En cada sección vas a ver un bloque negro estilo terminal que se escribe solo. La línea en verde es el prompt (lo que el sistema muestra para indicar que está esperando una orden tuya): tiene la forma usuario@maquina:ruta$. Lo que viene en blanco es lo que tú escribes. Lo que aparece debajo en gris claro es la salida del comando.
1. Orientarse: quién eres y dónde estás
El primer bloque de comandos sirve para responder tres preguntas que una interfaz gráfica te contestaría con un logo en la esquina: ¿quién soy yo?, ¿dónde estoy?, ¿qué hay aquí?
Quién eres
whoami— imprime el nombre del usuario con el que entraste a la sesión.id— muestra tu ID numérico de usuario (UID), el ID de tu grupo principal (GID) y todos los grupos a los que perteneces. Importante cuando lidiemos con permisos.hostname— el nombre de la máquina en la que estás. Útil cuando te conectas por SSH a varios servidores y pierdes la cuenta.
Dónde estás y qué hay aquí
pwd— print working directory. La ruta absoluta del directorio en el que te encuentras.ls— lista el contenido del directorio actual.ls -l— versión larga: permisos, propietario, tamaño, fecha.ls -la— también muestra los archivos ocultos (los que empiezan con punto, como.bashrc).ls -lh— como-lpero con tamaños legibles (KB, MB, GB).clear— limpia la pantalla. Atajo equivalente: Ctrl + L.
Fragmento animado. En una terminal real las respuestas son instantáneas.
Las flechas ↑ y ↓ navegan por comandos anteriores. Ctrl + R inicia una búsqueda inversa en el historial: escribes parte del comando y aparece el más reciente que lo contiene. Al fin del día vas a usarlo más que cualquier otro atajo.
2. Moverse: rutas y navegación
En Linux (y en Unix en general), todo es un archivo o se comporta como uno, y todos los archivos cuelgan de un único árbol cuya raíz se llama /. No hay "unidades C:" o "D:" como en Windows; hay un solo árbol.
El mapa mínimo del sistema de archivos
/— la raíz. Desde aquí cuelga todo./home— las carpetas personales de los usuarios. La tuya será/home/tu-usuario.~— atajo para tu carpeta personal. En tu caso,~se expande a/home/tu-usuario./etc— archivos de configuración del sistema (texto plano, editables)./var— datos variables: logs, colas de correo, bases de datos./usr— programas y librerías instalados para todos los usuarios./bin,/sbin— binarios esenciales del sistema./tmp— espacio temporal. Lo que pongas aquí puede borrarse al reiniciar.
Si quieres el mapa oficial y completo, lo documenta el Filesystem Hierarchy Standard.
Rutas absolutas vs relativas
Una ruta absoluta empieza con / y describe la ubicación sin ambigüedad: /home/cesar/Documentos/notas.txt. Una ruta relativa no empieza con / y se interpreta desde el directorio en el que estás ahora: si estás en /home/cesar, entonces Documentos/notas.txt apunta al mismo archivo.
Comandos para moverse
cd ruta— cambia al directorio indicado (absoluta o relativa).cd ..— sube un nivel (al directorio padre).cd ~ocda secas — te lleva a tu carpeta personal.cd -— vuelve al directorio donde estabas antes del últimocd. Joyita subestimada.pwd— para confirmar dónde estás.
La tecla Tab autocompleta rutas, nombres de archivos y comandos. Empieza a teclear cd /ho y presiona Tab: te completa a cd /home/. Si hay varias opciones, dos Tabs te las lista. Es el atajo que separa al que sufre en la terminal del que fluye.
3. Crear, copiar, mover y borrar
Tu vida en la terminal va a girar alrededor de cinco verbos: crear, listar, copiar, mover, eliminar. Ya viste ls. Aquí están los otros cuatro.
Crear
touch archivo.txt— crea un archivo vacío. Si ya existe, actualiza su fecha de modificación.mkdir carpeta— crea un directorio.mkdir -p a/b/c— crea la cadena completaa,a/b,a/b/caunque no existan. El flag-p(de "parents") te evita errores.
Copiar, mover, renombrar
cp origen destino— copia un archivo.cp -r carpeta1 carpeta2— copia recursivamente un directorio y todo lo que contiene.mv origen destino— mueve o renombra. Sí, en Linux no hay comando "rename"; mover un archivo a un nombre distinto en el mismo directorio es renombrarlo.
Borrar
rm archivo.txt— elimina un archivo.rm -r carpeta— elimina una carpeta y todo su contenido.rm -i archivo.txt— pide confirmación antes de borrar. Buena costumbre cuando empiezas.
En Linux no existe papelera de reciclaje en la terminal. Lo que borras con rm desaparece en el acto. No hay Ctrl+Z. El combo rm -rf / intentará eliminar el sistema entero. Nunca, jamás, lo escribas "para ver qué pasa".
Regla simple: antes de darle Enter a un rm, léelo dos veces.
4. Leer y editar archivos
Para trabajar con texto hay dos tipos de herramientas: las que muestran contenido sin modificarlo (ver), y las que te dejan editarlo.
Ver contenido
cat archivo.txt— vuelca el archivo completo en la terminal. Ideal para archivos cortos.less archivo.txt— lo abre paginado: te mueves con flechas, /texto busca, q sale.head archivo.txt— primeras 10 líneas.head -n 5para las primeras 5.tail archivo.txt— últimas 10 líneas.tail -f log.txt— se queda "escuchando" el archivo y muestra las líneas nuevas apenas llegan. Esencial para logs en vivo.
Editar
nano archivo.txt— editor amigable. Los atajos salen abajo: Ctrl + O guarda, Ctrl + X sale.vim archivo.txt/vi archivo.txt— potentísimo pero tiene curva. Para salir sin aprender nada: presiona Esc, escribe:q!y Enter.
Redirigir salida a un archivo
Esto es magia. Cualquier comando que imprima algo en la terminal puede redirigirse a un archivo con > o >>:
echo "hola" > saludo.txt— creasaludo.txtcon el texto "hola". Si ya existía, lo sobrescribe.echo "otra línea" >> saludo.txt— agrega una línea al final (no sobrescribe).ls -l > listado.txt— guarda el listado del directorio en un archivo.
5. Usuarios y permisos
Linux es multi-usuario por diseño. Esto no es un detalle histórico: cada archivo tiene un dueño, un grupo, y una regla de qué puede hacer cada quien con él. Entender esto es la diferencia entre usar Linux y entender Linux.
Comandos de usuarios
whoami— ya lo vimos: tu usuario.id— tu UID, tu GID, tus grupos.groups— solo los grupos.sudo comando— ejecuta un comando con privilegios de administrador (root). Te pedirá tu contraseña.
Crear usuarios
Crear un usuario requiere privilegios de root. La forma estándar y universal es:
sudo useradd -m nombre— crea el usuario y su/home/nombre.sudo passwd nombre— establece su contraseña.
En Debian/Ubuntu existe además adduser (con dos "d"), que es un script interactivo más amigable: te va preguntando nombre completo, teléfono, etc. En Red Hat/Rocky/Fedora, adduser es simplemente un alias de useradd (sin preguntas).
Si quieres un comando que funcione igual en cualquier familia, usa useradd -m.
Permisos: cómo leerlos
Cuando haces ls -l, la primera columna se ve así: -rwxr-xr--. Parece un jeroglífico, pero es súper regular:
| Posición | Qué representa |
|---|---|
| 1 carácter | Tipo: - archivo, d directorio, l enlace simbólico. |
| 2 a 4 | Permisos del dueño (user): leer, escribir, ejecutar. |
| 5 a 7 | Permisos del grupo. |
| 8 a 10 | Permisos de los otros (resto del mundo). |
Cada grupo de tres es siempre rwx en ese orden, donde r = lectura, w = escritura, x = ejecución. Un guión significa "no tiene ese permiso".
Permisos en números (la forma que todos usan)
Cada permiso tiene un valor numérico: r=4, w=2, x=1. Sumas los que quieres otorgar y repites para user, group, others.
| Código | Significa | Cuándo se usa |
|---|---|---|
| 755 | rwxr-xr-x | Scripts y carpetas: el dueño puede todo; el resto lee y ejecuta. |
| 644 | rw-r--r-- | Archivos de texto estándar: dueño escribe, resto solo lee. |
| 700 | rwx------ | Carpetas privadas. Solo el dueño entra. |
| 600 | rw------- | Claves SSH, archivos sensibles. |
| 777 | rwxrwxrwx | Todos pueden todo. Evita esto salvo que sepas exactamente por qué. |
Cambiar permisos y propietario
chmod 755 script.sh— aplica el código numérico.chmod u+x script.sh— agrega permiso de ejecución solo al dueño (modo simbólico: user, group, other, all; operadores+,-,=).chmod -R 755 carpeta— recursivo: aplica el cambio a todo lo que hay dentro.chown usuario:grupo archivo— cambia dueño y grupo. Requiere sudo.
En Linux, para ejecutar un script que está en tu directorio actual tienes que escribir ./script.sh, no solo script.sh. El ./ le dice a la shell "el que está aquí mismo". Esto es intencional: evita que un atacante coloque un ejecutable malicioso llamado, por ejemplo, ls en tu carpeta y que lo corras sin darte cuenta.
6. Procesos y sistema
Todo programa que corre en Linux es un proceso, y cada proceso tiene un PID (process ID) único. Entender qué está corriendo, quién lo lanzó y cuántos recursos consume es parte del oficio.
Ver procesos
ps— tus procesos en la shell actual. Útil pero limitado.ps aux— todos los procesos del sistema con detalle (usuario, CPU, memoria, comando).top— monitor en tiempo real, ordenado por uso de CPU. Sales con q.htop— versión más amigable, con colores. No viene por defecto, se instala (sudo apt install htoposudo dnf install htop).
Matar procesos
kill 1234— envía la señal TERM al proceso con PID 1234: "termina ordenadamente".kill -9 1234— envía la señal KILL: "termina ya, sin preguntar". Úsalo solo cuandokillnormal no responde.pkill firefox— mata por nombre en vez de PID.
Ver recursos del sistema
df -h— espacio en disco por partición, en formato legible.du -sh carpeta— cuánto pesa una carpeta y su contenido.free -h— memoria RAM libre y usada.uptime— tiempo que lleva encendida la máquina y la carga promedio.
Información del sistema
uname -a— kernel, versión, arquitectura. Todo en una línea.cat /etc/os-release— distribución exacta que estás corriendo.lscpu,lsblk,lsusb,lspci— familia de "ls sobre hardware".
"Mi máquina va lenta" se investiga así, en este orden: top (¿qué está usando CPU?), free -h (¿me quedé sin RAM?), df -h (¿se llenó el disco?), dmesg | tail (¿hay errores recientes del kernel?). Con eso diagnosticas el 80% de los problemas.
7. Qué viene después
Lo que cubrimos aquí es el kit de supervivencia. Con estos comandos puedes moverte por cualquier servidor Linux, diagnosticar problemas básicos y administrar archivos sin abrir un solo menú. Pero todavía no has tocado lo más potente.
Los siguientes pasos naturales:
- Tuberías (pipes) — conectar la salida de un comando con la entrada de otro:
ps aux | grep python. Una sola línea que en Windows requeriría varios clics. - Buscar dentro de archivos —
grep,find,awk,sed. La santa trinidad del procesamiento de texto. - Scripting en bash — guardar una secuencia de comandos en un archivo y correrla cuando quieras. Es cómo empieza la automatización.
- Gestor de paquetes —
apten Debian/Ubuntu,dnfen Rocky/Fedora,pacmanen Arch. Instalar software sin bajar ningún instalador. - SSH — entrar a una máquina remota como si estuvieras sentado frente a ella.
Lecturas recomendadas
The Linux Command Line · William ShottsGratuito en PDF. 540 páginas. Si te leyeras uno solo, sería este. Arch Linux WikiAunque no uses Arch, es la documentación técnica más precisa de Linux que existe. explainshell.comPara cuando heredas un script y no entiendes un comando: pégalo y te lo descompone. tldr pagesComo `man`, pero con ejemplos. Instalándolo como comando vas a usarlo a diario.La terminal de Linux es, probablemente, la interfaz de computadora con más poder que existe y, al mismo tiempo, la más estable en el tiempo: los comandos que aprendiste hoy funcionan casi idénticos a los que funcionaban en un servidor Unix de 1985.
¿Qué otra herramienta conoces que siga intacta 40 años después, sin "nuevas versiones" que te obliguen a reaprender? Y — más importante — ¿qué dice eso sobre en qué vale la pena invertir tu tiempo de aprendizaje?
Sigue el proyecto MathPlay
De la idea a la máquina que funciona: aprender a diseñar, prototipar, programar y dar inteligencia a máquinas que resuelven problemas reales de industria y minería. Te escribo cuando hay algo nuevo que vale la pena compartir.
Sin calendario fijo. Sin spam.
¡Listo! Te escribo cuando haya algo nuevo del proyecto.