Búsqueda de sitios web

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


Las variables de entorno son algunas variables especiales que se definen en el shell y que los programas necesitan durante la ejecución. Pueden estar 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 normalmente las establece el usuario, ya sea temporalmente para el shell actual o de forma permanente. Todo el concepto de configurar y anular la configuración de variables de entorno gira en torno a un conjunto de archivos, algunos comandos y diferentes shells.

En términos más amplios, 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 del usuario

Estas son las variables que se definen para un usuario en particular y se cargan cada vez que un usuario inicia sesión mediante una sesión de terminal local o ese usuario inicia sesión mediante una sesión de inicio de sesión remota. Estas variables normalmente 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 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 cualquier usuario enciende el sistema y cada usuario inicia sesión de forma local o remota.

Comprensión de los archivos de configuración para todo el usuario y para 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 entrarán en vigor cada vez que se inicie una nueva sesión local.

.bash_profile

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

/etc/entorno

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

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 de forma remota a cualquier usuario de esa máquina a través de una sesión de inicio de sesión remota, estas variables no serán 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, mediante 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 abra una nueva terminal en su sistema local.

Nota: Las variables de entorno creadas utilizando archivos de configuración para todo el sistema o para todo el usuario se pueden eliminar eliminándolas solo de estos archivos. Solo que después de cada cambio en estos archivos, cierre sesión e inicie sesión nuevamente o simplemente escriba el siguiente comando en la 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 válidas para toda la sesión y solo son válidas para la sesión actual del terminal. Para borrar estas variables de entorno de toda la sesión, se pueden utilizar los siguientes comandos:

1. Usando entorno

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=value corresponde a cualquier variable de entorno local que desee utilizar únicamente con este comando.

env –i bash

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

2. Usando desarmado

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

unset <var-name>

Donde, var-name es el nombre de la variable local que desea desarmar 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 cual está activa.

NOTA: INCLUSO PUEDE JUGAR Y CAMBIAR LOS VALORES DEL SISTEMA O DE LAS VARIABLES DE ENTORNO DEL USUARIO, PERO LOS CAMBIOS SE REFLEJARÍAN SÓLO EN LA SESIÓN ACTUAL DE LA 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 desarmar variables de entorno locales, de usuario y de todo el sistema en Linux con los siguientes ejemplos:

1. Establecer y desarmar variables locales en Linux

a.) Aquí, creamos una variable local VAR1 y la configuramos en cualquier valor. Luego, usamos unset para eliminar esa variable local y al final se elimina esa variable.

VAR1='TecMint is best Site for Linux Articles'
echo $VAR1
unset VAR1
echo $VAR1

b.) Otra forma de crear una variable local es mediante 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 la configuramos en un valor. Luego, para ejecutar un comando que borre temporalmente todas las variables 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, todas las variables se restaurarían.

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

2. Establecer y desarmar variables de entorno para todo el usuario en Linux

a.) Modifique el archivo .bashrc en su directorio de inicio para exportar o establezca la variable de entorno que necesita agregar. Después de eso, obtenga el archivo para que los cambios surtan efecto. Entonces verás que la variable ('CD' en mi caso) tiene 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 al archivo .bashrc en la parte inferior.

export CD='This is TecMint Home'

Ahora ejecute el siguiente comando para realizar 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 buscarla:

b.) Para agregar una variable que estará disponible para sesiones de inicio de sesión remotas (es decir, cuando accede mediante ssh al usuario desde un 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'

Al obtener este archivo, la variable estará disponible cuando envíe ssh a este usuario, pero no al abrir una nueva terminal local.

source .bash_profile 
echo $VAR2

Aquí, VAR2 no está disponible inicialmente pero, al realizar ssh al usuario en localhost, la variable pasa a estar disponible.

ssh tecmint@localhost
echo $VAR2

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

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

3. Establecer y desarmar variables de entorno de todo el sistema en Linux

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 cualquiera 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 < código>/etc/bash.bashrc archivo.

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 cualquier terminal nueva.

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 inicie sesión de forma remota, pero no al abrir una nueva terminal en la máquina local, entonces debe 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 obtener 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 obtenerla.

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 usuarios, simplemente exporten la variable en el archivo /etc/environment.

export VAR12='I am available everywhere'

Después de eso, simplemente obtenga el archivo y los cambios entrarán en vigor.

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 y también en una sesión de inicio de sesión remota (aquí, en localhost).

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

NOTA: los cambios entran en vigor cuando obtienes el archivo. Pero, si no es así, es posible que tengas que cerrar 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.