Hvordan sette inn og deaktivere lokale, bruker- og systemomfattende miljøvariabler i Linux


Miljøvariabler er noen spesielle variabler som er definert i shell og som trengs av programmer mens de kjøres. De kan være systemdefinerte eller brukerdefinerte. Systemdefinerte variabler er de som er satt av systemet og brukes av programmer på systemnivå.

For f.eks. PWD-kommandoen er en veldig vanlig systemvariabel som brukes til å lagre den nåværende arbeidskatalogen. Brukerdefinerte variabler settes vanligvis av brukeren, enten midlertidig for gjeldende skall eller permanent. Hele konseptet med å sette inn og fjerne miljøvariabler dreier seg om et sett med filer og få kommandoer og forskjellige skjell.

I bredere termer kan en miljøvariabel være i tre typer:

1. Nærmiljøvariabel

En definert for gjeldende økt. Disse miljøvariablene varer bare til gjeldende økt, enten det er ekstern påloggingsøkt eller lokal terminaløkt. Disse variablene er ikke spesifisert i noen konfigurasjonsfiler og opprettes og fjernes ved å bruke et spesielt sett med kommandoer.

2. Brukermiljøvariabel

Dette er variablene som er definert for en bestemt bruker og lastes inn hver gang en bruker logger på ved hjelp av en lokal terminaløkt, eller den brukeren er logget på ved hjelp av ekstern påloggingsøkt. Disse variablene settes vanligvis inn i og lastes inn fra følgende konfigurasjonsfiler: .bashrc, .bash_profile, .bash_login, .profile kode> filer som er tilstede i brukerens hjemmekatalog.

3. Systemomfattende miljøvariabler

Dette er miljøvariablene som er tilgjengelig over hele systemet, det vil si for alle brukerne som er tilstede på det systemet. Disse variablene finnes i systemomfattende konfigurasjonsfiler som finnes i følgende kataloger og filer: /etc/environment, /etc/profile, /etc/profile.d /, /etc/bash.bashrc. Disse variablene lastes hver gang systemet slås på og logges på enten lokalt eller eksternt av en hvilken som helst bruker.

Forstå brukeromfattende og systemomfattende konfigurasjonsfiler

Her beskriver vi kort ulike konfigurasjonsfiler oppført ovenfor som inneholder miljøvariabler, enten systemomfattende eller brukerspesifikke.

.bashrc

Denne filen er brukerspesifikk fil som lastes hver gang brukeren oppretter en ny lokal sesjon, dvs. med enkle ord, åpner en ny terminal. Alle miljøvariabler opprettet i denne filen vil tre i kraft hver gang en ny lokal økt startes.

.bash_profile

Denne filen er brukerspesifikk ekstern påloggingsfil. Miljøvariabler oppført i denne filen aktiveres hver gang brukeren er eksternt logget på, dvs. ved hjelp av ssh-økt. Hvis denne filen ikke finnes, ser systemet etter enten .bash_login- eller .profile-filer.

/etc/environment

Denne filen er systemomfattende fil for å lage, redigere eller fjerne eventuelle miljøvariabler. Miljøvariabler som er opprettet i denne filen er tilgjengelige i hele systemet, av hver enkelt bruker, både lokalt og eksternt.

/etc/bash.bashrc

Systemomfattende bashrc-fil. Denne filen lastes en gang for hver bruker, hver gang den brukeren åpner en lokal terminaløkt. Miljøvariabler opprettet i denne filen er tilgjengelige for alle brukere, men bare gjennom lokal terminaløkt. Når en bruker på den maskinen får ekstern tilgang via en ekstern påloggingsøkt, vil disse variablene ikke være synlige.

/etc/profile

Systemomfattende profilfil. Alle variablene som er opprettet i denne filen er tilgjengelige for alle brukere på systemet, men bare hvis den brukerens økt påkalles eksternt, dvs. via ekstern pålogging. Enhver variabel i denne filen vil ikke være tilgjengelig for lokal påloggingsøkt, dvs. når brukeren åpner en ny terminal på sitt lokale system.

Merk: Miljøvariabler opprettet med systemomfattende eller brukeromfattende konfigurasjonsfiler kan fjernes ved å fjerne dem kun fra disse filene. Bare at etter hver endring i disse filene, enten logg ut og logg på igjen eller bare skriv følgende kommando på terminalen for at endringer skal tre i kraft:

source <file-name>

Sett eller deaktiver lokale eller øktomfattende miljøvariabler i Linux

Lokale miljøvariabler kan opprettes ved hjelp av følgende kommandoer:

var=value 
OR
export var=value

Disse variablene er øktvide og er kun gyldige for gjeldende terminaløkt. For å fjerne disse miljøvariablene for hele økten kan følgende kommandoer brukes:

1. Bruke env

Som standard viser kommandoen "env" alle gjeldende miljøvariabler. Men hvis den brukes med '-i'-bryteren, fjerner den midlertidig alle miljøvariablene og lar brukeren utføre en kommando i gjeldende sesjon i fravær av alle miljøvariablene.

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

Her tilsvarer var=verdi en hvilken som helst lokal miljøvariabel som du kun vil bruke med denne kommandoen.

env –i bash

Vil gi bash-skall som midlertidig ikke ville ha noen av miljøvariablene. Men når du går ut av skallet, vil alle variablene bli gjenopprettet.

2. Bruke deaktivert

En annen måte å slette lokal miljøvariabel er ved å bruke unset-kommandoen. For å deaktivere en lokal miljøvariabel midlertidig,

unset <var-name>

Hvor, var-name er navnet på den lokale variabelen som du vil fjerne eller slette.

