Úvod
Pokaždé, když spustíte shellovou relaci v Linuxu, systém projde konfigurační soubory a podle toho nastaví prostředí. Proměnné prostředí hrají v tomto procesu významnou roli.
V tomto kurzu se dozvíte, jak nastavit, zobrazit a zrušit nastavení proměnných prostředí v systému Linux.

Předpoklady
- Jakákoli distribuce Linuxu (Debian, Ubuntu, RHEL, CentOS…)
- Přístup k příkazovému řádku
- Oprávnění sudo
Co jsou proměnné prostředí:Definice
Proměnné prostředí jsou proměnné, které obsahují hodnoty nezbytné k nastavení prostředí shellu. Na rozdíl od proměnných prostředí zůstávají proměnné prostředí v podřízených procesech prostředí.
Strukturálně jsou proměnné prostředí a shellu stejné – obě jsou párem klíč–hodnota, oddělené rovnítkem.
VARIABLE_NAME=value
Pokud má proměnná více než jednu hodnotu, oddělte je středníkem:
VARIABLE_NAME=value_1:value_2
Proměnné, které obsahují mezery, se píší do uvozovek:
VARIABLE_NAME="Value text"
Nejběžnější proměnné prostředí
Zde jsou některé proměnné prostředí, se kterými se může průměrný uživatel setkat:
PWD
– Aktuální pracovní adresář.HOME
– Umístění domovského adresáře uživatele.SHELL
– Aktuální shell (bash, zsh atd.).LOGNAME
– Jméno uživatele.UID
– Jedinečný identifikátor uživatele.HOSTNAME
– Název hostitele zařízení v síti.MAIL
– Adresář pošty uživatele.EDITOR
– Výchozí textový editor systému Linux.TEMP
– Umístění adresáře pro dočasné soubory.
Jak zkontrolovat proměnné prostředí
Zobrazit všechny proměnné prostředí
Použijte printenv
příkaz k zobrazení všech proměnných prostředí. Protože je v seznamu mnoho proměnných, použijte less
příkaz pro ovládání zobrazení:
printenv | less
Výstup zobrazí první stránku seznamu a poté vám umožní přejít dále stisknutím Mezerníka pro zobrazení další stránky nebo Enter pro zobrazení dalšího řádku:

Zobrazení ukončíte stisknutím Q
.
Vyhledat jednu proměnnou prostředí
Chcete-li zkontrolovat hodnotu jedné proměnné prostředí, použijte následující příkaz:
printenv VARIABLE NAME
HOME
proměnná hodnota je cesta domovské složky:

Případně zobrazte hodnotu proměnné pomocí echo
příkaz. Syntaxe je:
echo $[VARIABLE_NAME]
Hledejte specifické proměnné prostředí
Chcete-li najít všechny proměnné obsahující určitý řetězec znaků, použijte příkaz grep:
printenv | grep [VARIABLE_NAME]
Výstup vyhledávání pro USER
proměnná zobrazuje následující řádky:

Dalším příkazem, který můžete použít ke kontrole proměnných prostředí, je set
. Tento příkaz však bude obsahovat také lokální proměnné, stejně jako proměnné shellu a funkce shellu.
Najděte v seznamu proměnnou prostředí, která obsahuje všechny proměnné a funkce prostředí pomocí set | grep
:
set | grep [VARIABLE_NAME]
Nastavte proměnnou prostředí v Linuxu
Nejjednodušší způsob, jak nastavit proměnnou pomocí příkazového řádku, je napsat její název následovaný hodnotou:
[VARIABLE_NAME]=[variable_value]
1. Jako příklad vytvořte proměnnou s názvem EXAMPLE
s textovou hodnotou. Pokud zadáte příkaz správně, shell neposkytuje žádný výstup.
2. Sada set | grep
příkaz potvrdí vytvoření proměnné. Nicméně printenv
nevrací žádný výstup.

Je to proto, že takto vytvořená proměnná je proměnná shellu.
3. Dalším způsobem, jak to potvrdit, je zadat bash
a spusťte relaci podřízeného prostředí. Pomocí echo
příkaz k vyhledání EXAMPLE
proměnná nyní nevrací žádný výstup:

Jak exportovat proměnnou prostředí
1. Pokud chcete změnit proměnnou prostředí na proměnnou prostředí, vraťte se do nadřazeného prostředí a export
pomocí příkazu export:
export [VARIABLE_NAME]
2. Použijte printenv
pro potvrzení úspěšného exportu:

3. Pokud nyní otevřete relaci podřízeného prostředí, echo
vrátí hodnotu proměnné prostředí:

Proměnná prostředí vytvořená tímto způsobem zmizí po ukončení aktuální relace shellu.
Nastavit proměnnou prostředí v Linuxu trvale
Pokud si přejete, aby proměnná přetrvávala i po zavření shellové relace, musíte ji trvale nastavit jako proměnnou prostředí. Můžete si vybrat mezi nastavením pro aktuálního uživatele nebo pro všechny uživatele.
1. Chcete-li nastavit trvalé proměnné prostředí pro jednoho uživatele, upravte soubor .bashrc
soubor:
sudo nano ~/.bashrc
2. Napište řádek pro každou proměnnou, kterou chcete přidat, pomocí následující syntaxe:
export [VARIABLE_NAME]=[variable_value]

3. Uložte a ukončete soubor. Změny se použijí po restartování prostředí. Pokud chcete změny použít během aktuální relace, použijte příkaz source:
source ~/.bashrc
4. Chcete-li nastavit trvalé proměnné prostředí pro všechny uživatele, vytvořte .sh
soubor v /etc/profile.d
složka:
sudo nano /etc/profile.d/[filename].sh
5. Syntaxe pro přidání proměnných do souboru je stejná jako u .bashrc
:

6. Uložte a ukončete soubor. Změny se projeví při příštím přihlášení.
Jak zrušit nastavení proměnné prostředí
Chcete-li zrušit nastavení proměnné prostředí, použijte unset
příkaz:
unset [VARIABLE_NAME]
Tento příkaz trvale odstraní proměnné exportované pomocí příkazu terminálu.
Proměnné uložené v konfiguračních souborech jsou také odstraněny z aktuální relace shellu. Při příštím přihlášení se však znovu nastaví.
Chcete-li trvale zrušit nastavení proměnné, kterou jste uložili do souboru, přejděte do souboru a odstraňte řádek obsahující definici proměnné.