Diccionario

Variable de entorno

Un valor con nombre que el sistema operativo pasa a todos los programas, como PATH, que indica dónde buscar los comandos.

Las variables de entorno configuran los programas sin tocar su código: la carpeta del usuario, el idioma, la ruta de los comandos (PATH) o, en servidores, claves y direcciones de servicios.

En Bash se leen con $NOMBRE y se definen con export; en PowerShell con $env:NOMBRE; y en Windows se editan de forma permanente en Configuración avanzada del sistema → Variables de entorno.

Un ejemplo

Tras instalar Python, si la terminal dice «no se reconoce el comando», es que su carpeta no está en el PATH.

Por qué importa

Una variable de entorno es un par nombre-valor que el sistema operativo pone a disposición de los programas que se ejecutan. Sirven para configurar cómo se comportan sin tocar su código: dónde buscar ejecutables (PATH), cuál es tu carpeta personal (HOME) o qué idioma usar. En desarrollo se emplean mucho para pasar datos que cambian según el entorno o que no deben estar en el código, como la dirección de la base de datos, claves de API o el modo de ejecución (NODE_ENV=production).

Guardar secretos como contraseñas o tokens en variables de entorno, o en un archivo .env que se excluye del control de versiones, es una práctica extendida y evita publicar credenciales por error en un repositorio. Los programas las leen con funciones del lenguaje, como process.env.NOMBRE en Node o os.environ["NOMBRE"] en Python.

Confusiones frecuentes

Se confunden con las variables normales de un programa: las de entorno viven fuera del programa y se heredan por los procesos que este lanza, no se comparten entre terminales ya abiertas. Un error clásico es definir una variable en una terminal y esperar que otra, abierta antes, la vea: no ocurre. También sorprende que un cambio en el PATH no surta efecto hasta abrir una terminal nueva. Y es habitual subir por descuido el archivo .env a un repositorio público, con lo que las claves quedan expuestas; se evita añadiéndolo a .gitignore antes del primer commit.

Preguntas frecuentes

¿Cómo defino una variable de entorno?

En Bash, export NOMBRE=valor para la sesión actual. En PowerShell, $env:NOMBRE = "valor". Para que sea permanente, hay que configurarla en el perfil de la shell o en los ajustes del sistema.

¿Qué es el `PATH`?

Una variable con la lista de carpetas donde el sistema busca los programas cuando escribes su nombre en la terminal. Si un comando «no se encuentra», suele faltar su carpeta en el PATH.