Fundamentos de la línea de comandos

Teoría: Variables de entorno

Imaginemos que estamos usando el terminal escribimos el siguiente comando:

cd

Y ¡listo! nos lleva directo a nuestra carpeta personal. Pero surge la pregunta: ¿cómo sabe el terminal cuál es nuestra carpeta personal?

🔮 Podríamos pensar que es magia, o que consulta el sistema operativo. Pero en realidad, el secreto está en algo llamado variable de entorno.

¿Qué son las variables de entorno?

Podemos pensar en una variable de entorno como una especie de "papelito" que le deja el sistema operativo a los programas para que sepan cómo comportarse.

Estas variables son:

  • Configuraciones del sistema o del usuario.
  • Solo existen mientras la terminal está abierta (al cerrar, desaparecen).
  • Muy utilizadas por comandos, programas y scripts para saber cosas como el nombre del usuario, el idioma, o dónde encontrar ciertos archivos.

¿Cómo se ven?

Podemos ver todas las variables que están activas usando este comando:

env

Este comando mostrará algo como esto (en tu caso algunos valores pueden variar):

USER=carolina HOME=/home/carolina LANG=en_US.UTF-8 SHELL=/bin/bash PATH=/usr/local/bin:/usr/bin:/bin

Cada línea tiene la forma: → NOMBRE_VARIABLE=valor

VariableDescripción
HOMELa carpeta personal del usuario
USEREl nombre del usuario
PATHUna lista de carpetas donde buscar programas
LANGEl idioma usado por el sistema
SHELLEl tipo de consola que estás usando

¿Para qué sirven?

Estas variables nos permiten usar el sistema sin tener que escribir los detalles cada vez. Por ejemplo, en lugar de decirle al comando cd exactamente cuál es nuestra carpeta, él ya sabe que debe ir al directorio que está guardado en la variable HOME.

Sin estas variables tendríamos que hacer algo como esto todo el tiempo sería agotador...

cd --home-dir /home/carolina

Ver una variable

Para ver el contenido de una variable, usamos echo y anteponemos el símbolo $ al nombre de la variable. Por ejemplo:

echo $HOME

Este comando mostrará algo como:

/home/carolina

Modificar una variable temporalmente

Vamos a cambiar el valor de HOME temporalmente.

HOME=/tmp
echo $HOME

Esto muestra:

/tmp

Y si queremos volver al valor anterior, simplemente lo asignamos otra vez:

HOME=/home/carolina
⚠️ Recuerda: este cambio solo dura mientras la terminal esté abierta o hasta que cierres sesión.

Prueba real con cd

Ahora hagamos una pequeña prueba para ver cómo cd usa la variable HOME:

Caso 1: cambiar HOME solo para ese comando

HOME=/tmp cd
pwd

Esto muestra:

/tmp

En este caso, el cambio solo se aplicó en ese momento. La variable HOME global no fue modificada.

Caso 2: cambiar HOME para toda la sesión

export HOME=/tmp
cd
pwd

Este comando también nos lleva a /tmp, pero ahora si ejecutamos echo $HOME veremos que se ha cambiado de verdad para toda la sesión:

echo $HOME

/tmp

Recuerda, estos cambios son válidos solo en esta terminal. Si abres otra ventana, va a seguir usando el valor anterior de HOME.

La variable PATH

Hay otra variable súper importante: PATH. Esta le dice al sistema en qué carpetas buscar los comandos que escribimos.

Por ejemplo, cuando escribimos:

ls

El sistema busca el programa llamado ls en cada una de las carpetas que están listadas en PATH, en el orden que aparecen.

echo $PATH

Este comando devuelve algo como:

/usr/local/bin:/usr/bin:/bin

Cada carpeta está separada por dos puntos :. Si el programa no está en ninguna de esas, aparecerá un error como "comando no encontrado".

No te preocupes si esto suena complicado. Vamos a profundizar en PATH en una lección aparte.


Resumen

  • Las variables de entorno son datos que el sistema y los programas usan para configurarse.
  • Existen solo en la sesión actual del terminal.
  • cd usa la variable HOME para llevarte a tu carpeta personal.
  • Podemos verlas con el comando env.
  • Puedes imprimir una variable con echo $NOMBRE.
  • Para cambiar una variable por un momento, se asigna antes del comando: VAR=valor comando.
  • Si la quieres cambiar para toda la sesión se usa export: export VAR=valor.
  • La variable PATH le indica al sistema dónde buscar los comandos.

Esta base te será útil no solo para comprender cómo funciona tu terminal, sino para cuando empieces a escribir tus propios scripts o aplicaciones. ¡Vamos bien!