Amarengo

Articles and news

jak zobrazit, upravit, zrušit nastavení a odstranit proměnnou prostředí v Linuxu

v operačních systémech Linux a/nebo Unix je prostředí nebo systémová proměnná pár názvů a hodnot, který je k dispozici v celém systému a používá se ke sdílení informací mezi aplikacemi. Tyto (pre) pojmenované objekty se obvykle používají jako nastavení konfigurace, které aplikace může vyhledávat za předpokladu, že zná název proměnné nebo objektu.

kromě systémových proměnných lze proměnnou nastavit také do jiných oborů, jako jsou proměnné specifické pro uživatele a relace. Lze jej také nastavit a zrušit z jedné instance shellu nebo relace.

v tomto příspěvku se budeme většinou zabývat příkazovým shellem bash. Ale bude fungovat i v jiných shellech, pravděpodobně s malými změnami v syntaxi. Základní koncept proměnných prostředí zůstává u shellů stejný.

Zobrazit jednu proměnnou prostředí

pokud znáte název proměnné, kterou chcete vyhledat, můžete pomocí příkazu echo zobrazit hodnotu proměnné. To funguje i se skripty v shellu.

bash$ echo $<variable name>

$ se používá k označení, že řetězec, který následuje, je proměnná. Obvykle jsou proměnné prostředí velká písmena, ale nemusí to být. Je to většinou případ konvence. Pokud je název proměnné doma, příkaz je

bash$ echo $HOME

dalším příkazem, který lze použít k zobrazení proměnné hodnoty, je printenv. To funguje téměř stejným způsobem jako příkaz echo funguje v předchozím příkladu.

bash$ printenv HOME

Povšimněte si, že speciální znak $ není tímto příkazem vyžadován, protože argumenty tohoto příkazu se považují za názvy proměnných prostředí.

Zobrazit všechny proměnné

v případě, že chcete vidět všechny systémové proměnné, které jsou nastaveny v prostředí, můžete použít některý ze tří příkazů: set, env nebo printenv. Každý z těchto příkazů při spuštění bez argumentů příkazového řádku, zobrazí všechny proměnné a jejich hodnoty, které jsou v současné době k dispozici v prostředí shellu.

bash$ set
bash$ env
bash$ printenv

výstup výše uvedených příkazů může být docela zdlouhavý. Jak již víte nebo zjistíte, ve výchozím nastavení je nastaven poměrně dlouhý seznam vlastností prostředí. To také znamená, že může být docela obtížné najít konkrétní klíč nebo hodnotu nemovitosti.

pokud znáte pouze část názvu proměnné nebo chcete zobrazit pouze podmnožinu proměnných, můžete výstup předchozího příkazu převést na grep. Níže uvedený příklad zobrazí všechny proměnné, které mají slovo proxy v názvu nebo hodnotě.

bash$ env | grep -i proxy

tato část vám ukázala, jak můžete zobrazit proměnné prostředí v systému. Často byste chtěli také nastavit nebo upravit hodnoty. Můžete to udělat přímo z příkazového shellu.

nastavení proměnné prostředí

nastavení proměnné prostředí je stejné jako vytvoření nové hodnoty nebo úprava existující hodnoty. Když nastavíte proměnnou, proměnná je vytvořena a připojena k prostředí, pokud již neexistuje. Pokud již v prostředí existuje, je hodnota upravena tak, aby odrážela změny.

k nastavení proměnné pomocí následující syntaxe můžete použít příkaz set nebo env. Oba příkazy by měly fungovat ve většině příkazových shellů.Tyto příkazy nastaví proměnnou prostředí pro aktuální shell nebo instanci.

pokud zjistíte, že jeden z příkazů není podporován vaším konkrétním shellem, použijte pouze druhý. Také syntaxe může být odlišná. Některé granáty nevyžadují v příkazu ani symbol equals to ( = ).

bash$ set NAME=Value
nebo
bash$ env NAME=Value

vzhledem k tomu, jak jsou proměnné zděděny procesy v Linuxu a v závislosti na tom, jak a kde jsou prováděny, mohou být proměnné nastaveny pouze na aktuální relaci nebo aktuální instanci shellu. Chcete-li jej nastavit globálně, můžete použít příkaz export nebo setenv v závislosti na použitém shellu příkazu.

v Bourne nebo Bash shellech použijte příkaz exportu jako v příkladu níže.

bash$ export NAME=Value

zatímco v csh a souvisejících shellech, použijte příkaz setenv

csh$ setenv NAME Value

