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 ejecutablesHOME→ directorio personal del usuarioUSER→ nombre del usuarioSHELL→ 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~/.profileo~/.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
PATHpara 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