Customizing Cloud9 and the CS50 IDE by Dan Armendariz
Tartalomjegyzék:
- Környezeti és héjváltozók
- A környezeti változók felsorolása
- Környezeti változók beállítása
- Perzisztens környezeti változók
- Következtetés
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áltedit
.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
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 azexport
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:
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álA Windows Phone 7.5 alkalmazásainak fejlesztése: változók, adattípusok és értékek hozzárendelése
Ebben a bemutatóban meg fogjuk tekinteni, hogy milyen változók és adattípusok vannak, változók
InDeep fájllista készítő: fájlok és mappák listázása Windows alatt
InDeep fájllista-készítő letöltése ingyen. Ez egy fájllista-készítő szoftver, amely létrehozhat egy listát a fájlokról és mappákról és mentheti el szöveges fájlként.
Az időzóna beállítása vagy módosítása a linuxban
Az időzóna egy olyan földrajzi régió, amelynek ugyanaz a szokásos ideje. Ez az oktatóanyag tartalmazza az időzóna beállításához vagy megváltoztatásához szükséges lépéseket a Linuxban.