Las variables de entorno son valores que el sistema operativo utiliza para almacenar información importante sobre la sesión del usuario, la configuración del sistema y el comportamiento de los programas. En Linux, estas variables son muy utilizadas por la terminal, los scripts, las aplicaciones y los servicios del sistema. Gracias a ellas, podemos definir rutas, configurar programas, guardar datos temporales y personalizar el entorno de trabajo.
En este artículo aprenderás qué son las variables de entorno en Linux, cómo consultarlas, cómo crearlas, cómo modificarlas y cómo hacer que sean permanentes.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis
👉 También te dejo por aquí una guía de comandos Linux por categorías
¿Qué son las variables de entorno?
Una variable de entorno es un valor con nombre que está disponible para el sistema y para los procesos que se ejecutan dentro de una sesión.
Se componen de dos partes:
NOMBRE=valorPor ejemplo:
USER=kamilinux
HOME=/home/kamilinux
SHELL=/bin/bashEn este caso:
- USER guarda el nombre del usuario actual.
- HOME guarda la ruta del directorio personal.
- SHELL indica qué shell está usando el usuario.
Las variables de entorno permiten que los programas conozcan información del sistema sin necesidad de escribirla manualmente cada vez.
Utilidad de las variables de entorno
Las variables de entorno se utilizan para muchas tareas dentro de Linux. Algunas de las más comunes son:
- Definir rutas de búsqueda de comandos.
- Guardar configuraciones de programas.
- Indicar el idioma del sistema.
- Definir el editor de texto por defecto.
- Almacenar rutas temporales.
- Configurar scripts y aplicaciones.
- Personalizar la terminal del usuario.
Por ejemplo, cuando ejecutas un comando en la terminal, Linux utiliza la variable PATH para saber en qué directorios debe buscar ese programa.
Ver variables de entorno en Linux
Para ver todas las variables de entorno disponibles en la sesión actual, puedes usar:
envTambién puedes usar:
printenvAmbos comandos muestran una lista de variables de entorno con sus valores.
Ejemplo:
HOME=/home/usuario
USER=usuario
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/binVer una variable de entorno específica
Para consultar una variable concreta, puedes usar echo junto con el símbolo $.
Por ejemplo:
echo $HOME
/home/usuarioOtro ejemplo:
echo $USER
usuarioTambién puedes usar printenv:
printenv HOMEVariables de entorno más comunes
En Linux existen muchas variables de entorno. Algunas de las más importantes son:
| Variable | Descripción |
|---|---|
| USER | Nombre del usuario actual |
| HOME | Directorio personal del usuario |
| SHELL | Shell utilizada por el usuario |
| PATH | Directorios donde Linux busca comandos |
| PWD | Directorio actual |
| LANG | Idioma y configuración regional |
| EDITOR | Editor de texto por defecto |
| TERM | Tipo de terminal utilizada |
La variable PATH
Una de las variables de entorno más importantes en Linux es PATH.
Esta variable contiene una lista de directorios separados por dos puntos :. Cuando ejecutas un comando, el sistema busca ese ejecutable en los directorios definidos dentro de PATH.
Puedes verla con:
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbinEsto significa que Linux buscará los comandos en esos directorios.
Por ejemplo, cuando escribes el comando ls el sistema busca el ejecutable ls dentro de los directorios definidos en PATH.
Crear una variable de entorno temporal
Puedes crear una variable de entorno usando el comando export.
Ejemplo:
export NOMBRE="kamilinux"Después puedes consultarla con:
echo $NOMBRESalida:
kamilinuxEsta variable estará disponible durante la sesión actual de la terminal. Si cierras la terminal, la variable desaparecerá.
Modificar una variable de entorno
Puedes modificar el valor de una variable simplemente asignándole un nuevo valor.
Ejemplo:
export EDITOR="nano"Para comprobarlo:
echo $EDITOR
nanoOtro ejemplo:
export LANG="es_ES.UTF-8"Eliminar una variable de entorno
Para eliminar una variable de entorno se utiliza el comando unset.
Ejemplo:
unset NOMBREDespués, si intentas mostrarla:
echo $NOMBRENo aparecerá ningún valor.
Hacer variables de entorno permanentes
Cuando defines una variable con export, solo dura mientras la terminal esté abierta. Para hacerla permanente, debes añadirla a un archivo de configuración.
Para un usuario concreto
Puedes añadir la variable en el archivo:
nano ~/.bashrcY al final del archivo añadir:
export EDITOR="nano"
export PATH="$PATH:/home/usuario/scripts"Después, aplica los cambios con:
source ~/.bashrcTambién puedes cerrar y abrir la terminal.
Archivos comunes para definir variables
Dependiendo del caso, puedes usar diferentes archivos:
| Archivo | Uso |
|---|---|
| ~/.bashrc | Variables para sesiones interactivas de Bash |
| ~/.profile | Variables para sesiones de inicio de usuario |
| ~/.bash_profile | Usado en algunas distribuciones para login shell |
| /etc/environment | Variables globales del sistema |
| /etc/profile | Configuración global para shells de login |
Para un usuario normal, lo más común es usar ~/.bashrc o ~/.profile.
Para variables globales del sistema, se puede usar /etc/environment.
Variables de entorno globales
Si quieres definir una variable para todos los usuarios del sistema, puedes editar:
sudo nano /etc/environmentY añadir:
APP_ENV="produccion"En este archivo normalmente no se usa export.
Después de modificarlo, puede ser necesario cerrar sesión y volver a iniciarla para que los cambios se apliquen.
Conclusión
Las variables de entorno en Linux son una parte fundamental del funcionamiento del sistema. Permiten almacenar información de configuración, personalizar la terminal, definir rutas de ejecución y facilitar el trabajo con scripts y aplicaciones.
Comandos como env, printenv, export, unset y source son básicos para consultar, crear, modificar y eliminar variables de entorno. Además, archivos como ~/.bashrc, ~/.profile o /etc/environment permiten hacer que estas variables sean permanentes.
Entender cómo funcionan las variables de entorno te ayudará a administrar mejor tu sistema Linux y a trabajar de forma más eficiente desde la terminal.
