Weboldal keresés

Helyi, felhasználói és rendszerszintű környezeti változók beállítása és kikapcsolása Linuxban


A környezeti változók olyan speciális változók, amelyek shellben vannak definiálva, és amelyekre a programoknak szükségük van a végrehajtás során. Lehetnek rendszer- vagy felhasználó által meghatározottak. A rendszer által meghatározott változók azok, amelyeket rendszer állít be, és rendszerszintű programok használnak.

Mert pl. A PWD parancs egy nagyon gyakori rendszerváltozó, amely az aktuális munkakönyvtár tárolására szolgál. A felhasználó által definiált változókat általában a felhasználó állítja be, vagy ideiglenesen az aktuális shellhez, vagy véglegesen. A környezeti változók beállításának és visszavonásának teljes koncepciója bizonyos fájlok, valamint néhány parancs és különböző shell-ek körül forog.

Tágabb értelemben egy környezeti változónak három típusa lehet:

1. Helyi környezeti változó

Az aktuális munkamenethez definiált. Ezek a környezeti változók csak az aktuális munkamenetig érvényesek, legyen az távoli bejelentkezési munkamenet vagy helyi terminálmunkamenet. Ezek a változók nincsenek megadva egyetlen konfigurációs fájlban sem, és speciális parancskészlettel jönnek létre és távolíthatók el.

2. Felhasználói környezeti változó

Ezek azok a változók, amelyek egy adott felhasználó számára vannak definiálva, és minden alkalommal betöltődnek, amikor egy felhasználó bejelentkezik egy helyi terminál munkamenet használatával, vagy amikor a felhasználó bejelentkezik távoli bejelentkezési munkamenettel. Ezeket a változókat általában a következő konfigurációs fájlok állítják be és töltik be: .bashrc, .bash_profile, .bash_login, .profile fájlok, amelyek a felhasználó kezdőkönyvtárában találhatók.

3. Rendszerszintű környezeti változók

Ezek azok a környezeti változók, amelyek a rendszer egészében elérhetők, azaz az adott rendszeren jelen lévő összes felhasználó számára. Ezek a változók a rendszerszintű konfigurációs fájlokban találhatók meg a következő könyvtárakban és fájlokban: /etc/environment, /etc/profile, /etc/profile.d /, /etc/bash.bashrc. Ezek a változók minden alkalommal betöltődnek, amikor a rendszert bekapcsolja, és bármely felhasználó helyileg vagy távolról bejelentkezik.

A felhasználói és rendszerszintű konfigurációs fájlok megértése

Itt röviden ismertetjük a fent felsorolt különféle konfigurációs fájlokat, amelyek rendszerszintű vagy felhasználóspecifikus környezeti változókat tartalmaznak.

.bashrc

Ez a fájl felhasználóspecifikus fájl, amely minden alkalommal betöltődik, amikor a felhasználó új helyi munkamenetet hoz létre, azaz egyszerű szavakkal új terminált nyit meg. Az ebben a fájlban létrehozott környezeti változók minden új helyi munkamenet indításakor érvénybe lépnek.

.bash_profile

Ez a fájl egy felhasználóspecifikus távoli bejelentkezési fájl. Az ebben a fájlban felsorolt környezeti változók minden alkalommal meghívódnak, amikor a felhasználó távolról, azaz ssh-munkamenet használatával bejelentkezik. Ha ez a fájl nincs jelen, a rendszer a .bash_login vagy a .profile fájlokat keresi.

/etc/environment

Ez a fájl rendszerszintű fájl bármely környezeti változó létrehozásához, szerkesztéséhez vagy eltávolításához. Az ebben a fájlban létrehozott környezeti változók az egész rendszerben elérhetők minden felhasználó számára, helyileg és távolról egyaránt.

/etc/bash.bashrc

Rendszerszintű bashrc fájl. Ez a fájl minden felhasználó számára egyszer betöltődik, minden alkalommal, amikor a felhasználó megnyit egy helyi terminálmunkamenetet. Az ebben a fájlban létrehozott környezeti változók minden felhasználó számára elérhetők, de csak a helyi terminálmunkameneten keresztül. Ha a gép bármely felhasználóját távolról elérik egy távoli bejelentkezési munkameneten keresztül, ezek a változók nem lesznek láthatók.

/etc/profile

