Com establir i desactivar les variables d'entorn locals, d'usuari i del sistema a Linux


Les variables d'entorn són algunes variables especials que es defineixen a l'intèrpret d'ordres i que els programes necessiten durant l'execució. Poden ser definits pel sistema o per l'usuari. Les variables definides pel sistema són aquelles que s'estableixen pel sistema i són utilitzades pels programes a nivell de sistema.

Per ex. L'ordre PWD és una variable del sistema molt comuna que s'utilitza per emmagatzemar el directori de treball actual. Les variables definides per l'usuari les estableix normalment l'usuari, ja sigui temporalment per a l'intèrpret d'ordres actual o permanentment. Tot el concepte de configuració i desconfiguració de variables d'entorn gira al voltant d'algun conjunt de fitxers i poques ordres i diferents shells.

En termes més generals, una variable d'entorn pot ser de tres tipus:

Un definit per a la sessió actual. Aquestes variables d'entorn només duren fins a la sessió actual, ja sigui una sessió d'inici de sessió remota o una sessió de terminal local. Aquestes variables no s'especifiquen en cap fitxer de configuració i es creen i s'eliminen mitjançant un conjunt especial d'ordres.

Aquestes són les variables que es defineixen per a un usuari concret i es carreguen cada vegada que un usuari inicia sessió mitjançant una sessió de terminal local o aquest usuari inicia sessió mitjançant una sessió d'inici de sessió remota. Aquestes variables normalment es configuren i es carreguen des dels fitxers de configuració següents: .bashrc, .bash_profile, .bash_login, .profile codi> fitxers presents al directori inicial de l'usuari.

Aquestes són les variables d'entorn que estan disponibles a tot el sistema, és a dir, per a tots els usuaris presents en aquest sistema. Aquestes variables estan presents als fitxers de configuració de tot el sistema presents als directoris i fitxers següents: /etc/environment, /etc/profile, /etc/profile.d /, /etc/bash.bashrc. Aquestes variables es carreguen cada vegada que el sistema s'encén i qualsevol usuari inicia sessió localment o remotament.

Comprensió dels fitxers de configuració per a tot l'usuari i per a tot el sistema

Aquí, descrivim breument diversos fitxers de configuració enumerats anteriorment que contenen variables d'entorn, ja siguin a tot el sistema o específiques de l'usuari.

Aquest fitxer és un fitxer específic de l'usuari que es carrega cada vegada que l'usuari crea una nova sessió local, és a dir, en paraules senzilles, obre un nou terminal. Totes les variables d'entorn creades en aquest fitxer tindrien efecte cada vegada que s'iniciï una nova sessió local.

Aquest fitxer és un fitxer d'inici de sessió remot específic de l'usuari. Les variables d'entorn que figuren en aquest fitxer s'invoquen cada vegada que l'usuari inicia sessió de forma remota, és a dir, utilitzant la sessió ssh. Si aquest fitxer no és present, el sistema cerca els fitxers .bash_login o .profile.

Aquest fitxer és un fitxer de tot el sistema per crear, editar o eliminar qualsevol variable d'entorn. Les variables d'entorn creades en aquest fitxer són accessibles a tot el sistema, per tots i cadascun dels usuaris, tant de manera local com remota.

Fitxer bashrc de tot el sistema. Aquest fitxer es carrega una vegada per a cada usuari, cada vegada que aquest usuari obre una sessió de terminal local. Les variables d'entorn creades en aquest fitxer són accessibles per a tots els usuaris, però només mitjançant la sessió de terminal local. Quan s'accedeix a qualsevol usuari d'aquesta màquina de forma remota mitjançant una sessió d'inici de sessió remota, aquestes variables no serien visibles.

Fitxer de perfil a tot el sistema. Totes les variables creades en aquest fitxer són accessibles per tots els usuaris del sistema, però només si la sessió d'aquest usuari s'invoca de forma remota, és a dir, mitjançant l'inici de sessió remot. Cap variable d'aquest fitxer no serà accessible per a la sessió d'inici de sessió local, és a dir, quan l'usuari obre un nou terminal al seu sistema local.