(Poznámka: V setenv není operátor equals ( = )).

nezapomeňte zahrnout předchozí hodnotu proměnné, pokud chcete pouze připojit k existující hodnotě. V opačném případě je předchozí hodnota proměnné přepsána. To je relevantní pro proměnné cesty, jako je cesta nebo KNIHOVNÍ_PATH. Chcete-li přidat adresář s názvem /home / john / temp do existující cesty, použijte něco jako následující

bash$ export PATH=$PATH:/home/john/temp

při opětovném exportu hodnoty se nastaví pouze pro aktuální relaci. To znamená, že při odhlášení nebo restartování systému budou změny ztraceny. Pokud chcete zachovat změny hodnot při restartech, budete muset upravit konfigurační soubor(Y), kde je nastaven.

globální hodnoty prostředí

globální hodnoty prostředí se nastavují na různých místech, často se liší mezi distribucemi. Pokud se jedná o proměnnou specifickou pro uživatele, je docela možné, že je nastavena v konfiguračním souboru specifickém pro shell v domovském adresáři uživatele.

pokud používáte shell bash, podívejte se na .bashrc nebo .bash_profile soubory v domovském adresáři. Některá prostředí mají také .profilový soubor v domovském adresáři. Dalším souborem, který se používá jako výchozí pro všechny uživatele a Shelly, je soubor/etc / profile.

v prostředí Gentoo můžete nastavit globální hodnoty prostředí v souboru uvnitř / etc/env.d / složka. To vám umožní mít samostatné soubory pro různé sady globálních proměnných prostředí. Ve složce/ etc / je také několik různých profilových souborů, například profil, profil.csh, profil.env atd. atd. V profilu /etc/jsou také konfigurační soubory.d / složka.

pokud používáte Ubuntu nebo distro založené na Ubuntu, pak jsou globální proměnné nastaveny v souboru/etc / environment. Můžete se také podívat do profilu/etc/.d / složka, která může několik souborů včetně souboru. sh, které jsou spuštěny. Stejný formát se používá i v jiných distribucích, jako jsou CentOS. V systémech založených na Suse také vyhledejte soubor s názvem / etc / profile.místní.

konfigurační soubory pro globální env proměnné v Linuxu

ano, existuje mnoho různých konfiguračních souborů, kde lze nastavit globální proměnné. Podívejte se na moji sadu konfiguračních souborů na obrázku výše. S velkým výkonem přichází spousta konfiguračních souborů. Obvykle to v praxi není tak špatné. Každý má individuální preference a proměnné půjdou do podobných souborů a složek a jakmile víte a pochopíte, jak to funguje,jste všichni nastaveni.

Jakmile najdete místo nebo soubor, kde je proměnná prostředí aktuálně definována nebo nastavena, můžete soubor upravit tak, aby změnil hodnotu a uložil ji. Při úpravě hodnot postupujte podle existujících formátů v souborech. Obvykle se jedná o stejnou syntaxi, kterou používáte při nastavování proměnných z příkazového řádku. Změny budou nyní přetrvávat napříč odhlášeními a restartováním.

pokud se jedná o novou proměnnou, kterou chcete přidat do systému, budete muset najít nejvhodnější místo ze všech výše uvedených možností. Pokud je tato nová proměnná lokální a platí pouze pro některé uživatele, nastavte ji v domovském adresáři. Pokud má být přístupný pouze některým uživatelům v příkazovém shellu, nastavte jej do příslušných konfiguračních souborů shellu. Pokud se jedná o skutečně globální, nastavte jej do globálních konfiguračních souborů ve složkách/ etc/.

odstranit (nebo zrušit nastavení) proměnnou prostředí

někdy chcete zcela odstranit proměnnou z prostředí. Chcete –li odebrat nebo zrušit nastavení proměnné z prostředí, můžete znovu použít příkaz env s volbou příkazového řádku-unset (- u).

bash$ env -u NAME

dalším příkazem, který dělá totéž, je příkaz unset. Unset je příkaz posix a měl by být dostupný ve všech shellech, ale nikdy nevíte.

bash$ unset NAME

po zrušení nastavení proměnné nezapomeňte zkontrolovat pomocí příkazů echo nebo set, abyste se ujistili, že byla skutečně odstraněna.

stejně jako u předchozích příkazů set, pokud chcete zachovat změnu hodnoty, budete muset upravit a uložit konfigurační soubor, kde je nastaven. Když v tomto případě odebíráte nebo nenastavujete hodnoty, stačí odstranit řádek, kde je hodnota nastavena.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.