En Linux, las variables de entorno son valores con nombre dinámicos que funcionan como un marcador de posición para la información almacenada en el sistema utilizado por las aplicaciones de línea de comandos. Al igual que cualquier otra variable, consta de dos partes:un nombre y un valor asociado.
Aquí hay un vistazo rápido al formato de las variables:
KEY=value KEY="this is also a value" KEY=valueA:valueB
Algunas cosas a tener en cuenta:
- No debe haber espacios antes o después del símbolo "=".
- Si los valores contienen espacios en blanco, se utilizan comillas.
- Puede asignar varios valores a una variable. Cada valor debe estar separado por un carácter de dos puntos (:).
- Los nombres de las variables distinguen entre mayúsculas y minúsculas. Como tal, "CLAVE" y "clave" denotan dos variables diferentes. Por convención, una variable de entorno debe escribirse en MAYÚSCULAS.
Usando variables de entorno, puede personalizar potencialmente cómo funciona su sistema, incluido el comportamiento de las aplicaciones instaladas en su sistema.
Por ejemplo, puede usar variables de entorno para almacenar información sobre aplicaciones predeterminadas, como un editor de texto, un navegador o incluso la ruta a un archivo ejecutable. Esto le permite modificar el sistema según sus necesidades personales o las necesidades de un grupo de usuarios.
Ahora, para esta lectura, hemos preparado un tutorial detallado que analiza cómo configurar y enumerar las variables ambientales en su PC con Linux. Esto le dará una comprensión viable del uso de variables de entorno para personalizar su sistema.
Entonces, sin más preámbulos, comencemos:
¿Cuál es la diferencia entre las variables de entorno y las variables de shell?
Antes de comenzar, primero comprendamos las diferencias entre una variable de entorno y una variable de shell.
En pocas palabras, una "variable de entorno" está disponible globalmente y es heredada por cualquier shell o proceso secundario generado.
Las variables de shell, por otro lado, son variables que solo se aplican a la instancia de shell actual. Bash, zsh y todos los demás shells tienen su propio conjunto de variables de shell internas. Por lo general, se utilizan para realizar un seguimiento de los datos relevantes temporalmente, como el directorio de trabajo actual.
Ahora, puede hacer que una variable de shell esté disponible como variable de entorno. Todo lo que necesita hacer es usar el comando "exportar" junto con el nombre de la variable. Esto exportará su valor globalmente para que los nuevos programas y subcapas puedan usarlo ahora.
Aquí hay un ejemplo de cómo se hace:
Profundizaremos más en esto en una sección posterior.
Cómo enumerar y establecer variables de entorno
Hay toneladas de comandos disponibles para ayudarlo a enumerar y establecer variables. Aquí hay un vistazo rápido a algunos de los comandos más comunes que usaremos en este tutorial:
- exportar :se utiliza para exportar el valor de una variable de entorno recién asignada.
- env :se utiliza para ejecutar otro programa en un entorno personalizado sin necesidad de modificar el actual. Se puede usar con un argumento para imprimir una lista de todas las variables de entorno presentes en el shell.
- printenv :se utiliza para imprimir todas las variables de entorno (o las especificadas) y las definiciones del entorno actual.
- establecer :se utiliza para asignar o definir una variable de entorno o shell. Si se usa sin un argumento, imprimirá una lista de todas las variables; esto incluye variables de entorno, variables de shell y funciones de shell.
- desactivar :se utiliza para eliminar un entorno específico o una variable de shell.
Con estos comandos, podrá enumerar y establecer variables de entorno en su sistema Linux.
Lista de variables de entorno
El comando más común utilizado para mostrar las variables de entorno es "printenv".
Si usa el nombre de una variable como argumento para el comando, entonces mostrará el valor de la variable. Sin embargo, si se usa sin un argumento, enumerará todas las variables de entorno en el sistema.
Estos son algunos ejemplos:
digamos que desea ver el valor de la variable de entorno "HOME". Para hacer esto, debe ejecutar el siguiente comando:
$ printenv HOME
Esto le dará la ruta del usuario conectado actualmente:
También puede pasar dos o más argumentos a través del comando "printenv" de la siguiente manera:
$ printenv PWD LANG
Obtendrá una pantalla de salida similar:
Ahora, si ejecuta "printenv" sin un argumento, mostrará una lista de todas las variables de entorno.
Ahora, los comandos printenv y env solo muestran las variables de entorno. Pero, ¿qué sucede si desea enumerar todas las variables en su sistema? Esto incluye todo, desde variables de entorno hasta variables de shell e incluso funciones de shell.
Bueno, entonces puedes usar el comando "establecer" sin ningún argumento:
Como puede ver en la imagen, el comando mostrará una gran lista detallada de todas las variables. Si desea canalizar la salida, puede usar este comando en su lugar:
$ set | less
Además de todo esto, también puede usar el comando echo si desea imprimir los valores de las variables de shell. Simplemente ingrese el eco y pase la variable de shell en cuestión como su argumento. Aquí hay un ejemplo, usándolo con la variable BASH_VERSION.
Para ayudarlo a experimentar con estos comandos en su sistema, aquí hay una lista de algunas de las variables de entorno de la mayoría de los comandos.
- EDITOR – El editor de archivos predeterminado que se utilizará cuando escriba en el editor en la terminal.
- INICIO – El directorio de inicio del usuario actual.
- IDIOMA – La configuración local actual.
- NOMBRE DE REGISTRO – El nombre del usuario actual.
- LS_COLORS – Define todos los códigos de color utilizados para agregar la salida de color opcional al comando ls. Estos colores se utilizan para distinguir entre diferentes tipos de archivos y hacer que la salida sea más fácil de digerir.
- CORREO – La ubicación donde se almacenan los correos electrónicos del usuario actual.
- RUTA – Una lista de directorios para buscar al ejecutar comandos. Cuando ejecuta un comando, el sistema buscará estos directorios en el orden indicado y utilizará el primer ejecutable encontrado.
- Personas con discapacidad – Ubicación del directorio de trabajo actual.
- OLDPWD – Ubicación del directorio de trabajo anterior.
- CONCHA – La ruta del shell del usuario actual, por ejemplo, bash o zsh.
- Plazo – La emulación de terminal actual.
- USUARIO – El usuario conectado actual.
Ahora hablemos de cómo configurar las variables de entorno.
Configuración de variables de entorno
La práctica común para crear una variable de entorno es crear una variable de shell y luego exportarla como una variable de entorno.
Ahora, para crear una nueva variable de shell, usamos el siguiente comando:
MY_VAR=FOSSLinux
Ahora puede usar el comando echo para verificar que la variable esté configurada con el valor proporcionado.
$ echo $MY_VAR
De manera similar, use printenv para ver si la variable es una variable de entorno. Si no, obtendrá una salida vacía.
$ printenv MY_VAR
Además, verifique si la subcapa hereda la variable usando el siguiente comando:
$ bash -c 'echo $MY_VAR'
Aquí también, obtendrá una salida vacía como se muestra en la imagen a continuación:
Ahora que hemos configurado la variable de shell MY_VAR y la hemos verificado, podemos usar el comando de exportación para configurarla como una variable de entorno.
$ export MY_VAR
Una vez hecho esto, puede usar los comandos anteriores para ver si aparece como una variable de entorno y ver si la subcapa la hereda.
También puede establecer una variable de entorno usando una sola línea, como se muestra a continuación:
$ export NEW_VAR="This is a new variable"
Sin embargo, tenga en cuenta que las variables de entorno creadas de esta manera solo están disponibles para la sesión actual. Una vez que cierre la sesión o abra un nuevo shell, la variable de entorno se perderá.
Variables de entorno persistentes y no persistentes
Como se discutió anteriormente, cuando modifica las variables de entorno en su shell actual, se perderá tan pronto como cierre sesión en el shell. Esto se denomina variables de entorno no persistentes.
Para hacerlos persistentes, o en otras palabras, permanentes, deberá editar los archivos de configuración de bash.
Cuando inicia una nueva sesión, todas las variables de entorno se leen de los siguientes archivos. Como tal, puede agregar las variables de entorno a estos archivos para que sean persistentes.
- /etc/medio ambiente :este archivo contiene todas las variables de entorno de todo el sistema. Puede agregar nuevas variables usando el siguiente formato:
$FOO=bar $MY_VAR=FOSSLinux
- /etc/perfil :este archivo incluye conjuntos de variables que se cargan cuando se ingresa un shell de inicio de sesión bash. Puede declarar una variable de entorno en este archivo mediante el comando de exportación.
$ export JAVA_HOME="/path/to/java/home" $ export PATH=$PATH:$JAVA_HOME/bin
- También puede establecer archivos de entorno en archivos de configuración específicos de shell por usuario. Por ejemplo, si usa Bash, puede declarar la variable dentro de ~/.bashrc usando el siguiente comando:
$ export PATH="$HOME/bin:$PATH"
Para cargar la nueva variable de entorno en la sesión de shell actual, deberá usar el comando fuente de la siguiente manera:
$ source ~/.bashrc
Una vez que siga estos pasos, todas las variables de entorno que acaba de agregar se volverán permanentes y permanecerán intactas incluso si cierra sesión en el shell.
Conclusión
Así que esta fue nuestra guía detallada sobre cómo enumerar y establecer variables de entorno en Linux. Esperamos que haya encontrado esto útil y educativo. En caso de que tenga alguna pregunta o tenga algún problema, déjenos un comentario y le responderemos rápidamente.
Si comienza con Linux, puede visitar nuestra serie Learn Linux, donde cubrimos tutoriales y guías detallados que beneficiarán tanto a los principiantes como a los usuarios experimentados de Linux.