Android

A környezeti változók beállítása és listázása a linuxban

Customizing Cloud9 and the CS50 IDE by Dan Armendariz

Customizing Cloud9 and the CS50 IDE by Dan Armendariz

Tartalomjegyzék:

Anonim

A Linux és az Unix alapú rendszerekben a környezeti változók a rendszerben tárolt dinamikus elnevezett értékek, amelyeket a héjban vagy alhéjban elindított alkalmazások használnak. Egyszerű szavakkal: egy környezeti változó egy névvel és a hozzá tartozó értékkel rendelkező változó.

A környezeti változók lehetővé teszik a rendszer működésének és az alkalmazások viselkedésének testreszabását. Például a környezeti változó információkat tárolhat az alapértelmezett szövegszerkesztőről vagy a böngészőről, a futtatható fájlok elérési útjáról, vagy a rendszer területi és billentyűzetkiosztási beállításairól.

Ebben az útmutatóban elmagyarázza, hogy elolvassa és beállítja a környezeti és a shell változókat.

Környezeti és héjváltozók

A változók formátuma a következő:

KEY=value KEY="Some other value" KEY=value1:value2

  • A változók nevei kis- és nagybetűket érzékenyek. Megállapodás szerint a környezeti változóknak FELSŐ ESET nevekkel kell rendelkezniük. Ha több értéket rendelnek a változóhoz, akkor azokat kettőspont : karakter választja el egymástól. Az equals = szimbólum körül nincs hely.

A változókat két fő kategóriába lehet sorolni: környezeti és héjváltozók.

A környezeti változók olyan változók, amelyek rendelkezésre állnak az egész rendszerben, és öröklődnek az összes kikerült gyermekfolyamatban és héjában.

A héjváltozók olyan változók, amelyek csak az aktuális héjpéldányra vonatkoznak. Minden héj, például a zsh és a bash , rendelkezik saját belső héjváltozóval.

Számos olyan parancs érhető el, amelyek lehetővé teszik a környezeti változók felsorolását és beállítását a Linuxon:

  • env - A parancs lehetővé teszi egy másik program futtatását egyéni környezetben a jelenlegi módosítása nélkül. Érvény nélkül használva kinyomtatja az aktuális környezeti változók listáját. printenv - A parancs az összes vagy a megadott környezeti változót kinyomtatja. set - A parancs beállítja vagy visszaállítja a shell változókat. Ha argumentum nélkül használják, akkor kinyomtatja az összes változó listáját, beleértve a környezeti és a héj változókat, valamint a héj függvényeket. unset - A parancs törli a shell és a környezeti változókat. export - A parancs környezeti változókat állít be.

A környezeti változók felsorolása

A környezeti változók megjelenítéséhez leggyakrabban használt parancs a printenv . Ha a változó nevét argumentumként adják át a parancsnak, csak a változó értéke jelenik meg. Ha nincs megadva argumentum, akkor a printenv kinyomtatja az összes környezeti változó listáját, soronként egy változót.

Például a HOME környezeti változó értékének megjelenítéséhez futtassa:

printenv HOME

A kimenet kinyomtatja a jelenleg bejelentkezett felhasználó elérési útját:

/home/linuxize

Egynél több érvet is átadhat a printenv parancsnak:

printenv LANG PWD

en_US /home/linuxize

printenv

A kimenet így néz ki:

LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;… LESSCLOSE=/usr/bin/lesspipe %s %s LANG=en_US S_COLORS=auto XDG_SESSION_ID=5 USER=linuxize PWD=/home/linuxize HOME=/home/linuxize SSH_CLIENT=192.168.121.1 34422 22 XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop SSH_TTY=/dev/pts/0 MAIL=/var/mail/linuxize TERM=xterm-256color SHELL=/bin/bash SHLVL=1 LANGUAGE=en_US: LOGNAME=linuxize XDG_RUNTIME_DIR=/run/user/1000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin LESSOPEN=| /usr/bin/lesspipe %s _=/usr/bin/printenv

