Úvod
Prostředí je oblast, která obsahuje informace o chování různých programů a aplikací. Proměnné prostředí Linuxu používají aplikace k získání informací o prostředí.
Prostředí se konfiguruje pokaždé, když je vytvořena nová relace prostředí. Změna proměnných prostředí Linux pomáhá uživateli ovládat, jak interagují s programy prostřednictvím shellu, jaké výchozí hodnoty se používají pro vzhled okna shellu, typ použitého shellu, výchozí domovský adresář atd.
Soubor proměnných prostředí Linux
Informace potřebné pro nastavení prostředí se získávají prostřednictvím různých souborů prostřednictvím procesu známého jako inicializace. Operační systém provádí tento proces čtením z /etc/profile
a .profile
soubory.
Soubor /etc/profile je pod správou Linuxu a obsahuje základní informace, které uživatel nemůže upravovat. Soubor .profile je plně pod kontrolou uživatele a lze jej použít k úpravě prostředí.
Pokud používáte bash shell, uživatelské proměnné prostředí lze vytvořit v souborech .bash_profile a .bashrc.
Pokud tyto soubory neexistují, operační systém pokračuje ve vytváření prostředí a nezobrazuje žádnou chybu.
Terminál vyzve uživatele k zadání (označeno $
sign) po nastavení prostředí.
Proměnné prostředí Linux
Toto jsou páry název/hodnota.
Proměnné prostředí lze ovládat pomocí následujících 5 hlavních příkazů.
- printenv
- env
- nastavit
- exportovat
- zrušeno
Pojďme se na každý z těchto příkazů podívat jeden po druhém.
printenv
lze použít k vytištění hodnoty proměnné prostředí. Pokud není zadán žádný klíč, vytisknou se všechny páry název-hodnota jako výstup. Patří sem pouze proměnné s globálním rozsahem.Příklad příkazu printenv
Proměnné prostředí Linux jsou podle konvence definovány velkými písmeny.
env
také vypíše páry název-hodnota jakoprintenv
. Tento příkaz také vytiskne pouze proměnné s globálním rozsahem. Nelze jej však použít k tisku konkrétních hodnot proměnných prostředí.set
se používá k tisku proměnných shellu, proměnných prostředí, lokálních proměnných a funkcí shellu. Patří mezi ně proměnné s lokálním i globálním rozsahem.příklad příkazu set
export
se používá k vytvoření nových proměnných prostředí, které přetrvávají i po uzavření relace shellu.unset
se používá k odvázání nebo odstranění proměnné prostředí.
Některé důležité předdefinované proměnné prostředí
- JAZYK: Obsahuje aktuální systémový jazyk.
- USERNAME: Obsahuje uživatelské jméno aktuálního uživatele.
- PWD: Obsahuje cestu k aktuálnímu adresáři.
- CESTA: Obsahuje dvojtečkou oddělený seznam adresářů, ve kterých systém hledá spustitelné soubory.
- DOMŮ: Obsahuje cestu k domovskému adresáři.
- SHELL: Obsahuje cestu k preferovanému prostředí uživatele.
- REDAKTOR: Obsahuje příkaz ke spuštění odlehčeného editoru. Např.:
/usr/bin/nano
- VIZUÁLNÍ: Obsahuje příkaz ke spuštění editoru používaného pro náročné editační úlohy. Např.:
Vi
(Vim) - PROHLÍŽEČ: Obsahuje příkaz ke spuštění výchozího webového prohlížeče.
Operace s proměnnými prostředí
Podívejme se na některé běžné operace s proměnnými prostředí v Linuxu.
1. Vytváření nových proměnných prostředí
Nové proměnné lze jednoduše vytvořit zadáním nového názvu proměnné a přiřazením hodnoty v ""
, oddělené =
podepsat.
Mezi =
nesmí být žádné mezery a název/hodnota proměnné. Jinak terminál vrátí chybu.
Jakmile je proměnná vytvořena, její hodnoty se zobrazí pomocí echo
příkaz.
příklad nové proměnné env
A $
znaménko musí před názvem proměnné při zobrazení hodnoty pomocí echo, jak je znázorněno v příkladu výše. Při vytváření nové proměnné to však není vyžadováno.
Nyní, když jsme vytvořili novou proměnnou prostředí, zkusme ji najít v seznamu proměnných zobrazených v printenv
příkaz a vytiskne jeho hodnotu.
To lze provést pomocí příkazu grep.
Příklad proměnné grep env
Není zobrazen žádný výstup. Je to proto, že i když jsme definovali novou proměnnou prostředí, musíme ji ještě „exportovat“ do souboru obsahujícího názvy všech proměnných.
Export umožňuje, aby byla proměnná přístupná jiným programům a podshellům.
Toho je dosaženo pomocí export
příkaz, o kterém jsme hovořili v minulé sekci.
$ export [VARIABLE_NAME]
příklad příkazu export
Nyní je zobrazena hodnota proměnné. Lze k němu dokonce přistupovat v novém subshell.
příklad exportu subshell
Subshell můžeme opustit zadáním exit
příkaz. To nás přivádí zpět k původnímu shellu.
2. Změna hodnot existujících proměnných
Stávající proměnné lze upravit tak, že jim jednoduše přiřadíte novou hodnotu. Změny provedené můžeme vidět vytištěním hodnoty proměnné pomocí echo
.
změna hodnoty proměnné env
3. Odebrání proměnných prostředí
unset
příkaz se používá k odstranění existujících proměnných prostředí.
$ unset [VARIABLE_NAME]
příklad příkazu unset
Trvalé vs neperzistentní proměnné prostředí
Všechny proměnné prostředí, kterými jsme se dosud zabývali, byly neperzistentní proměnné. Změny provedené v nich trvají pouze do doby, než je aktuální shell aktivní, a neovlivňují nová okna shellu. Jakmile je aktuální relace uzavřena, všechny změny provedené v proměnných – vytvořené nebo upravené, budou ztraceny.
Abychom zachovali změny prostřednictvím nových relací a oken, můžeme vytvořit trvalé proměnné prostředí. Ty se vytvářejí definováním proměnných v souboru proměnných prostředí v domovském adresáři – .profile, .bash_profile a .bashrc.
Můžeme otevřít .bashrc
soubor pomocí nano nebo vim .
přístup k souboru .bashrc
Definujte novou proměnnou kdekoli uvnitř .bashrc
pomocí export
příkaz. Uložte změny a ukončete soubor.
definování proměnné env v .bashrc
Zavřete aktuální relaci terminálu a otevřete novou.
Nyní vytiskněte právě vytvořenou proměnnou prostředí pomocí echo
příkaz.
příklad trvalého výstupu proměnné env
Vidíme, že proměnná přetrvává i po vytvoření nové terminálové relace a uzavření předchozí.
Závěr
Proměnné prostředí jsou velmi důležité a užitečné. Mohou upravit fungování programů a usnadnit uživateli interakci s nimi. Stávající proměnné lze snadno upravit podle potřeb uživatele. Navíc lze snadno vytvářet nové proměnné. Proměnné prostředí mohou změnit způsob, jakým uživatel komunikuje s shellem, a dokonce zrychlit přístup k určitým programům.