Nota: les variables d'entorn creades amb fitxers de configuració de tot el sistema o d'usuari es poden eliminar eliminant-les només d'aquests fitxers. Només que després de cada canvi en aquests fitxers, tanqueu la sessió i torneu a iniciar sessió o simplement escriviu l'ordre següent al terminal perquè els canvis tinguin efecte:

$ source <file-name>

Estableix o desactiva variables d'entorn locals o de sessió a Linux

Les variables d'entorn local es poden crear mitjançant les ordres següents:

$ var=value 
OR
$ export var=value

Aquestes variables són a tota la sessió i només són vàlides per a la sessió de terminal actual. Per esborrar aquestes variables d'entorn de tota la sessió, es poden utilitzar les ordres següents:

Per defecte, l'ordre \env\ enumera totes les variables d'entorn actuals. Però, si s'utilitza amb el commutador -i, esborra temporalment totes les variables d'entorn i permet a l'usuari executar una ordre a la sessió actual en absència de totes les variables d'entorn.

$ env –i [Var=Value]… command args…

Aquí, var=value correspon a qualsevol variable d'entorn local que només vulgueu utilitzar amb aquesta ordre.

$ env –i bash

Donarà un shell bash que temporalment no tindria cap variable d'entorn. Però, a mesura que sortiu de l'intèrpret d'ordres, totes les variables es restaurarien.

Una altra manera d'esborrar la variable d'entorn local és mitjançant l'ordre unset. Per desactivar temporalment qualsevol variable d'entorn local,

$ unset <var-name>

On, var-name és el nom de la variable local que voleu desactivar o esborrar.

Una altra manera menys habitual seria establir el nom de la variable que voleu esborrar, a (buida). Això esborraria el valor de la variable local per a la sessió actual per a la qual està activa.

NOTA: FINS i tot PODEU JUGAR I CANVIAR ELS VALORS DE LES VARIABLES DEL SISTEMA O DE L'AMBIENT D'USUARI, PERÒ ELS CANVIS NOMÉS ES REFLEXIRAN A LA SESSIÓ TERMINAL ACTUAL I NO SERIEN PERMANENTS.

Apreneu a crear variables d'entorn, per a tot l'usuari i per a tot el sistema a Linux

A la secció, aprendrem a configurar o desactivar variables d'entorn locals, d'usuari i de sistema a Linux amb els exemples següents:

a.) Aquí, creem una variable local VAR1 i l'establim a qualsevol valor. A continuació, fem servir unset per eliminar aquesta variable local i, al final, s'elimina aquesta variable.

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

b.) Una altra manera de crear una variable local és utilitzant l'ordre export. La variable local creada estarà disponible per a la sessió actual. Per desactivar la variable, simplement establiu el valor de la variable a .

$ export VAR='TecMint is best Site for Linux Articles'
$ echo $VAR
$ VAR=
$ echo $VAR

c.) Aquí, hem creat una variable local VAR2 i l'hem establert en un valor. Aleshores, per executar una ordre que esborra temporalment totes les variables d'entorn locals i altres, vam executar l'ordre env –i. Aquesta comanda aquí va executar l'intèrpret d'ordres bash esborrant totes les altres variables d'entorn. Després d'introduir exit a l'intèrpret d'ordres bash invocat, es restaurarien totes les variables.

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

a.) Modifiqueu el fitxer .bashrc al vostre directori d'inici per exportar o establir la variable d'entorn que necessiteu afegir. Després d'aquesta font el fitxer, per fer que els canvis tinguin efecte. Aleshores veuríeu que la variable (CD en el meu cas), entrant en vigor. Aquesta variable estarà disponible cada vegada que obriu un terminal nou per a aquest usuari, però no per a les sessions d'inici de sessió remot.

