Variables de entorno son algunas variables especiales que se definen en shell y que los programas necesitan durante la ejecución. Pueden ser definidos por el sistema o por el usuario. Las variables definidas por el sistema son aquellas que establece el sistema y que utilizan los programas a nivel del sistema.
Por ej. El comando PWD es una variable de sistema muy común que se utiliza para almacenar el directorio de trabajo actual. Las variables definidas por el usuario generalmente las establece el usuario, ya sea temporalmente para el shell actual o permanentemente. Todo el concepto de establecer y desactivar variables de entorno gira en torno a un conjunto de archivos y unos pocos comandos y diferentes shells.
En términos más generales, una variable de entorno puede ser de tres tipos:
1. Variable de entorno local
Uno definido para la sesión actual. Estas variables de entorno duran solo hasta la sesión actual, ya sea una sesión de inicio de sesión remota o una sesión de terminal local. Estas variables no se especifican en ningún archivo de configuración y se crean y eliminan mediante un conjunto especial de comandos.
2. Variable de entorno de usuario
Estas son las variables que se definen para un usuario en particular y se cargan cada vez que un usuario inicia sesión usando una sesión de terminal local o ese usuario inicia sesión usando una sesión de inicio de sesión remota. Estas variables generalmente se configuran y cargan desde los siguientes archivos de configuración:.bashrc
, .bash_profile
, .bash_login
, .profile
archivos que están presentes en el directorio de inicio del usuario.
3. Variables de entorno de todo el sistema
Estas son las variables de entorno que están disponibles en todo el sistema, es decir, para todos los usuarios presentes en ese sistema. Estas variables están presentes en los archivos de configuración de todo el sistema presentes en los siguientes directorios y archivos:/etc/environment
, /etc/profile
, /etc/profile.d/
, /etc/bash.bashrc
. Estas variables se cargan cada vez que se enciende el sistema y cualquier usuario inicia sesión local o remotamente.
Comprensión de los archivos de configuración de todo el usuario y todo el sistema
Aquí, describimos brevemente varios archivos de configuración enumerados anteriormente que contienen variables de entorno, ya sea para todo el sistema o específicas del usuario.
.bashrc
Este archivo es un archivo específico del usuario que se carga cada vez que el usuario crea una nueva sesión local, es decir, en palabras simples, abre una nueva terminal. Todas las variables de entorno creadas en este archivo tendrán efecto cada vez que se inicie una nueva sesión local.
.bash_perfil
Este archivo es un archivo de inicio de sesión remoto específico del usuario. Las variables de entorno enumeradas en este archivo se invocan cada vez que el usuario inicia sesión de forma remota, es decir, utilizando la sesión ssh. Si este archivo no está presente, el sistema busca .bash_login
o .profile
archivos.
/etc/medio ambiente
Este archivo es un archivo de todo el sistema para crear, editar o eliminar cualquier variable de entorno. Las variables de entorno creadas en este archivo son accesibles en todo el sistema, por todos y cada uno de los usuarios, tanto de forma local como remota.
/etc/bash.bashrc
Todo el sistema bashrc
expediente. Este archivo se carga una vez para cada usuario, cada vez que ese usuario abre una sesión de terminal local. Las variables de entorno creadas en este archivo son accesibles para todos los usuarios, pero solo a través de una sesión de terminal local. Cuando se accede remotamente a cualquier usuario en esa máquina a través de una sesión de inicio de sesión remota, estas variables no serían visibles.
/etc/perfil
Archivo de perfil de todo el sistema. Todos los usuarios del sistema pueden acceder a todas las variables creadas en este archivo, pero solo si la sesión de ese usuario se invoca de forma remota, es decir, a través de un inicio de sesión remoto. No se podrá acceder a ninguna variable en este archivo para la sesión de inicio de sesión local, es decir, cuando el usuario abre una nueva terminal en su sistema local.
Nota :Variables de entorno creadas usando en todo el sistema o en todo el usuario los archivos de configuración se pueden eliminar eliminándolos solo de estos archivos. Solo que después de cada cambio en estos archivos, cierre sesión y vuelva a iniciar sesión o simplemente escriba el siguiente comando en la terminal para que los cambios surtan efecto:
$ source <file-name>
Establecer o desactivar variables de entorno locales o de toda la sesión en Linux
Variables de entorno local se puede crear usando los siguientes comandos:
$ var=value OR $ export var=value
Estas variables son para toda la sesión y solo son válidas para la sesión de terminal actual. Para borrar estas variables de entorno de toda la sesión, se pueden usar los siguientes comandos:
1. Usando entorno
Por defecto, "env"
El comando enumera todas las variables de entorno actuales. Pero, si se usa con '-i'
switch, borra temporalmente todas las variables de entorno y permite al usuario ejecutar un comando en la sesión actual en ausencia de todas las variables de entorno.
$ env –i [Var=Value]… command args…
Aquí, var=value
corresponde a cualquier variable de entorno local que desee usar solo con este comando.
$ env –i bash
Dará bash shell que temporalmente no tendría ninguna de las variables de entorno. Pero, al salir del shell, se restaurarán todas las variables.
2. Usando desarmado
Otra forma de borrar la variable de entorno local es usando el comando unset. Para desactivar cualquier variable de entorno local temporalmente,
$ unset <var-name>
Donde, var-name
es el nombre de la variable local que desea desactivar o borrar.
3. Establezca el nombre de la variable en ”
Otra forma menos común sería establecer el nombre de la variable que desea borrar en ''
(Vacío). Esto borraría el valor de la variable local para la sesión actual para la que está activa.
NOTA – INCLUSO PUEDE JUGAR Y CAMBIAR LOS VALORES DEL SISTEMA O LAS VARIABLES DEL ENTORNO DEL USUARIO, PERO LOS CAMBIOS SE REFLEJARÍAN SOLO EN LA SESIÓN ACTUAL DEL TERMINAL Y NO SERÍAN PERMANENTES.
Aprenda a crear variables de entorno para todo el usuario y para todo el sistema en Linux
En la sección, aprenderemos cómo configurar o desactivar variables de entorno locales, de usuario y de todo el sistema en Linux con los siguientes ejemplos:
1. Establecer y desactivar variables locales en Linux
a.) Aquí, creamos una variable local VAR1
y configúrelo en cualquier valor. Luego, usamos unset para eliminar esa variable local y, al final, esa variable se elimina.
$ VAR1='TecMint is best Site for Linux Articles' $ echo $VAR1 $ unset VAR1 $ echo $VAR1
b.) Otra forma de crear una variable local es usando export
dominio. La variable local creada estará disponible para la sesión actual. Para desactivar la variable, simplemente establezca el valor de la variable en ''
.
$ export VAR='TecMint is best Site for Linux Articles' $ echo $VAR $ VAR= $ echo $VAR
c.) Aquí, creamos una variable local VAR2
y ajústelo a un valor. Luego, para ejecutar un comando borrando temporalmente todas las variables locales y de otro entorno, ejecutamos 'env –i'
dominio. Este comando aquí ejecutó bash shell borrando todas las demás variables de entorno. Después de ingresar 'exit'
en el shell bash invocado, se restaurarían todas las variables.
$ VAR2='TecMint is best Site for Linux Articles' $ echo $VAR2 $ env -i bash $ echo $VAR2
2. Establecer y desactivar variables de entorno de todo el usuario en Linux
a.) Modificar .bashrc
archivo en su directorio de inicio para exportar o configurar la variable de entorno que necesita agregar. Después de esa fuente el archivo, para que los cambios surtan efecto. Entonces vería la variable ('CD'
en mi caso), surtiendo efecto. Esta variable estará disponible cada vez que abra una nueva terminal para este usuario, pero no para sesiones de inicio de sesión remotas.
$ vi .bashrc
Agregue la siguiente línea a .bashrc
archivo en la parte inferior.
export CD='This is TecMint Home'
Ahora ejecute el siguiente comando para tomar nuevos cambios y probarlo.
$ source .bashrc $ echo $CD
Para eliminar esta variable, simplemente elimine la siguiente línea en .bashrc archívelo y vuelva a buscarlo:
b.) Para agregar una variable que estará disponible para sesiones de inicio de sesión remotas (es decir, cuando se comunica con el usuario desde un sistema remoto), modifique .bash_profile
archivo.
$ vi .bash_profile
Agregue la siguiente línea a .bash_profile
archivo en la parte inferior.
export VAR2='This is TecMint Home'
Al obtener este archivo, la variable estará disponible cuando se comunique con este usuario, pero no al abrir una nueva terminal local.
$ source .bash_profile $ echo $VAR2
Aquí, VAR2
inicialmente no está disponible pero, al hacer ssh al usuario en localhost, la variable pasa a estar disponible.
$ ssh [email protected] $ echo $VAR2
Para eliminar esta variable, simplemente elimine la línea en .bash_profile
archivo que agregó y vuelva a buscar el archivo.
NOTA :estas variables estarán disponibles cada vez que inicie sesión con el usuario actual, pero no para otros usuarios.
3. Establecer y desactivar variables de entorno de todo el sistema en Linux
a.) Para agregar una variable de no inicio de sesión en todo el sistema (es decir, una que esté disponible para todos los usuarios cuando cualquiera de ellos abra una nueva terminal pero no cuando se acceda remotamente a cualquier usuario de la máquina), agregue la variable a /etc/bash.bashrc
archivo.
export VAR='This is system-wide variable'
Después de eso, busque el archivo.
$ source /etc/bash.bashrc
Ahora esta variable estará disponible para cada usuario cuando abra cualquier terminal nuevo.
$ echo $VAR $ sudo su $ echo $VAR $ su - $ echo $VAR
Aquí, la misma variable está disponible para raíz usuario, así como el usuario normal. Puede verificar esto iniciando sesión con otro usuario.
b.) Si desea que alguna variable de entorno esté disponible cuando cualquiera de los usuarios de su máquina inicie sesión de forma remota, pero no al abrir una nueva terminal en la máquina local, entonces debe editar el archivo:'/etc/profile'
.
export VAR1='This is system-wide variable for only remote sessions'
Después de agregar la variable, simplemente vuelva a buscar el archivo. Entonces la variable estaría disponible.
$ source /etc/profile $ echo $VAR1
Para eliminar esta variable, elimine la línea de /etc/profile
archivarlo y volver a buscarlo.
c.) Sin embargo, si desea agregar cualquier entorno que desee que esté disponible en todo el sistema, tanto en sesiones de inicio de sesión remotas como en sesiones locales (es decir, abrir una nueva ventana de terminal) para todos los usuarios, simplemente exporte la variable en /etc/entorno archivo.
export VAR12='I am available everywhere'
Después de eso, simplemente obtenga el archivo y los cambios surtirán efecto.
$ source /etc/environment $ echo $VAR12 $ sudo su $ echo $VAR12 $ exit $ ssh localhost $ echo $VAR12
Aquí, como vemos, la variable de entorno está disponible para el usuario normal, el usuario raíz, así como en la sesión de inicio de sesión remota (aquí, para localhost ).
Para borrar esta variable, simplemente elimine la entrada en /etc/environment archivo y vuelva a buscarlo o vuelva a iniciar sesión.
NOTA :Los cambios surten efecto cuando obtiene el archivo. Pero, si no es así, es posible que deba cerrar la sesión y volver a iniciarla.
Conclusión
Por lo tanto, estas son algunas formas en que podemos modificar las variables de entorno. Si encuentra algún truco nuevo e interesante para el mismo, menciónelo en sus comentarios.