Proměnné prostředí jsou důležité pro hladký chod jakéhokoli linuxového systému. Například pokaždé, když spustíte program nebo příkaz, váš systém se podívá do proměnné PATH, aby zkontroloval, zda je program přítomen. Znalost proměnných shellu je důležitá pro každodenní používání nebo správu systémů Linux.
Význam proměnných shellu
Proměnná prostředí je zástupný symbol pro ukládání informací používaných vaším systémem Linux, programy nebo skripty.
V Linuxu existují různé typy shellů nebo interpretů příkazového řádku, z nichž všechny široce využívají proměnné. Některé z důležitých rolí, které hrají proměnné shellu, zahrnují:
- Proměnné shellu umožňují ukládat a manipulovat s hodnotami v shellu a mohou manipulovat s výsledky ve výpočtech nebo jiných operacích.
- Poskytují způsob, jak předávat hodnoty mezi skripty a programy
- Pro přizpůsobení chování programů můžete použít proměnné prostředí
Proměnné shellu jsou velmi flexibilní; můžete si vytvořit i své vlastní proměnné, ale zde jsou některé z výchozích proměnných, které se dodávají s vaším systémem.
1. CESTA
Proměnná PATH určuje adresáře, kde by měl systém hledat spustitelné soubory, když zadáte příkaz do terminálu.
Jedná se o systémovou proměnnou prostředí a obsahuje seznam adresářů oddělených dvojtečkou. V každém adresáři se postupně vyhledá spustitelný soubor se stejným názvem jako zadaný příkaz.
Pokud například zadáte příkaz ls v terminálu systém prohledá adresáře zadané v proměnné PATH pro pojmenovaný příkaz ls. Pokud soubor najde, spustí jej; pokud ne, zobrazí se chybová zpráva „příkaz nenalezen“.
Proměnná PATH je důležitá, protože umožňuje spouštět příkazy z libovolného adresáře, aniž byste museli zadávat úplnou cestu ke spustitelnému souboru. Například, pokud máte spustitelný soubor "ls" v /usr/bin adresář, můžete příkaz ls spustit z libovolného adresáře pouhým zadáním ls, spíše než uvedení celé cesty, tj. /usr/bin/ls.
Aktuální hodnotu proměnné PATH můžete zobrazit spuštěním příkazu echo takto:
echo $PATH
Hodnotu proměnné PATH můžete také upravit přidáním nebo odebráním adresářů ze seznamu. To může být užitečné, pokud chcete přidat adresář obsahující vaše vlastní spustitelné soubory nebo vlastní skripty, nebo pokud chcete upravit adresáře, které se prohledávají při spouštění příkazů.
2. DOMOV
V Linuxu je proměnná HOME proměnná prostředí, která určuje cestu k domovskému adresáři uživatele. Proč je to tak důležité? Linux je operační systém pro více uživatelů a domovská složka je speciální adresář ve vašem systému spojený s každým uživatelem.
Domovský adresář se obvykle používá k ukládání osobních souborů uživatele, jako jsou dokumenty, obrázky, hudba atd.
Proměnná HOME se obvykle nastavuje automaticky při přihlášení a používá ji mnoho programů a skriptů k nalezení domovského adresáře uživatele. Když například spustíte příkaz cd bez jakýchkoli argumentů, použije proměnnou HOME k navigaci do domovského adresáře uživatele.
Mnoho programů používá proměnnou HOME k ukládání konfiguračních souborů nebo jiných dat do domovského adresáře uživatele. Aktuální hodnotu proměnné HOME můžete zobrazit spuštěním echo $HOME příkaz.
3. UŽIVATEL
Proměnná USER určuje uživatelské jméno aktuálně přihlášeného uživatele. Nastavuje se automaticky při přihlášení a běžně jej používají programy a skripty k určení uživatelského jména aktuálního uživatele.
Proměnná USER se často používá ve skriptech k přizpůsobení chování programu na základě aktuálního uživatele. Skript může například zkontrolovat hodnotu proměnné USER a provést určité akce pouze v případě, že má aktuální uživatel oprávnění root nebo sudo.
Proměnnou můžete také použít pro spouštění určitých obecných příkazů. Když například přidáváte svého uživatele do skupiny dockerů, můžete místo zadávání skutečného uživatelského jména jednoduše spustit následující příkaz:
sudo usermod -aG docker $USER
4. SHELL
Shell je program, který poskytuje rozhraní příkazového řádku (CLI) pro interakci s operačním systémem.
Většina systémů Linux používá Bourne Again Shell (Bash) jako výchozí, ale existuje spousta alternativ. C shell (csh), Z shell (Zsh), ryby atd.
Proměnná SHELL určuje cestu k výchozímu prostředí uživatele. Nastaví se automaticky při přihlášení.
Dále se proměnná používá ve skriptech k přizpůsobení chování programů na základě výchozího prostředí uživatele. Skript může například zkontrolovat hodnotu proměnné SHELL a použít jinou syntaxi nebo volby v závislosti na použitém prostředí.
Aktuální hodnotu proměnné SHELL můžete zobrazit spuštěním příkazu echo $SHELL. Můžete změnit váš výchozí shell pomocí příkazu chsh.
5. OZP
Další důležitá proměnná prostředí v Linuxu, PWD ukládá váš aktuální pracovní adresář. Na rozdíl od většiny proměnných prostředí, které jsou většinou statické, je tato aktualizována shellem, kdykoli vy změnit adresáře pomocí příkazu cd.
Proměnnou PWD můžete ve svých skriptech shellu použít ke snadnému odkazování na aktuální pracovní adresář. Hodnota proměnné je podobná té, kterou získáte při spuštění příkazu pwd.
6. HOSTNAME
Název hostitele nebo název zařízení je jedinečný název používaný k identifikaci vašeho počítače v síti. Například, když chcete SSH do počítače, můžete jednoduše použít název hostitele místo IP adresy.
Proměnná HOSTNAME je proměnná prostředí, která jednoduše specifikuje název hostitele systému. Nastavuje se automaticky při spouštění systému a obvykle se používá k identifikaci systému, když je připojen k síti. Existuje několik způsobů, jak si může změnit název hostitele v systému Linux.
Proměnnou HOSTNAME také používají programy a skripty k identifikaci systému a přizpůsobení jeho chování na základě názvu hostitele. Skript obvykle zkontroluje hodnotu proměnné HOSTNAME a provede určité akce pouze v případě, že systém je konkrétní hostitel.
Vytvoření vlastní proměnné v systému Linux
Kromě výchozích proměnných Linuxu, které jsou automaticky nastaveny za vás. Můžete také definovat své vlastní proměnné shellu pomocí příkazu export. Chcete-li vytvořit novou proměnnou s názvem GREETING s hodnotou "Hello World", můžete použít následující příkaz:
vývozní POZDRAV="Ahoj světe"
Proměnnou GREETING pak můžete použít ve svých skriptech nebo v příkazovém řádku stejně jako jakoukoli jinou proměnnou prostředí.