3. Sett variabelnavnet til "

En annen mindre vanlig måte ville være å sette navnet på variabelen du vil slette, til '' (Tom). Dette vil fjerne verdien av den lokale variabelen for gjeldende økt som den er aktiv for.

MERK – DU KAN TIL OG MED LEKKE MED OG ENDRE VERDIENE PÅ SYSTEM- ELLER BRUKERMILJØVARIABLER, MEN ENDRINGER VIL BARE GJELTE I GJELDENDE TERMINALØKT OG VIL IKKE VÆRE PERMANENTE.

Lær hvordan du oppretter, brukeromfattende og systemomfattende miljøvariabler i Linux

I avsnittet skal vi lære hvordan du setter inn eller deaktiverer lokale, bruker- og systemomfattende miljøvariabler i Linux med eksempler nedenfor:

1. Sett og deaktiver lokale variabler i Linux

a.) Her lager vi en lokal variabel VAR1 og setter den til en hvilken som helst verdi. Deretter bruker vi unset for å fjerne den lokale variabelen, og på slutten fjernes den variabelen.

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

b.) En annen måte å lage en lokal variabel på er å bruke kommandoen export. Den lokale variabelen som er opprettet, vil være tilgjengelig for gjeldende økt. For å deaktivere variabelen setter du bare verdien av variabelen til ''.

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

c.) Her opprettet vi en lokal variabel VAR2 og satte den til en verdi. For å kjøre en kommando som midlertidig fjerner alle lokale og andre miljøvariabler, utførte vi kommandoen 'env –i'. Denne kommandoen her utførte bash-skall ved å fjerne alle andre miljøvariabler. Etter å ha skrevet inn 'exit' på det påkalte bash-skallet, vil alle variabler bli gjenopprettet.

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

2. Angi og deaktiver brukeromfattende miljøvariabler i Linux

a.) Endre .bashrc-filen i hjemmekatalogen din for å eksportere eller angi miljøvariabelen du må legge til. Etter at kilde filen, for å få endringene til å tre i kraft. Da vil du se at variabelen ('CD' i mitt tilfelle) trer i kraft. Denne variabelen vil være tilgjengelig hver gang du åpner en ny terminal for denne brukeren, men ikke for ekstern påloggingsøkter.

vi .bashrc

Legg til følgende linje i .bashrc-filen nederst.

export CD='This is TecMint Home'

Kjør nå følgende kommando for å ta nye endringer og teste den.

source .bashrc 
echo $CD

For å fjerne denne variabelen, fjern bare følgende linje i .bashrc-filen og resource den:

b.) For å legge til en variabel som vil være tilgjengelig for ekstern påloggingsøkter (dvs. når du ssh til brukeren fra eksternt system), endre filen .bash_profile.

vi .bash_profile

Legg til følgende linje i filen .bash_profile nederst.

export VAR2='This is TecMint Home'

Når du henter denne filen, vil variabelen være tilgjengelig når du ssh til denne brukeren, men ikke når du åpner en ny lokal terminal.

source .bash_profile 
echo $VAR2

Her er VAR2 ikke tilgjengelig i utgangspunktet, men ved å gjøre ssh til brukeren på localhost, blir variabelen tilgjengelig.

ssh tecmint@localhost
echo $VAR2

For å fjerne denne variabelen, fjern bare linjen i .bash_profile-filen som du la til, og resource filen.

MERK: Disse variablene vil være tilgjengelige hver gang du er logget på gjeldende bruker, men ikke for andre brukere.

3. Sett og deaktiver systemomfattende miljøvariabler i Linux

a.) For å legge til en systemomfattende variabel uten pålogging (dvs. en som er tilgjengelig for alle brukere når noen av dem åpner ny terminal, men ikke når en bruker av maskinen er eksterntilgang), legg til variabelen til /etc/bash.bashrc fil.

export VAR='This is system-wide variable'

Etter det, kilde filen.

source /etc/bash.bashrc 

Nå vil denne variabelen være tilgjengelig for hver bruker når han åpner en ny terminal.

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

Her er samme variabel tilgjengelig for root-bruker så vel som normal bruker. Du kan bekrefte dette ved å logge på en annen bruker.

b.) Hvis du vil at en miljøvariabel skal være tilgjengelig når noen av brukerne på maskinen din er eksternt logget på, men ikke når du åpner en ny terminal på lokal maskin, må du redigere filen – '/etc/profile'.

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

Etter å ha lagt til variabelen, bare resource filen. Da ville variabelen være tilgjengelig.

source /etc/profile
echo $VAR1

For å fjerne denne variabelen, fjern linjen fra /etc/profile-filen og resource den.

c.) Men hvis du ønsker å legge til et hvilket som helst miljø som du ønsker skal være tilgjengelig i hele systemet, både på eksterne påloggingsøkter og lokale økter (dvs. åpne et nytt terminalvindu) for alle brukere, bare eksporter variabelen i filen /etc/environment.

export VAR12='I am available everywhere'

Etter det er det bare å hente filen og endringene trer i kraft.

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

Her, som vi ser, er miljøvariabelen tilgjengelig for normal bruker, rotbruker, så vel som for ekstern påloggingsøkt (her, til localhost).

For å fjerne denne variabelen, fjern bare oppføringen i /etc/environment-filen og resource den eller logg på igjen.

MERK: Endringer trer i kraft når du henter filen. Men hvis ikke, må du kanskje logge ut og logge på igjen.

Konklusjon

Dermed er dette få måter vi kan endre miljøvariablene på. Hvis du finner noen nye og interessante triks for det samme, nevne det i kommentarene dine.