Cómo configurar y desarmar variables de entorno locales, de usuario y de sistema en Linux


Las variables de entorno son algunas variables especiales que se definen en el shell y son necesarias para los programas durante la ejecución. Pueden ser definidos por el sistema o definidos por el usuario. Las variables definidas por el sistema son aquellas que se establecen por el sistema y son utilizadas por los programas de nivel del sistema.

Por ejemplo 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 normalmente las establece el usuario, ya sea de forma temporal para el shell actual o de forma permanente. Todo el concepto de establecer y deshacer las variables de entorno gira en torno a un conjunto de archivos y algunos comandos y diferentes shells.

En términos más generales, una variable de entorno puede ser de tres tipos:

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 remoto 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.

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. Por lo general, estas variables se establecen y se 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.

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 el sistema se enciende y se registra en forma local o remota por cualquier usuario.

Comprensión de los archivos de configuración de todo el usuario y del 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.

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 entrarían en vigor cada vez que se inicie una nueva sesión local.

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, mediante la sesión ssh. Si este archivo no está presente, el sistema busca archivos .bash_login o .profile .

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.

Archivo bashrc de todo el sistema. 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 a cualquier usuario de esa máquina de forma remota a través de una sesión de inicio de sesión remota, estas variables no serían visibles.

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, mediante inicio de sesión remoto. No se podrá acceder a ninguna variable de este archivo para la sesión de inicio de sesión local, es decir, cuando el usuario abra una nueva terminal en su sistema local.

Nota: Las variables de entorno creadas utilizando archivos de configuración de todo el sistema o de todo el usuario se pueden eliminar eliminándolos solo de estos archivos. Solo que después de cada cambio en estos archivos, cierre la sesión e inicie sesión nuevamente o simplemente escriba el siguiente comando en el terminal para que los cambios surtan efecto:

$ source <file-name>

Establecer o desarmar variables de entorno locales o de toda la sesión en Linux

Las variables de entorno local se pueden crear usando los siguientes comandos:

$ var=value 
OR
$ export var=value

Estas variables son para toda la sesión y son válidas solo para la sesión de terminal actual. Para borrar estas variables de entorno de toda la sesión, se pueden utilizar los siguientes comandos:

De forma predeterminada, el comando "env" enumera todas las variables de entorno actuales. Pero, si se usa con el modificador -i , 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 u003d value corresponde a cualquier variable de entorno local que desee utilizar solo con este comando.

$ env –i bash

Dará un shell bash que temporalmente no tendría ninguna de las variables de entorno. Pero, al salir del shell, se restaurarán todas las variables.

Otra forma de borrar la variable de entorno local es mediante el comando unset. Para desarmar cualquier variable de entorno local temporalmente,

$ unset <var-name>

Donde, var-name es el nombre de la variable local que desea anular o borrar.

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 REFLEJARAN SOLO EN LA SESIÓN TERMINAL ACTUAL Y NO SERÁN PERMANENTES.

Aprenda a crear variables de entorno para todo el usuario y todo el sistema en Linux

En la sección, aprenderemos cómo configurar o desarmar variables de entorno locales, de usuario y de sistema en Linux con los siguientes ejemplos:

a.) Aquí, creamos una variable local VAR1 y la configuramos 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 el comando export . La variable local creada estará disponible para la sesión actual. Para desarmar 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 le asignamos un valor. Luego, para ejecutar un comando que borre temporalmente todas las variables de entorno locales y de otro tipo, ejecutamos el comando env –i . 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án todas las variables.

$ VAR2='TecMint is best Site for Linux Articles'
$ echo $VAR2
$ env -i bash
$ echo $VAR2   

a.) Modifique el archivo .bashrc en su directorio personal para exportar o establecer 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), tomando efecto. Esta variable estará disponible cada vez que abra una nueva terminal para este usuario, pero no para sesiones de inicio de sesión remoto.

$ vi .bashrc

Agregue la siguiente línea al archivo .bashrc 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 el archivo .bashrc y vuelva a generarla:

b.) Para agregar una variable que estará disponible para sesiones de inicio de sesión remotas (es decir, cuando envíe un mensaje de texto al usuario desde el sistema remoto), modifique el archivo .bash_profile .

$ vi .bash_profile

Agregue la siguiente línea al archivo .bash_profile en la parte inferior.

export VAR2='This is TecMint Home'

Cuando obtenga este archivo, la variable estará disponible cuando envíe un mensaje a este usuario, pero no al abrir ninguna terminal local nueva.

$ source .bash_profile 
$ echo $VAR2

Aquí, VAR2 no está disponible inicialmente pero, al hacer ssh al usuario en localhost, la variable se vuelve disponible.

$ ssh [email protected]
$ echo $VAR2

Para eliminar esta variable, simplemente elimine la línea en el archivo .bash_profile que agregó y vuelva a generar el archivo.

NOTA: Estas variables estarán disponibles cada vez que inicie sesión con el usuario actual, pero no para otros usuarios.

a.) Para agregar una variable sin inicio de sesión en todo el sistema (es decir, una que esté disponible para todos los usuarios cuando alguno de ellos abre una nueva terminal, pero no cuando se accede de forma remota a cualquier usuario de la máquina) agregue la variable a /etc/bash. archivo bashrc .

export VAR='This is system-wide variable'

Después de eso, obtenga el archivo.

$ source /etc/bash.bashrc 

Ahora esta variable estará disponible para todos los usuarios cuando abra una nueva terminal.

$ echo $VAR
$ sudo su
$ echo $VAR
$ su -
$ echo $VAR

Aquí, la misma variable está disponible tanto para el usuario root como para el usuario normal. Puede verificar esto iniciando sesión con otro usuario.

b.) Si desea que cualquier variable de entorno esté disponible cuando cualquiera de los usuarios de su máquina esté conectado de forma remota, pero no al abrir una nueva terminal en la máquina local, entonces necesita editar el archivo - /etc/perfil .

export VAR1='This is system-wide variable for only remote sessions'

Después de agregar la variable, simplemente vuelva a generar el archivo. Entonces la variable estaría disponible.

$ source /etc/profile
$ echo $VAR1

Para eliminar esta variable, elimine la línea del archivo /etc/profile y vuelva a generarla.

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 Archivo/etc/environment.

export VAR12='I am available everywhere'

Después de eso, solo 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 root, así como en la sesión de inicio de sesión remoto (aquí, para localhost).

Para borrar esta variable, simplemente elimine la entrada en el archivo/etc/environment y vuelva a generarla o inicie sesión nuevamente.

NOTA: Los cambios entran en vigor 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 las que podemos modificar las variables de entorno. Si encuentra algún truco nuevo e interesante para el mismo, menciónelo en sus comentarios.