Lista de variables de entorno en Linux/Unix

⚡ Resumen inteligente

Las variables de entorno en Linux y Unix son valores con nombre dinámico que determinan el comportamiento de los programas y del intérprete de comandos, almacenando configuraciones como la variable PATH, el directorio de inicio, el editor predeterminado, el idioma y el intérprete de comandos que se está utilizando actualmente.

  • ???? Lo que ellos son: Las variables de entorno contienen valores dinámicos que afectan a los procesos y pueden crearse, editarse y eliminarse.
  • 🧭 CAMINO: La variable PATH enumera los directorios que el intérprete de comandos busca para encontrar y ejecutar comandos ejecutables.
  • 🔎 Valores de lectura: El comando echo muestra una variable, mientras que env y printenv listan todas las variables de entorno.
  • 🆕 Creando: Asigne un valor con NOMBRE=valor y, a continuación, utilice la función de exportación para que esté disponible para los procesos secundarios.
  • 🗑️ Eliminando: El comando unset elimina una variable y su valor de la sesión actual del intérprete de comandos.
  • 💾 Persistencia: Agregue líneas de exportación a ~/.bashrc o /etc/environment para mantener las variables entre sesiones.
  • 🤖 Ayuda de IA: Los asistentes de IA y GitHub Copilot pueden auditar variables y generar scripts de shell que las utilicen.

Lista de variables de entorno comunes en Linux y Unix.

Las variables de entorno son una de las primeras cosas que vale la pena entender en cualquier Linux o sistema Unix, porque controlan silenciosamente el comportamiento de tus programas y la consola. Esta guía explica qué son, cuáles son los más comunes y cómo leerlos, crearlos y eliminarlos.

¿Qué es un entorno informático?

El entorno informático es la plataforma (plataforma = sistema operativo + procesador) donde un usuario puede ejecutar programas.

¿Qué es una variable?

En informática, una variable es un espacio para almacenar un valor, que puede ser un nombre de archivo, texto, número o cualquier otro dato. Generalmente se la identifica por su nombre simbólico, que se le asigna al crearla. El valor almacenado puede visualizarse, eliminarse, editarse y guardarse nuevamente.

Las variables desempeñan un papel importante en la programación informática, ya que permiten a los programadores escribir programas flexibles. Dado que están vinculadas al sistema operativo que se utiliza, es importante conocer algunas de ellas y cómo se pueden modificar.

¿Qué son las variables de entorno?

Las variables de entorno son valores dinámicos que afectan a los procesos o programas de un ordenador. Existen en todos los sistemas operativos, aunque su tipo puede variar. Se pueden crear, editar, guardar y eliminar, y proporcionan información sobre el comportamiento del sistema.

Las variables de entorno pueden modificar el comportamiento del software y los programas. Por ejemplo, la variable de entorno $LANG almacena el idioma que entiende el usuario. Este valor es leído por la aplicación para que un usuario chino vea una interfaz en mandarín, mientras que un usuario estadounidense vea una interfaz en inglés.

Estudiemos algunas variables ambientales comunes:

Variable Mareas Ideales para Lecciones
TRAYECTORIA Esta variable contiene una lista de directorios separados por dos puntos (:) donde el sistema busca archivos ejecutables. Al introducir un comando en la terminal, el intérprete de comandos lo busca en los directorios especificados en la variable $PATH. Si lo encuentra, lo ejecuta. De lo contrario, devuelve el error "comando no encontrado".
USUARIO El nombre de usuario
INICIO Ruta predeterminada al directorio de inicio del usuario
EDITOR Ruta al programa que edita el contenido de los archivos.
UID ID única del usuario
PLAZO Emulador de terminal predeterminado
SHELL Shell utilizado por el usuario

Accediendo a valores de variables

Para determinar el valor de una variable, utilice el comando echo:

echo $VARIABLE

Por ejemplo, la captura de pantalla que aparece a continuación muestra el valor de la variable PATH que se muestra con el comando echo.

Mostrar el valor de la variable PATH con el comando echo.

