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.
Establecer y desarmar variables de entorno de Linux
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:
1. Variable del 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 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.
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 se establecen normalmente en y cargan desde los archivos de configuración siguientes: .bashrc
, .bash_profile
, .bash_login
, .profile
archivos que están presentes en el directorio personal 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 todo el sistema de archivos de configuración presentes en las 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.
.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ían 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 la sesión ssh. Si este archivo no está presente, el sistema busca archivos .bash_login
o .profile
.
/ etc / environment
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
bashrc
Archivo 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.
/ etc / profile
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 <strong>todo el </strong>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 utilizando 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:
1. Usando env
De forma predeterminada, el "env"
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 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.
2. Usando unset
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.
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 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:
1. Establecer y desarmar variables locales en Linux
a.) Aquí, creamos una variable local VAR1
y la asignamos a 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
Establecer variables de entorno local no definidas
b.) Otra forma de crear una variable local es mediante export
comando. 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
Exportar variables de entorno local en Linux
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 otras, ejecutamos el 'env –i'
comando. Este comando aquí ejecutó bash shell borrando todas las demás variables de entorno. Después de entrar '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
Use el comando Env para desarmar variables
2. Establecer y desarmar variables de entorno para todo el usuario en Linux
a.) Modifique el .bashrc
archivo en su directorio de inicio 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ías 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 .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
Establecer variables de entorno para todo el usuario en Linux
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 las sesiones de inicio de sesión remotas (es decir, cuando envíe un ssh al usuario desde el sistema remoto), modifique el .bash_profile
archivo.
$ vi .bash_profile
Agregue la siguiente línea al .bash_profile
archivo 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
inicialmente no está disponible pero, al hacer ssh al usuario en localhost, la variable pasa a estar disponible.
$ ssh [email protected] $ echo $VAR2
Exportar variables de todo el usuario en el perfil Bash
Para eliminar esta variable, simplemente elimine la línea en el .bash_profile
archivo 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.
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 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 al /etc/bash.bashrc
archivo.
export VAR='This is system-wide variable'
Agregar variables de entorno de todo el sistema
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
Verifique las variables de todo el sistema
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 alguna variable de entorno esté disponible cuando alguno 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/profile'
.
export VAR1='This is system-wide variable for only remote sessions'
Agregar variables de todo el sistema en el perfil
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 /etc/profile
archivo 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'
Agregar variable de sistema en el archivo de entorno
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
Verificar la variable de entorno para todos los usuarios
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.
Comandos de Linux