Rendszerszintű profilfájl. Az ebben a fájlban létrehozott összes változó a rendszer minden felhasználója számára elérhető, de csak akkor, ha az adott felhasználó munkamenetét távolról, azaz távoli bejelentkezéssel hívják meg. Ebben a fájlban egyetlen változó sem lesz elérhető a helyi bejelentkezési munkamenet során, azaz amikor a felhasználó új terminált nyit meg a helyi rendszerén.

Megjegyzés: A rendszerszintű vagy felhasználói konfigurációs fájlokkal létrehozott környezeti változók eltávolításukkal eltávolíthatók csak ezekből a fájlokból. Csak annyi, hogy a fájlok minden módosítása után vagy jelentkezzen ki, majd jelentkezzen be újra, vagy írja be a következő parancsot a terminálon, hogy a változtatások érvénybe lépjenek:

source <file-name>

Helyi vagy munkamenet-szintű környezeti változók beállítása vagy visszavonása Linuxban

A Helyi környezeti változók a következő parancsokkal hozhatók létre:

var=value 
OR
export var=value

Ezek a változók a munkamenetre kiterjednek, és csak az aktuális terminálmunkamenetre érvényesek. Ezen munkamenet-szintű környezeti változók törléséhez a következő parancsok használhatók:

1. Az env

Alapértelmezés szerint az "env" parancs felsorolja az összes aktuális környezeti változót. De ha a '-i' kapcsolóval együtt használjuk, akkor ideiglenesen törli az összes környezeti változót, és lehetővé teszi a felhasználó számára, hogy parancsot hajtson végre az aktuális munkamenetben az összes környezeti változó hiányában.

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

Itt a var=value minden olyan helyi környezeti változónak felel meg, amelyet csak ezzel a paranccsal kíván használni.

env –i bash

Bash shell-t ad, amely átmenetileg nem rendelkezik a környezeti változókkal. De ahogy kilép a héjból, az összes változó visszaáll.

2. Unset használata

A helyi környezeti változó törlésének másik módja az unset parancs használata. A helyi környezeti változók ideiglenes hatástalanításához

unset <var-name>

Ahol a var-name annak a helyi változónak a neve, amelyet törölni vagy törölni szeretne.

3. Állítsa a változó nevét "

Egy másik kevésbé elterjedt módszer az, ha a törölni kívánt változó nevét '' (Üres) értékre állítja. Ez törli a helyi változó értékét az aktuális munkamenethez, amelyre az aktív.

MEGJEGYZÉS – A RENDSZER VAGY FELHASZNÁLÓI KÖRNYEZETVÁLTOZÓK ÉRTÉKEIVEL IS JÁTSZHAT, ÉS MEGVÁLTOZTATHAT, DE A VÁLTOZÁSOK CSAK A JELENLEGI TERMINÁLIS MUNKATÁRSSÁGBAN VISSZAÜKÖNNEK, ÉS NEM LENNEK ÁLLANDÓAK.

Ismerje meg, hogyan hozhat létre felhasználói és rendszerszintű környezeti változókat Linuxban

Ebben a részben az alábbi példákkal megtudjuk, hogyan lehet beállítani vagy hatástalanítani a helyi, a felhasználó és a rendszerszintű környezeti változókat Linuxban:

1. Helyi változók beállítása és visszavonása Linuxban

a.) Itt létrehozunk egy VAR1 helyi változót, és tetszőleges értékre állítjuk be. Ezután az unset segítségével eltávolítjuk a helyi változót, és a végén eltávolítjuk azt a változót.

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

b.) A helyi változó létrehozásának másik módja az export parancs használata. A létrehozott helyi változó elérhető lesz az aktuális munkamenethez. A változó hatástalanításához egyszerűen állítsa be a változó értékét ''-ra.

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

c.) Itt létrehoztunk egy VAR2 helyi változót, és beállítottuk azt egy értékre. Ezután egy parancs futtatásához, amely ideiglenesen töröl minden helyi és egyéb környezeti változót, végrehajtottuk az 'env –i' parancsot. Ez a parancs itt végrehajtotta a bash shellt az összes többi környezeti változó törlésével. Az 'exit' beírása után a meghívott bash shellben az összes változó visszaáll.

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

2. Felhasználói szintű környezeti változók beállítása és visszavonása Linuxban