Cualquier variable de entorno se puede leer de la misma manera. La siguiente salida muestra cómo echo devuelve el valor de una variable.

Salida del comando echo que muestra el valor de una variable de entorno.

Las variables distinguen entre mayúsculas y minúsculas, así que asegúrese de escribir el nombre de la variable respetando las mayúsculas y minúsculas; de lo contrario, es posible que no obtenga el resultado deseado. Para listar todas las variables de entorno a la vez, utilice el comando `env`, como se muestra a continuación.

El comando env lista todas las variables de entorno en la terminal.

Establecer nuevas variables de entorno

Puedes crear tu propia variable definida por el usuario con esta sintaxis:

VARIABLE_NAME=variable_value

Recuerde que los nombres de las variables distinguen entre mayúsculas y minúsculas y generalmente se escriben en mayúsculas. Una variable creada de esta manera es una variable de shell local que solo el shell actual puede ver. Para convertirla en una variable de entorno que también hereden los procesos secundarios, utilice el comando export:

export VARIABLE_NAME=value

La captura de pantalla que aparece a continuación muestra cómo se crea una nueva variable y luego se muestra con echo.

Creación y visualización de una nueva variable de entorno definida por el usuario.

Eliminación de variables

La siguiente sintaxis elimina una variable del sistema:

unset variablename

Esto elimina la variable y su valor de la sesión actual de la consola, como se muestra a continuación.

Eliminar una variable de entorno con el comando unset

Preguntas Frecuentes

Una variable de shell existe únicamente en el shell actual y no se pasa a otros programas. Una variable de entorno es una variable de shell que se ha exportado, por lo que los procesos hijos que se inician desde ese shell la heredan. Utilice el comando `export` para promover una variable.

Las variables definidas en la terminal desaparecen al cerrar la sesión. Para conservarlas, añade la línea `export` a un archivo de inicio: `~/.bashrc` o `~/.profile` para un solo usuario, o `/etc/environment` para todos los usuarios del sistema. Recarga el archivo o vuelve a abrir la terminal para aplicar los cambios.

Agrega el nuevo directorio a la variable PATH existente para no sobrescribirla: export PATH=$PATH:/tu/nuevo/directorio. Esto agrega tu carpeta a la lista que la shell utiliza para buscar comandos. Agrega la misma línea a ~/.bashrc para que el cambio se mantenga en las nuevas sesiones.

El comando `printenv` solo muestra las variables de entorno y puede mostrar una sola, como `printenv HOME`. El comando `env` también muestra las variables de entorno y puede ejecutar un programa con un entorno modificado. El comando `set` muestra todo, incluidas las variables y funciones de shell, no solo las exportadas.

Esto suele significar que sobrescribiste PATH en lugar de agregarle contenido, por lo que el intérprete de comandos ya no puede encontrar los comandos estándar. Incluye siempre $PATH al configurarlo. Para recuperarlo en la sesión actual, ejecuta export PATH=/usr/local/bin:/usr/bin:/bin y luego corrige tu archivo de inicio.

Es práctico, pero arriesgado. Las variables de entorno se pueden leer desde /proc, son heredadas por los procesos secundarios y, a menudo, se filtran a los registros o informes de fallos. Para información confidencial, es preferible usar un gestor de secretos dedicado o un archivo cifrado con permisos restringidos en lugar de una variable sin cifrar.

Los asistentes de IA pueden explicar la función de una variable desconocida, auditar archivos de configuración en busca de entradas faltantes o duplicadas y señalar secretos expuestos accidentalmente en variables. Las herramientas de aprendizaje automático también pueden analizar entornos de procesos en múltiples servidores para detectar configuraciones incorrectas que serían tediosas de revisar manualmente.

Sí. Copiloto de GitHub Puede generar declaraciones de exportación, modificaciones en ~/.bashrc y scripts de shell que leen variables como $HOME o $PATH. Sugiere la sintaxis a medida que escribes, aunque debes revisar cualquier código que maneje credenciales antes de ejecutarlo.

Resumir este post con: