Fundamentos de la línea de comandos
Teoría: Línea de comandos
Si alguna vez has visto a alguien usando una pantalla negra con texto blanco, escribiendo comandos misteriosos, probablemente estabas viendo una terminal. Aunque luce intimidante, en realidad es una herramienta poderosa y muy común en el mundo de la computación.
En esta lección, vamos a entender qué es una terminal, qué es el shell, en qué se diferencian y cómo trabajarlos.
¿Qué es la terminal?
Podemos imaginarlo como una especie de ventana en la que tenemos acceso directo al sistema.
Muchas terminales permiten:
-
Pestañas múltiples: como cuando navegamos en Internet, pero en la línea de comandos.
-
División de pantalla: tener varias secciones activas dentro de la misma ventana (por ejemplo, con iTerm2):
-
Recuperar sesiones cerradas.
-
Personalizar perfiles con colores, fuentes o configuraciones especiales.
En resumen: la terminal es el entorno visual que usamos para interactuar con el sistema usando solo texto. Sin embargo, la terminal por sí solo no entiende los comandos que escribimos. Aquí es donde entra el shell.
¿Qué es el Shell?
También puede llamarse intérprete de comandos o procesador de comandos. Aunque tenga varios nombres, todos se refieren a lo mismo: el programa que interpreta nuestras órdenes en la línea de comandos.
Cómo funciona
Cuando abrimos una terminal, automáticamente se abre un shell dentro. Este muestra algo como:
Analicemos lo que vemos:
Por ejemplo, si escribimos el siguiente comando y damos Enter:
Esto nos mostrará la fecha y hora actual:
Una vez presionamos Enter, el comando ya no se puede editar. Lo que sigue es interpretar la respuesta y posiblemente escribir otro comando.
Comentarios en el shell
Al igual que en lenguajes de programación, podemos escribir comentarios, es decir, líneas que no se ejecutan. Son útiles para dejar notas explicativas.
El símbolo # al principio de una línea indica que todo lo que sigue no será ejecutado.
Acceso a programas desde el Shell
Desde aquí se pueden ejecutar programas del sistema. Y no solo eso: el shell también ofrece muchas cosas que nos hacen la vida más fácil, como:
- Autocompletado de comandos y rutas con la tecla Tab.
- Historial de comandos (con las flechas ↑ y ↓).
- Navegación por carpetas (por ejemplo, con
cd). - Creación de scripts para automatizar tareas repetitivas.
- Atajos de teclado para editar comandos rápidamente.
En próximas lecciones, vamos a explorar muchos de estos elementos en acción.
Shell vs Terminal: ¿son lo mismo?
- La terminal es la aplicación que abre una ventana para que podamos interactuar en modo texto.
- El shell es el programa que recibe los comandos escritos en esa ventana y los ejecuta.
Míralo como si la terminal fuera el televisor y el shell fuera el canal de televisión que estás viendo.
¿Qué es un REPL?
Muchos shells, incluyendo Bash, son conocidos como REPLs, que significa:
- 📝 Read – el shell espera la entrada de un comando por parte del usuario.
- ⚙️ Eval – ejecuta el comando ingresado.
- 📑 Print – muestra el resultado.
- 🔄 Loop – vuelve al primer paso.
Este ciclo se repite una y otra vez hasta que cerremos la terminal o apaguemos el computador. Es lo que llamamos una sesión interactiva.
Este mismo estilo de trabajo lo veremos más adelante con bases de datos y lenguajes de programación.
Práctica en Códica
En la plataforma Códica tenemos dos terminales que se abren automáticamente para que practiquemos. Se encuentran en las pestañas inferiores, llamadas Terminal 1 y Terminal 2.
Si en algún momento te confundes o algo no funciona, no pasa nada: es normal equivocarse. Solo revisa bien el mensaje que aparece. Y si quieres empezar de nuevo, puedes reiniciar la terminal.
Resumen
- La terminal es una ventana desde la cual escribimos comandos al sistema.
- El shell es el programa que interpreta y ejecuta esos comandos.
- El símbolo
$indica que el shell está esperando que escribamos una orden. - Los comentarios se escriben con
#y no se ejecutan. - Shell y terminal no son lo mismo, aunque siempre trabajan juntos.
- El shell funciona como un REPL: lee, ejecuta, muestra el resultado y repite.