Proměnné prostředí jsou některé speciální proměnné, které jsou definovány v shellu a které programy potřebují při provádění. Mohou být definované systémem nebo uživatelem. Systémově definované proměnné jsou ty, které jsou nastaveny systémem a jsou používány programy na systémové úrovni.
Pro např. Příkaz PWD je velmi běžná systémová proměnná, která se používá k uložení aktuálního pracovního adresáře. Uživatelem definované proměnné jsou obvykle nastaveny uživatelem, buď dočasně pro aktuální shell, nebo trvale. Celý koncept nastavení a zrušení nastavení proměnných prostředí se točí kolem nějaké sady souborů a několika příkazů a různých shellů.
V širším pojetí může být proměnná prostředí tří typů:
1. Místní proměnná prostředí
Jeden definovaný pro aktuální relaci. Tyto proměnné prostředí trvají pouze do aktuální relace, ať už jde o relaci vzdáleného přihlášení nebo relaci místního terminálu. Tyto proměnné nejsou specifikovány v žádném konfiguračním souboru a jsou vytvářeny a odstraňovány pomocí speciální sady příkazů.
2. Proměnná uživatelského prostředí
Toto jsou proměnné, které jsou definovány pro konkrétního uživatele a jsou načteny pokaždé, když se uživatel přihlásí pomocí relace místního terminálu nebo když je tento uživatel přihlášen pomocí relace vzdáleného přihlášení. Tyto proměnné jsou obvykle nastaveny a načteny z následujících konfiguračních souborů:.bashrc
, .bash_profile
, .bash_login
, .profil
soubory, které se nacházejí v domovském adresáři uživatele.
3. Systémové proměnné prostředí
Toto jsou proměnné prostředí, které jsou dostupné v celém systému, tj. pro všechny uživatele přítomné v tomto systému. Tyto proměnné jsou přítomny v konfiguračních souborech celého systému v následujících adresářích a souborech:/etc/environment
, /etc/profile
, /etc/profile.d/
, /etc/bash.bashrc
. Tyto proměnné se načtou pokaždé, když je systém zapnut a přihlášen buď lokálně nebo vzdáleně kterýmkoli uživatelem.
Porozumění uživatelským a systémovým konfiguračním souborům
Zde stručně popíšeme různé výše uvedené konfigurační soubory, které obsahují proměnné prostředí, ať už pro celý systém nebo pro uživatele.
.bashrc
Tento soubor je soubor specifický pro uživatele, který se načte pokaždé, když uživatel vytvoří novou místní relaci, tj. jednoduše řečeno otevře nový terminál. Všechny proměnné prostředí vytvořené v tomto souboru se projeví při každém spuštění nové lokální relace.
.bash_profile
Tento soubor je souborem vzdáleného přihlášení specifického pro uživatele. Proměnné prostředí uvedené v tomto souboru jsou vyvolány pokaždé, když se uživatel přihlásí vzdáleně, tj. pomocí relace ssh. Pokud tento soubor není přítomen, systém hledá buď .bash_login
nebo .profile
soubory.
/etc/environment
Tento soubor je systémový soubor pro vytváření, úpravu nebo odstraňování jakýchkoli proměnných prostředí. Proměnné prostředí vytvořené v tomto souboru jsou přístupné v celém systému, každému uživateli, lokálně i vzdáleně.
/etc/bash.bashrc
Celý systém bashrc
soubor. Tento soubor je načten jednou pro každého uživatele, pokaždé, když tento uživatel otevře relaci místního terminálu. Proměnné prostředí vytvořené v tomto souboru jsou přístupné všem uživatelům, ale pouze prostřednictvím relace místního terminálu. Když se k jakémukoli uživateli na tomto počítači přistupuje vzdáleně prostřednictvím relace vzdáleného přihlášení, tyto proměnné nebudou viditelné.
/etc/profile
Soubor profilu celého systému. Všechny proměnné vytvořené v tomto souboru jsou přístupné každému uživateli v systému, ale pouze v případě, že je relace tohoto uživatele vyvolána vzdáleně, tedy prostřednictvím vzdáleného přihlášení. Žádná proměnná v tomto souboru nebude přístupná pro relaci místního přihlášení, tj. když uživatel otevře nový terminál na svém místním systému.
Poznámka :Proměnné prostředí vytvořené pomocí celého systému nebo pro uživatele konfigurační soubory lze odstranit pouze jejich odstraněním z těchto souborů. Po každé změně v těchto souborech se buď odhlaste a znovu přihlaste, nebo jednoduše zadejte následující příkaz na terminálu, aby se změny projevily:
$ source <file-name>
Nastavení nebo zrušení nastavení místních proměnných prostředí nebo proměnných prostředí pro celou relaci v systému Linux
Proměnné místního prostředí lze vytvořit pomocí následujících příkazů:
$ var=value OR $ export var=value
Tyto proměnné se týkají celé relace a jsou platné pouze pro aktuální relaci terminálu. K vymazání těchto proměnných prostředí pro celou relaci lze použít následující příkazy:
1. Pomocí env
Ve výchozím nastavení "env"
příkaz vypíše všechny aktuální proměnné prostředí. Ale pokud se použije s '-i'
přepínač, dočasně vymaže všechny proměnné prostředí a umožní uživateli provést příkaz v aktuální relaci v nepřítomnosti všech proměnných prostředí.
$ env –i [Var=Value]… command args…
Zde var=value
odpovídá jakékoli místní proměnné prostředí, kterou chcete použít pouze s tímto příkazem.
$ env –i bash
Poskytne bash shell, který by dočasně neměl žádnou z proměnných prostředí. Ale jakmile opustíte shell, všechny proměnné budou obnoveny.
2. Pomocí unset
Dalším způsobem, jak vymazat místní proměnnou prostředí, je použití příkazu unset. Chcete-li dočasně zrušit nastavení jakékoli místní proměnné prostředí,
$ unset <var-name>
Kde, var-name
je název lokální proměnné, kterou chcete zrušit nebo vymazat.
3. Nastavte název proměnné na ”
Dalším méně obvyklým způsobem by bylo nastavit název proměnné, kterou chcete vymazat, na ''
(Prázdný). Tím by se vymazala hodnota lokální proměnné pro aktuální relaci, pro kterou je aktivní.
POZNÁMKA – MŮŽETE SI DOKONCE HRÁT A MĚNIT HODNOTY PROMĚNNÝCH SYSTÉMU NEBO UŽIVATELSKÉHO PROSTŘEDÍ, ALE ZMĚNY SE ODRAZÍ POUZE V SOUČASNÉ TERMINÁLOVÉ RELACI A NEBUDOU TRVALÉ.
Zjistěte, jak v Linuxu vytvářet uživatelské a systémové proměnné prostředí
V této části se naučíme, jak nastavit nebo zrušit nastavení lokálních, uživatelských a systémových proměnných prostředí v Linuxu s níže uvedenými příklady:
1. Nastavení a zrušení nastavení místních proměnných v Linuxu
a.) Zde vytvoříme lokální proměnnou VAR1
a nastavte ji na libovolnou hodnotu. Potom použijeme unset k odstranění této lokální proměnné a na konci je tato proměnná odstraněna.
$ VAR1='TecMint is best Site for Linux Articles' $ echo $VAR1 $ unset VAR1 $ echo $VAR1
b.) Dalším způsobem vytvoření lokální proměnné je použití export
příkaz. Vytvořená lokální proměnná bude dostupná pro aktuální relaci. Chcete-li zrušit nastavení proměnné, jednoduše nastavte hodnotu proměnné na ''
.
$ export VAR='TecMint is best Site for Linux Articles' $ echo $VAR $ VAR= $ echo $VAR
c.) Zde jsme vytvořili lokální proměnnou VAR2
a nastavte ji na hodnotu. Poté, abychom mohli spustit příkaz dočasně vymazat všechny místní a další proměnné prostředí, provedli jsme 'env –i'
příkaz. Tento příkaz zde provedl bash shell vymazáním všech ostatních proměnných prostředí. Po zadání 'exit'
na vyvolaném bash shellu by byly všechny proměnné obnoveny.
$ VAR2='TecMint is best Site for Linux Articles' $ echo $VAR2 $ env -i bash $ echo $VAR2
2. Nastavení a zrušení nastavení proměnných uživatelského prostředí v Linuxu
a.) Upravte .bashrc
soubor ve vašem domovském adresáři exportovat nebo nastavit proměnnou prostředí, kterou potřebujete přidat. Poté zdroj souboru, aby se změny projevily. Pak byste viděli proměnnou ('CD'
v mém případě), vstoupí v platnost. Tato proměnná bude k dispozici pokaždé, když otevřete nový terminál pro tohoto uživatele, ale ne pro relace vzdáleného přihlášení.
$ vi .bashrc
Přidejte následující řádek do .bashrc
soubor dole.
export CD='This is TecMint Home'
Nyní spusťte následující příkaz, abyste provedli nové změny a otestovali jej.
$ source .bashrc $ echo $CD
Chcete-li tuto proměnnou odstranit, stačí odstranit následující řádek v .bashrc soubor a jeho zdroj:
b.) Chcete-li přidat proměnnou, která bude dostupná pro relace vzdáleného přihlášení (tj. když ssh uživateli ze vzdáleného systému), upravte .bash_profile
soubor.
$ vi .bash_profile
Přidejte následující řádek do .bash_profile
soubor dole.
export VAR2='This is TecMint Home'
Při získávání tohoto souboru bude proměnná k dispozici, když ssh tomuto uživateli zadáte, ale ne při otevření jakéhokoli nového místního terminálu.
$ source .bash_profile $ echo $VAR2
Zde VAR2
není zpočátku dostupná, ale po provedení ssh uživateli na localhost se proměnná zpřístupní.
$ ssh [email protected] $ echo $VAR2
Chcete-li tuto proměnnou odstranit, stačí odstranit řádek v .bash_profile
soubor, který jste přidali, a znovu jej vytvořte.
POZNÁMKA :Tyto proměnné budou dostupné pokaždé, když se přihlásíte k aktuálnímu uživateli, ale ne pro ostatní uživatele.
3. Nastavení a zrušení nastavení systémových proměnných prostředí v Linuxu
a.) Chcete-li přidat celosystémovou proměnnou bez přihlášení (tj. takovou, která je dostupná pro všechny uživatele, když kterýkoli z nich otevře nový terminál, ale ne, když je vzdálený přístup k libovolnému uživateli stroje), přidejte proměnnou do /etc/bash.bashrc soubor.
export VAR='This is system-wide variable'
Poté vytvořte zdrojový soubor.
$ source /etc/bash.bashrc
Nyní bude tato proměnná dostupná pro každého uživatele, když otevře jakýkoli nový terminál.
$ echo $VAR $ sudo su $ echo $VAR $ su - $ echo $VAR
Zde je stejná proměnná dostupná pro root uživatele i běžného uživatele. Můžete to ověřit přihlášením k jinému uživateli.
b.) Pokud chcete, aby byla k dispozici jakákoli proměnná prostředí, když je některý z uživatelů na vašem počítači vzdáleně přihlášen, ale ne při otevírání nového terminálu na místním počítači, musíte soubor upravit – '/etc/profile'
.
export VAR1='This is system-wide variable for only remote sessions'
Po přidání proměnné stačí soubor znovu vytvořit. Pak by byla proměnná k dispozici.
$ source /etc/profile $ echo $VAR1
Chcete-li tuto proměnnou odstranit, odstraňte řádek z /etc/profile
soubor a jeho zdroj.
c.) Pokud však chcete přidat jakékoli prostředí, které chcete, aby bylo dostupné v celém systému, a to jak na relacích vzdáleného přihlášení, tak na místních relacích (tj. otevření nového okna terminálu) pro všechny uživatele, stačí exportovat proměnnou do /etc/environment soubor.
export VAR12='I am available everywhere'
Poté stačí zdrojový soubor a změny se projeví.
$ source /etc/environment $ echo $VAR12 $ sudo su $ echo $VAR12 $ exit $ ssh localhost $ echo $VAR12
Zde, jak vidíme, je proměnná prostředí dostupná pro běžného uživatele, uživatele root a také pro vzdálené přihlášení (zde na localhost ).
Chcete-li tuto proměnnou vymazat, jednoduše odstraňte položku v /etc/environment soubor a znovu jej vytvořte nebo se znovu přihlaste.
POZNÁMKA :Změny se projeví, když zdroj souboru. Ale pokud ne, možná se budete muset odhlásit a znovu přihlásit.
Závěr
Toto je tedy několik způsobů, jak můžeme modifikovat proměnné prostředí. Pokud najdete nějaké nové a zajímavé triky pro totéž, uveďte je ve svých komentářích.