Az alábbiakban bemutatjuk a leggyakoribb környezeti változókat:

  • USER - az aktuálisan bejelentkezett felhasználó. HOME - az aktuális felhasználó otthoni könyvtára. EDITOR - A használni kívánt alapértelmezett fájlszerkesztő. Ezt a szerkesztőt fogja használni, amikor a terminált edit . SHELL - az aktuális felhasználó héjának elérési útja, például bash vagy zsh. LOGNAME - az aktuális felhasználó neve. PATH - A könyvtárak listája, amelyeket parancsok végrehajtásakor kell keresni. A parancs futtatásakor a rendszer ebben a sorrendben keresi a könyvtárakat, és az első talált végrehajtható fájlt használja. LANG - Az aktuális lokálási beállítások. TERM - A jelenlegi terminál emuláció. MAIL - Az a hely, ahol az aktuális felhasználó e-mail tárolódik.

A printenv és az env parancsok csak a környezeti változókat nyomtatják ki. Ha az összes változó listáját meg szeretné kapni, beleértve a környezetet, a shell és a változókat, valamint a shell funkciókat, akkor használja a set parancsot:

set

BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=()

A parancs az összes változó nagy listáját jeleníti meg, így valószínűleg a kimenetet a less parancsba szeretné csatolni.

set | less

Használhatja az echo parancsot egy shell változó kinyomtatásához. Például a BASH_VERSION változó értékének kinyomtatásához futtassa:

echo $BASH_VERSION

4.4.19(1)-release

Környezeti változók beállítása

A Shell és a Environmental változók közötti különbség jobb bemutatása érdekében kezdjük a Shell Variables beállításával, majd tovább lépünk a környezeti változókkal.

Egy új, MY_VAR névvel rendelkező shell változó létrehozásához és a MY_VAR Linuxize egyszerűen írja be:

MY_VAR='Linuxize'

Ellenőrizheti, hogy a változó be van-e állítva, vagy az echo $MY_VAR , amikor a set parancs kimenetét grep echo $MY_VAR szűri set | grep MY_VAR set | grep MY_VAR :

echo $MY_VAR

Linuxize

A printenv paranccsal ellenőrizze, hogy ez a változó környezeti változó-e vagy sem:

printenv MY_VAR

A kimenet üres lesz, amely azt mondja nekünk, hogy a változó nem környezeti változó.

Meg is próbálhatja kinyomtatni a változót egy alhéjban, és egy üres kimenetet fog kapni.

bash -c 'echo $MY_VAR'

Az export parancs a környezeti változók beállítására szolgál.

Környezeti változó létrehozásához egyszerűen exportálja a shell változót környezeti változóként:

export MY_VAR

Ezt ellenőrizheti futással:

printenv MY_VAR

Linuxize

bash -c 'echo $MY_VAR'

Linuxize

A környezeti változókat egyetlen sorban is beállíthatja:

export MY_NEW_VAR="My New Var"

Az így létrehozott környezeti változók csak az aktuális munkamenetben érhetők el. Ha új héjat nyit meg, vagy kijelentkezik, minden változó el fog veszni.

Perzisztens környezeti változók

Ahhoz, hogy a környezeti változók tartósak legyenek, meg kell határoznia ezeket a változókat a bash konfigurációs fájlokban. A legtöbb Linux disztribúcióban, amikor új munkamenetet indít, a környezeti változók a következő fájlokból olvashatók:

  • /etc/environment - használja ezt a fájlt az egész rendszerre kiterjedő környezeti változók beállításához. A fájl változói a következő formátumban vannak beállítva:

    FOO=bar VAR_TEST="Test Var"

    /etc/profile - A fájlban beállított változókat mindig tölti be a bash bejelentkezési héj megadásakor. A környezeti változók deklarálásakor a fájlban az export parancsot kell használni:

    export JAVA_HOME="/path/to/java/home" export PATH=$PATH:$JAVA_HOME/bin

    Felhasználónként shell-specifikus konfigurációs fájlok. Például, ha Bash-t használ, akkor a ~/.bashrc változókat deklarálhatja:

    export PATH="$HOME/bin:$PATH"

Az új környezeti változók betöltéséhez az aktuális shell munkamenetbe használja a source parancsot:

source ~/.bashrc

Következtetés

Ebben az útmutatóban megmutattuk, hogyan kell beállítani és felsorolni a környezeti és shell változókat.

Ha bármilyen kérdése van, nyugodtan írjon megjegyzést.

terminál