a.) Módosítsa a .bashrc fájlt a saját könyvtárában a hozzáadni kívánt környezeti változó exportálásához vagy beállításához. Ezt követően forrásból a fájlt, hogy a módosítások érvénybe lépjenek. Ekkor a változó (az én esetemben 'CD') érvénybe lép. Ez a változó minden alkalommal elérhető lesz, amikor új terminált nyit ehhez a felhasználóhoz, távoli bejelentkezési munkamenetekhez azonban nem.

vi .bashrc

Adja hozzá a következő sort a .bashrc fájlhoz az alján.

export CD='This is TecMint Home'

Most futtassa a következő parancsot az új módosítások végrehajtásához és teszteléséhez.

source .bashrc 
echo $CD

A változó eltávolításához egyszerűen távolítsa el a következő sort a .bashrc fájlból, és adja meg újra a forrást:

b.) Olyan változó hozzáadásához, amely elérhető lesz a távoli bejelentkezési munkamenetekhez (azaz amikor ssh-t küld a felhasználónak a távoli rendszerről), módosítsa a .bash_profile fájlt.

vi .bash_profile

Adja hozzá a következő sort a .bash_profile fájlhoz az alján.

export VAR2='This is TecMint Home'

A fájl beszerzésekor a változó elérhető lesz, amikor ssh-t küld ennek a felhasználónak, de nem új helyi terminál megnyitásakor.

source .bash_profile 
echo $VAR2

Itt a VAR2 kezdetben nem elérhető, de amikor ssh-t hajt végre a felhasználónak a localhost-on, a változó elérhetővé válik.

ssh tecmint@localhost
echo $VAR2

A változó eltávolításához egyszerűen távolítsa el a hozzáadott sort a .bash_profile fájlból, és adja meg a fájl forrását.

MEGJEGYZÉS: Ezek a változók minden alkalommal elérhetők lesznek, amikor bejelentkezik az aktuális felhasználóba, de más felhasználók számára nem.

3. Állítsa be és törölje a rendszerszintű környezeti változókat Linuxban

a.) A rendszerszintű bejelentkezés nélküli változó hozzáadásához (azaz minden felhasználó számára elérhető, amikor bármelyikük új terminált nyit, de nem, ha a gép bármely felhasználója távolról elérhető), adja hozzá a változót a < mezőhöz./etc/bash.bashrc fájlt.

export VAR='This is system-wide variable'

Ezt követően szerezze be a fájl forrását.

source /etc/bash.bashrc 

Ez a változó mostantól minden felhasználó számára elérhető lesz, amikor új terminált nyit.

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

Itt ugyanaz a változó elérhető a root és a normál felhasználók számára. Ezt úgy ellenőrizheti, hogy bejelentkezik egy másik felhasználóhoz.

b.) Ha azt szeretné, hogy bármely környezeti változó elérhető legyen, amikor a számítógépén lévő bármely felhasználó távolról bejelentkezik, de nem új terminál megnyitásakor a helyi gépen, akkor szerkesztenie kell a fájlt. – '/etc/profile'.

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

A változó hozzáadása után állítsa be újra a fájl forrását. Akkor a változó elérhető lenne.

source /etc/profile
echo $VAR1

A változó eltávolításához távolítsa el a sort az /etc/profile fájlból, és adja meg újra a forrást.

c.) Ha azonban olyan környezetet szeretne hozzáadni, amelyet az egész rendszerben elérhetővé szeretne tenni, mind a távoli bejelentkezési munkamenetekben, mind a helyi munkamenetekben (azaz új terminálablak megnyitásakor) felhasználók, csak exportálják a változót az /etc/environment fájlba.

export VAR12='I am available everywhere'

Ezután csak forrásolja a fájlt, és a módosítások érvénybe lépnek.

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

Itt, amint látjuk, a környezeti változó elérhető normál felhasználó, root felhasználó, valamint távoli bejelentkezési munkamenet esetén (itt, a localhost címen).

A változó törléséhez egyszerűen távolítsa el a bejegyzést az /etc/environ fájlból, és szerezze be újra, vagy jelentkezzen be újra.

MEGJEGYZÉS: A változtatások a fájl forrásakor lépnek életbe. De ha nem, akkor lehet, hogy ki kell jelentkeznie, majd újra be kell jelentkeznie.

Következtetés

Így ez néhány mód a környezeti változók módosítására. Ha bármilyen új és érdekes trükköt talál ugyanarra, írja meg megjegyzéseiben.