$ vi .bashrc

Afegiu la línia següent al fitxer .bashrc a la part inferior.

export CD='This is TecMint Home'

Ara executeu l'ordre següent per fer nous canvis i provar-lo.

$ source .bashrc 
$ echo $CD

Per eliminar aquesta variable, només cal que elimineu la línia següent del fitxer .bashrc i feu-ne una nova font:

b.) Per afegir una variable que estarà disponible per a les sessions d'inici de sessió remot (és a dir, quan feu ssh a l'usuari des del sistema remot), modifiqueu el fitxer .bash_profile.

$ vi .bash_profile

Afegiu la línia següent al fitxer .bash_profile a la part inferior.

export VAR2='This is TecMint Home'

Quan s'obté aquest fitxer, la variable estarà disponible quan feu ssh a aquest usuari, però no en obrir cap terminal local nou.

$ source .bash_profile 
$ echo $VAR2

Aquí, VAR2 no està disponible inicialment, però, en fer ssh a l'usuari a localhost, la variable està disponible.

$ ssh [email 
$ echo $VAR2

Per eliminar aquesta variable, només cal que elimineu la línia del fitxer .bash_profile que heu afegit, i torneu a utilitzar el fitxer.

NOTA: Aquestes variables estaran disponibles cada vegada que inicieu sessió a l'usuari actual, però no per a altres usuaris.

a.) Per afegir una variable sense inici de sessió a tot el sistema (és a dir, una que estigui disponible per a tots els usuaris quan algun d'ells obre un terminal nou, però no quan s'accedeix a qualsevol usuari de la màquina de manera remota), afegiu la variable a /etc/bash. bashrc fitxer.

export VAR='This is system-wide variable'

Després d'això, feu l'origen del fitxer.

$ source /etc/bash.bashrc 

Ara aquesta variable estarà disponible per a cada usuari quan obri qualsevol terminal nou.

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

Aquí, la mateixa variable està disponible per a l'usuari root així com per a l'usuari normal. Podeu verificar-ho iniciant sessió amb un altre usuari.

b.) Si voleu que qualsevol variable d'entorn estigui disponible quan qualsevol dels usuaris de la vostra màquina estigui connectat de forma remota, però no en obrir cap terminal nou a la màquina local, haureu d'editar el fitxer: /etc/ perfil.

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

Després d'afegir la variable, només cal que torneu a utilitzar el fitxer. Aleshores la variable estaria disponible.

$ source /etc/profile
$ echo $VAR1

Per eliminar aquesta variable, traieu la línia del fitxer /etc/profile i torneu-ne a utilitzar.

c.) Tanmateix, si voleu afegir qualsevol entorn que vulgueu que estigui disponible a tot el sistema, tant en sessions d'inici de sessió remotes com en sessions locals (és a dir, obrir una finestra de terminal nova) per a tots els usuaris, només heu d'exportar la variable a fitxer /etc/environment.

export VAR12='I am available everywhere'

Després d'això, només heu d'obtenir el fitxer i els canvis tindrien efecte.

$ source /etc/environment
$ echo $VAR12
$ sudo su
$ echo $VAR12
$ exit
$ ssh localhost
$ echo $VAR12

Aquí, com veiem, la variable d'entorn està disponible per a l'usuari normal, l'usuari root, així com a la sessió d'inici de sessió remota (aquí, a localhost).

Per esborrar aquesta variable, només cal que elimineu l'entrada del fitxer /etc/environment i torneu-hi a utilitzar-lo o torneu a iniciar sessió.

NOTA: Els canvis tenen efecte quan s'obté l'origen del fitxer. Però, si no és així, potser haureu de tancar la sessió i tornar-la a iniciar.

Conclusió

Per tant, aquestes són poques maneres de modificar les variables d'entorn. Si trobeu algun truc nou i interessant per al mateix, feu-ne menció als vostres comentaris.