Entorno de shell y variables en Linux
Estos comandos y archivos permiten ver, modificar y personalizar el entorno del usuario: variables, rutas, alias y configuración automática al iniciar sesión o abrir una terminal.
1. Comandos del módulo #
2. Variables de entorno #
env #
Muestra todas las variables de entorno activas.
1env
Ejemplo (salida parcial):
1USER=angel 2HOME=/home/angel 3SHELL=/bin/bash 4PATH=/usr/local/bin:/usr/bin:/bin
👉 Muy útil para debug y para entender qué variables existen.
$HOME #
Ruta del directorio personal del usuario.
1echo $HOME
Salida:
1/home/angel
Ejemplos de uso:
1cd $HOME 2ls $HOME/Descargas
$USER #
Nombre del usuario actual.
1echo $USER
Salida:
1angel
Uso típico en scripts:
1echo "Hola $USER"
3. Crear y exportar variables #
Variables de shell no exportadas #
Existen en la shell actual, pero no se heredan como variables de entorno en los procesos hijos.
1MI_VAR=Hola 2echo $MI_VAR
⚠️ Una shell nueva no la tendrá salvo que la definas en un archivo de inicio.
export #
Convierte una variable en variable de entorno, accesible por subprocesos.
1export MI_VAR=Hola
Comprobar:
1env | grep MI_VAR
Ejemplo práctico:
1export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
4. Alias (atajos de comandos) #
alias #
Crea un atajo para un comando.
1alias ll='ls -lah'
Uso:
1ll
Otros ejemplos útiles:
1alias cls='clear' 2alias gs='git status'
Ver alias definidos:
1alias
unalias #
Eliminar un alias.
1unalias ll
Eliminar todos:
1unalias -a
5. Archivos de configuración de Bash #
Estos archivos se ejecutan automáticamente según el tipo de sesión.
/etc/profile #
Configuración global para todos los usuarios (login shell).
📍 Ubicación:
1/etc/profile
Contiene:
- PATH global
- Variables de entorno comunes
Ejemplo típico:
1export PATH="$PATH:/opt/bin"
⚠️ Requiere permisos de root.
/etc/bashrc (o /etc/bash.bashrc) #
Configuración global para shells interactivos.
Se ejecuta cuando:
- Abres una terminal gráfica
- Usas
bash
~/.bash_profile #
Configuración del usuario al iniciar sesión (login).
📍 Bash lo lee en shells de inicio de sesión, por ejemplo muchas sesiones SSH y terminales abiertas explícitamente como login shell. Si no existe, Bash busca ~/.bash_login y después ~/.profile.
Ejemplo:
1export PATH="$HOME/bin:$PATH"
💡 Normalmente carga .bashrc:
1if [ -f ~/.bashrc ]; then 2 . ~/.bashrc 3fi
~/.bashrc #
⚠️ EL MÁS IMPORTANTE para el día a día
Se ejecuta:
- Al iniciar una shell Bash interactiva que no sea de inicio de sesión
Aquí van:
- alias
- variables
- prompt
- funciones
Ejemplo real:
1alias ll='ls -lah' 2export EDITOR=nano
Aplicar cambios sin cerrar terminal:
1source ~/.bashrc
~/.bash_logout #
Se ejecuta al cerrar sesión.
Usos típicos:
1clear 2echo "Hasta luego 👋"
Resumen del tema
Conceptos clave #
- Variables Locales vs Variables de Entorno: las variables locales solo existen en la shell actual;
export VAR=valorlas convierte en variables de entorno visibles para subprocesos y programas hijos. - Variables Especiales:
$PATH(rutas de búsqueda de ejecutables),$USER,$HOME,$SHELL,$?(código de salida del último comando). - Inspección de Variables:
env/printenv(lista variables de entorno) yecho $VAR. - Alias:
alias nombre='comando'para crear atajos personalizados (unaliaspara eliminarlos). - Ciclo de Carga de Bash:
- Globales:
/etc/profile,/etc/bash.bashrc. - De Usuario:
~/.bash_profile(login shell) y~/.bashrc(shells interactivos, alias y variables personales). - Recarga en caliente:
source ~/.bashrc.
- Globales:
Qué debes recordar #
Define alias y ajustes de shells interactivas en ~/.bashrc. Para variables que deban cargarse al iniciar sesión, usa el archivo de perfil adecuado y haz que este cargue .bashrc cuando proceda.