Variables de entorno en Linux

Las variables de entorno son fundamentales para controlar el comportamiento de procesos y shells en Linux. Como administrador, comprenderlas te permitirá configurar entornos, scripts y servicios de manera efectiva.


Introducción

Una variable de entorno es un par clave-valor que define información sobre el entorno del sistema o del usuario. Ejemplos típicos:

  • PATH → rutas donde el sistema busca ejecutables
  • HOME → directorio personal del usuario
  • USER → nombre del usuario
  • SHELL → shell por defecto

Conceptos clave

Local vs global

  • Local: definida solo para la sesión actual del shell.
  • Global: disponible para todos los procesos y shells.

Scope y herencia

  • Variables definidas en un shell se heredan a procesos hijos.
  • No afectan a shells padres a menos que se exporten.

Cómo ver variables de entorno

# Listar todas las variables
env
printenv

# Ver una variable específica
echo $HOME
echo $PATH

Crear y modificar variables

Temporal (solo para la sesión actual)

export MI_VAR="valor temporal"
echo $MI_VAR

Persistente (para futuras sesiones)

Agregar a archivos de configuración:

  • ~/.bashrc → solo para shell interactiva
  • ~/.profile o ~/.bash_profile → para login shell

Ejemplo:

echo 'export MI_VAR="valor permanente"' >> ~/.bashrc
source ~/.bashrc

Variables especiales

  • $? → código de salida del último comando
  • $$ → PID del shell actual
  • $0 → nombre del script o shell actual
  • $# → número de argumentos de un script
  • $@ → lista de todos los argumentos de un script
  • $IFS → Internal Field Separator, separador de palabras

PATH y ejecución de comandos

PATH define las rutas donde Linux busca ejecutables:

echo $PATH
export PATH=$PATH:/opt/mis-scripts

Siempre añade nuevas rutas al final de PATH para no sobreescribir rutas del sistema.


Uso práctico en scripts

#!/bin/bash
# Script que usa variable de entorno
echo "Bienvenido $USER"
  • Las variables de entorno permiten scripts portables y configurables
  • Se usan también en cron jobs y servicios systemd

Puntos críticos para sysadmins

PATH mal configurado

  • Comandos esenciales no se encuentran → falla el sistema

Variables no exportadas

  • Procesos hijos no las ven → scripts fallan

Variables sensibles

  • No guardar contraseñas en texto plano en variables de entorno sin protección

Ejercicios prácticos

Crear variable temporal y mostrarla:

export SERVIDOR="db01"
echo $SERVIDOR

Agregar variable permanente y cargarla:

echo 'export ENTORNO="produccion"' >> ~/.bashrc
source ~/.bashrc
echo $ENTORNO

Ver variables especiales:

echo $$
echo $0
echo $?

Mentalidad

  • Siempre verifica variables antes de ejecutar scripts críticos
  • Mantén un entorno limpio y organizado
  • Usa variables para configurar, no para hardcodear rutas o contraseñas
  • Piensa en herencia y scope cuando uses variables en servicios o cron jobs

Resumen

  • Variables de entorno = par clave-valor que define configuración del sistema o usuario
  • Scope: local vs global, hijos heredan del padre
  • PATH = clave para ejecución de comandos
  • Variables especiales son útiles en scripting
  • Persistencia = archivos de configuración (.bashrc, .profile)

Siguiente paso

En el siguiente módulo entrarás en:

Permisos de usuario (permisos.md)

Donde verás:

  • Permisos
  • ACL
  • SUID