Kako postaviti i poništiti lokalne, korisničke i sistemske varijable okruženja u Linuxu


Varijable okruženja su neke posebne varijable koje su definirane u ljusci i potrebne su programima tokom izvršavanja. Mogu biti definirani sustavom ili korisnički definirani. Sistemski definirane varijable su one koje postavlja sistem i koje koriste programi na nivou sistema.

Za npr. PWD komanda je vrlo uobičajena sistemska varijabla koja se koristi za pohranjivanje trenutnog radnog direktorija. Korisnički definirane varijable obično postavlja korisnik, bilo privremeno za trenutnu ljusku ili trajno. Cijeli koncept postavljanja i poništavanja varijabli okruženja vrti se oko nekog skupa datoteka i nekoliko naredbi i različitih školjki.

Šire rečeno, varijabla okruženja može biti u tri tipa:

1. Varijabla lokalne sredine

Jedan definiran za trenutnu sesiju. Ove varijable okruženja traju samo do trenutne sesije, bilo da se radi o sesiji udaljene prijave ili sesiji lokalnog terminala. Ove varijable nisu navedene ni u jednom konfiguracijskom fajlu i kreiraju se i uklanjaju korištenjem posebnog skupa naredbi.

2. Varijabla korisničkog okruženja

To su varijable koje su definirane za određenog korisnika i učitavaju se svaki put kada se korisnik prijavi koristeći sesiju lokalnog terminala ili kada je taj korisnik prijavljen korištenjem sesije udaljene prijave. Ove varijable se obično postavljaju i učitavaju iz sljedećih konfiguracijskih datoteka: .bashrc, .bash_profile, .bash_login, .profile datoteke koje su prisutne u korisničkom početnom direktoriju.

3. Sistemske varijable okruženja

Ovo su varijable okruženja koje su dostupne u cijelom sistemu, odnosno za sve korisnike koji su prisutni na tom sistemu. Ove varijable su prisutne u konfiguracijskim datotekama za cijeli sistem prisutnim u sljedećim direktorijima i datotekama: /etc/environment, /etc/profile, /etc/profile.d /, /etc/bash.bashrc. Ove varijable se učitavaju svaki put kada se sistem uključi i prijavi bilo lokalno ili daljinski od strane bilo kojeg korisnika.

Razumijevanje konfiguracijskih datoteka za cijeli i cijeli sistem

Ovdje ukratko opisujemo različite gore navedene konfiguracijske datoteke koje sadrže varijable okruženja, bilo za cijeli sistem ili specifične za korisnika.

.bashrc

Ova datoteka je datoteka specifična za korisnika koja se učitava svaki put kada korisnik kreira novu lokalnu sesiju, odnosno jednostavnim riječima, otvori novi terminal. Sve varijable okruženja kreirane u ovoj datoteci će stupiti na snagu svaki put kada se pokrene nova lokalna sesija.

.bash_profile

Ova datoteka je datoteka za udaljenu prijavu specifična za korisnika. Varijable okruženja navedene u ovoj datoteci se pozivaju svaki put kada je korisnik prijavljen na daljinu, tj. pomoću ssh sesije. Ako ovaj fajl nije prisutan, sistem traži datoteke .bash_login ili .profile.

/etc/environment

Ova datoteka je datoteka cijelog sistema za kreiranje, uređivanje ili uklanjanje bilo koje varijabli okruženja. Varijable okruženja kreirane u ovoj datoteci dostupne su u cijelom sistemu, svakom korisniku, kako lokalno tako i udaljeno.

/etc/bash.bashrc

Sistemski bashrc fajl. Ova datoteka se učitava jednom za svakog korisnika, svaki put kada taj korisnik otvori sesiju lokalnog terminala. Varijable okruženja kreirane u ovoj datoteci dostupne su svim korisnicima, ali samo putem lokalne terminalske sesije. Kada se bilo kom korisniku na toj mašini pristupi daljinski putem sesije udaljene prijave, ove varijable ne bi bile vidljive.

/etc/profile

Datoteka profila širom sistema. Svim varijablama kreiranim u ovoj datoteci može pristupiti svaki korisnik na sistemu, ali samo ako se sesija tog korisnika poziva na daljinu, odnosno putem udaljene prijave. Nijedna varijabla u ovoj datoteci neće biti dostupna za sesiju lokalne prijave, tj. kada korisnik otvori novi terminal na svom lokalnom sistemu.

Napomena: Varijable okruženja kreirane pomoću konfiguracijskih datoteka na cijelom sistemu ili korisničkog mogu se ukloniti njihovim uklanjanjem samo iz ovih fajlova. Samo da se nakon svake promjene u ovim datotekama ili odjavite i ponovo prijavite ili jednostavno ukucajte sljedeću naredbu na terminalu da promjene stupe na snagu:

source <file-name>

Postavite ili poništite lokalne varijable ili varijable okruženja na nivou cijele sesije u Linuxu

Varijable lokalnog okruženja se mogu kreirati korištenjem sljedećih naredbi:

var=value 
OR
export var=value

Ove varijable su široke sesije i važe samo za trenutnu terminalsku sesiju. Za brisanje ovih varijabli okruženja za cijelu sesiju mogu se koristiti sljedeće naredbe:

1. Korištenje env

Podrazumevano, naredba "env" navodi sve trenutne varijable okruženja. Ali, ako se koristi sa prekidačem '-i', on privremeno briše sve varijable okruženja i dozvoljava korisniku da izvrši naredbu u trenutnoj sesiji u nedostatku svih varijabli okruženja.

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

Ovdje var=value odgovara bilo kojoj lokalnoj varijabli okruženja koju želite koristiti samo sa ovom komandom.

env –i bash

Dat će bash shell koji privremeno ne bi imao nijednu varijablu okruženja. Ali, kada izađete iz ljuske, sve varijable će biti vraćene.

2. Korištenje unset

Drugi način za brisanje varijable lokalnog okruženja je korištenje naredbe unset. Da privremeno poništite bilo koju varijablu lokalnog okruženja,

unset <var-name>

Gdje je var-name ime lokalne varijable koju želite poništiti ili izbrisati.

3. Postavite ime varijable na ”

Drugi manje uobičajen način bi bio da postavite ime varijable koju želite da obrišete na '' (prazno). Ovo bi obrisalo vrijednost lokalne varijable za trenutnu sesiju za koju je aktivna.

NAPOMENA – ČAK SE MOŽETE IGRATI I PROMIJENITI VRIJEDNOSTI SISTEMSKIH ILI VRIJEDNOSTI KORISNIČKOG OKRUŽENJA, ALI PROMJENE BI SE ODRAŽAVALE SAMO U TRENUTNOJ TERMINALNOJ SESIJI I NE BI BILO STVARNE.

Naučite kako kreirati varijable okruženja na nivou korisnika i širom sistema u Linuxu

U odjeljku ćemo naučiti kako postaviti ili poništiti lokalne, korisničke i sistemske varijable okruženja u Linuxu sa sljedećim primjerima:

1. Postavite i poništite lokalne varijable u Linuxu

a.) Ovdje kreiramo lokalnu varijablu VAR1 i postavljamo je na bilo koju vrijednost. Zatim koristimo unset da uklonimo tu lokalnu varijablu, a na kraju se ta varijabla uklanja.

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

b.) Drugi način kreiranja lokalne varijable je korištenje naredbe export. Kreirana lokalna varijabla bit će dostupna za trenutnu sesiju. Za poništavanje varijable jednostavno postavite vrijednost varijable na ''.

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

c.) Ovdje smo kreirali lokalnu varijablu VAR2 i postavili je na vrijednost. Zatim, da bismo pokrenuli naredbu koja privremeno briše sve lokalne i druge varijable okruženja, izvršili smo naredbu 'env –i'. Ova naredba ovdje je izvršila bash shell brisanjem svih ostalih varijabli okruženja. Nakon unosa 'exit' u pozvanu bash shell, sve varijable će biti vraćene.

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

2. Postavite i poništite varijable korisničkog okruženja u Linuxu

a.) Izmijenite .bashrc datoteku u svom početnom direktoriju da izvezete ili postavite varijablu okruženja koju trebate dodati. Nakon toga izvor fajl, kako bi promjene stupile na snagu. Tada biste vidjeli kako varijabla ('CD' u mom slučaju) stupa na snagu. Ova varijabla će biti dostupna svaki put kada otvorite novi terminal za ovog korisnika, ali ne i za sesije udaljene prijave.

vi .bashrc

Dodajte sljedeći red u datoteku .bashrc na dnu.

export CD='This is TecMint Home'

Sada pokrenite sljedeću naredbu da preuzmete nove promjene i testirate je.

source .bashrc 
echo $CD

Da biste uklonili ovu varijablu, samo uklonite sljedeći red u datoteci .bashrc i ponovo je izvor:

b.) Da biste dodali varijablu koja će biti dostupna za sesije udaljene prijave (tj. kada ssh korisniku sa udaljenog sistema), izmijenite datoteku .bash_profile.

vi .bash_profile

Dodajte sljedeći red u datoteku .bash_profile na dnu.

export VAR2='This is TecMint Home'

Kada dobijete ovu datoteku, varijabla će biti dostupna kada ssh ovom korisniku, ali ne i pri otvaranju bilo kojeg novog lokalnog terminala.

source .bash_profile 
echo $VAR2

Ovdje VAR2 nije inicijalno dostupan, ali, kada se radi ssh korisniku na lokalnom hostu, varijabla postaje dostupna.

ssh tecmint@localhost
echo $VAR2

Da biste uklonili ovu varijablu, samo uklonite liniju u datoteci .bash_profile koju ste dodali i ponovo izvorite datoteku.

NAPOMENA: Ove varijable će biti dostupne svaki put kada se prijavite na trenutnog korisnika, ali ne i za druge korisnike.

3. Postavite i poništite varijable sistemskog okruženja u Linuxu

a.) Da biste dodali varijablu bez prijave na cijelom sistemu (tj. onu koja je dostupna svim korisnicima kada bilo koji od njih otvori novi terminal, ali ne i kada se bilo kojem korisniku stroja pristupa daljinski), dodajte varijablu u /etc/bash.bashrc fajl.

export VAR='This is system-wide variable'

Nakon toga, izvorni fajl.

source /etc/bash.bashrc 

Sada će ova varijabla biti dostupna svakom korisniku kada otvori bilo koji novi terminal.

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

Ovdje je ista varijabla dostupna za root korisnika kao i za normalnog korisnika. Ovo možete provjeriti prijavom na drugog korisnika.

b.) Ako želite da bilo koja varijabla okruženja bude dostupna kada je bilo koji korisnik na vašem računalu prijavljen na daljinu, ali ne i prilikom otvaranja novog terminala na lokalnom računalu, tada morate urediti datoteku – '/etc/profile'.

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

Nakon dodavanja varijable, samo ponovo izvor datoteke. Tada bi varijabla bila dostupna.

source /etc/profile
echo $VAR1

Da biste uklonili ovu varijablu, uklonite red iz datoteke /etc/profile i ponovo je izvor.

c.) Međutim, ako želite da dodate bilo koje okruženje za koje želite da bude dostupno u cijelom sistemu, na obje sesije udaljene prijave kao i na lokalne sesije (tj. otvaranje novog prozora terminala) za sve korisnicima, samo izvezite varijablu u datoteku /etc/environment.

export VAR12='I am available everywhere'

Nakon toga samo izvor datoteke i promjene će stupiti na snagu.

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

Ovdje, kao što vidimo, varijabla okruženja je dostupna za normalnog korisnika, root korisnika, kao i na sesiji udaljene prijave (ovdje, na localhost).

Da izbrišete ovu varijablu, samo uklonite unos u datoteci /etc/environment i ponovo ga pronađite ili se prijavite ponovo.

NAPOMENA: Promjene stupaju na snagu kada dobijete izvorni fajl. Ali, ako ne, možda ćete se morati odjaviti i ponovo prijaviti.

Zaključak

Dakle, ovo je nekoliko načina na koje možemo modificirati varijable okruženja. Ako nađete nove i zanimljive trikove za iste, navedite ih u komentarima.