Mucha gente usa los términos "terminal", "línea de comandos" y "shell" como si fueran lo mismo, pero no lo son. Entender la diferencia es clave para saber qué estás haciendo realmente.
Vamos a aclararlo con una analogía simple:
- La Terminal es la aplicación que abres. Es la "ventana" (como el Terminal de Windows, iTerm2 en Mac, o GNOME Terminal en Linux).
-
El Shell es el programa que corre dentro de la terminal. Es el "cerebro" que interpreta tus comandos (ej:
bash,zsh,fish). - La Línea de Comandos (CLI) es el método de interactuar. Es la interfaz (la pantalla negra con un cursor) donde escribes texto. Es lo opuesto a una GUI (Interfaz Gráfica de Usuario) donde usas un mouse.
En resumen: Abres la Terminal para usar un Shell a través de su Línea de Comandos.
El Shell: El Intérprete de Comandos
Cuando escribes un comando, la terminal no lo entiende. Simplemente pasa ese texto al Shell. El Shell es el programa que lee el comando, lo interpreta y le dice al sistema operativo (Linux, macOS, etc.) qué hacer.
Bash (Bourne Again SHell)
La terminal que venia por defecto en la mayoría de sistemas Linux y macOS durante décadas. Es el estándar de la industria.
Comandos Básicos de Bash
Aquí tienes los comandos esenciales para moverte.
-
pwd(Print Working Directory): Imprime el directorio (carpeta) actual donde estás trabajando. -
cd(Change Directory): Te permite cambiar de directorio.-
cd nombre_carpeta(Entra a una carpeta) -
cd ..(Sube un nivel, al directorio padre) -
cd ~o solocd(Te lleva a tu directorio "Home" o principal)
-
-
ls(List): Lista el contenido de la carpeta de trabajo actual.-
ls -a(Muestra todos los archivos, incluyendo los ocultos como.env). -
ls -l(Muestra la "lista larga", con permisos, dueño, tamaño y fecha).
-
-
catvsless: Para ver el contenido de un archivo.-
cat archivo.txt: Imprime todo el contenido del archivo en la terminal. Es rápido, pero inútil si el archivo es muy largo. -
less archivo.txt: Es un "paginador". Te permite ver el contenido de archivos grandes de forma interactiva (puedes subir, bajar y buscar). Es mucho más útil.
-
-
mkdir(Make Directory): Permite crear carpetas (ej:mkdir nuevaCarpeta). -
touch: Crea un archivo nuevo y vacío (ej:touch readme.md). -
mv(Move): Te permite mover un archivo O renombrarlo.-
mv archivo.txt /otra/carpeta/(Mover) -
mv archivo_viejo.txt archivo_nuevo.txt(Renombrar)
-
-
cp(Copy): Copia un archivo o directorio. A diferencia demv, no elimina el original.cp archivo.txt /otra/carpeta/-
cp -r mi_directorio /otra/carpeta/(Para copiar un directorio, necesitas el argumento-rde "recursivo").
-
rm(Remove): Elimina un archivo.-
rm -r mi_directorio/(Elimina una carpeta y todo lo que tiene dentro). -
¡ADVERTENCIA!
rmno tiene "papelera de reciclaje". Una vez que lo usas, la información se pierde. Ten mucho cuidado, especialmente conrm -rf(-ffuerza la eliminación sin preguntar), ya que es un comando muy destructivo.
-
-
echo: Toma un argumento de texto (string) y lo imprime en la terminal. Es muy útil para crear o añadir texto a archivos.-
echo "Hola" > readme.md(Crea o sobrescribe el archivo). -
echo "Adios" >> readme.md(Usa>>para agregar al final del archivo).
-
-
man(Manual): Muestra el manual de cualquier comando.-
man ls(Te mostrará todas las opciones posibles parals).
-
¿Qué son las Opciones y Argumentos?
Puedes pasarle argumentos (parámetros) u opciones (flags) a un comando para afectar la manera en la que actúa.
2 Guiones (Forma Larga o "Human-Readable")
Son fáciles de entender. Por ejemplo, ls --all es lo mismo que ls -a.
1 Guion (Forma Corta o "POSIX")
Usan una sola letra. La gran ventaja es que permite "encadenar" múltiples argumentos.
En lugar de escribir:
ls --all --human-readable --size
Puedes agruparlos de la siguiente manera:
ls -ahs
Control de Procesos
-
Ctrl+C(Interrumpir): "Mata" o detiene el proceso que se está ejecutando en primer plano (ej: un script). -
Ctrl+Z(Suspender): "congela" el proceso actual y lo envía al background (segundo plano). Puedes ver los procesos suspendidos conjobsy traerlos de vuelta confg(foreground).
Top comments (0)