Apuntes bash

No es un bug, es una característica del shell.

Variables de Entorno en Bash

¿Qué son las variables de entorno y por qué son útiles?

Las variables de entorno son variables especiales que almacenan información sobre el entorno de trabajo del sistema operativo, como rutas, configuraciones de usuario o preferencias del sistema. Son accesibles por los procesos y comandos ejecutados en la terminal, permitiendo personalizar el comportamiento de programas y scripts. Son útiles porque:

  • Facilitan la configuración de herramientas y aplicaciones sin modificar su código.
  • Permiten a los scripts adaptarse al entorno del usuario (por ejemplo, rutas de instalación).
  • Centralizan información del sistema, como el directorio del usuario o los binarios ejecutables.

Variables comunes

Algunas variables de entorno predefinidas en Bash incluyen:

  • PATH: Lista de directorios donde el sistema busca ejecutables.
  • HOME: Directorio personal del usuario actual.
  • USER: Nombre del usuario actual.
  • PWD: Directorio de trabajo actual.
  • SHELL: Ruta al shell predeterminado (por ejemplo, /bin/bash).

Para ver el valor de una variable, usa echo:


echo $PATH
echo $HOME

Cómo definir y usar variables de entorno

Las variables de entorno pueden ser locales (disponibles solo en la sesión actual) o globales (disponibles para todos los procesos hijos). Para definir una variable local:


MI_VARIABLE="Hola, mundo"
echo $MI_VARIABLE

Las variables locales solo existen en la terminal donde se definieron. Para hacer una variable global, se debe exportar (ver más abajo).

Para usar una variable, antepón $ al nombre de la variable. Por ejemplo:


echo "Mi directorio personal es $HOME"

Exportar variables con export

Para que una variable esté disponible en procesos hijos (como scripts o programas ejecutados desde la terminal), usa el comando export:


export MI_VARIABLE="Hola, mundo"

Ejemplo de uso en un script:


# Crear un script (script.sh)
echo "echo La variable es: $MI_VARIABLE" > script.sh
chmod +x script.sh
./script.sh  # No muestra nada si MI_VARIABLE no está exportada
export MI_VARIABLE="Hola desde Bash"
./script.sh  # Ahora muestra "La variable es: Hola desde Bash"

Para hacer una variable de entorno persistente (disponible en todas las sesiones), agrégala a un archivo como ~/.bashrc o ~/.bash_profile:


echo 'export MI_VARIABLE="Valor permanente"' >> ~/.bashrc
source ~/.bashrc

Configurar la variable PATH

La variable PATH define los directorios donde Bash busca comandos ejecutables. Modificar PATH es necesario para instalar ciertos programas, como Java, Python o herramientas de desarrollo, para que sus ejecutables estén disponibles desde cualquier directorio. Para añadir un directorio a PATH:


# Añadir un directorio temporalmente
export PATH=$PATH:/ruta/a/nuevo/directorio

Ejemplo con Java: Si instalas el JDK en /usr/lib/jvm/java-11-openjdk/bin, puedes añadirlo a PATH para usar java o javac desde cualquier lugar:


export PATH=$PATH:/usr/lib/jvm/java-11-openjdk/bin
java -version  # Verifica que Java esté accesible

Para hacer el cambio permanente, añade la línea al archivo ~/.bashrc o ~/.bash_profile:


echo 'export PATH=$PATH:/usr/lib/jvm/java-11-openjdk/bin' >> ~/.bashrc
source ~/.bashrc

Nota: Asegúrate de reemplazar /ruta/a/nuevo/directorio con la ruta real del programa. Si la ruta contiene espacios, enciérrala en comillas. También, evita sobrescribir PATH directamente (por ejemplo, PATH=/nueva/ruta), ya que eliminaría los directorios existentes.

TOP