PATH (proměnná)

PATH je v informatice název proměnné, která v některých operačních systémech obsahuje seznam adresářů, ve kterých jsou umístěny spustitelné soubory. Proměnnou PATH nalezneme v unixových systémech, DOSu, OS/2 i v Microsoft Windows. Uživatel může v příkazovém řádku jednoduše zadat název spustitelného souboru bez specifikace cesty k danému příkazu a interpret příkazů (shell) se ho pokusí najít ve všech adresářích, které jsou obsaženy v proměnné PATH. Teprve když v nich není nalezen, zahlásí uživateli chybu (obvykle ve smyslu „Příkaz nenalezen“, anglicky „Command not found“ a podobně).

V operačních systémech je proměnná PATH obvykle součástí proměnných prostředí, což zajišťuje její dědění do nově vzniklých procesů. Proměnná PATH zlehčuje spouštění často používaných programů umístěných ve vlastních adresářích. Pokud jsou ale v proměnné PATH názvy adresářů seřazeny neefektivně, zpomaluje to běh operačního systému – hledá se v mnoha složkách, tedy i na nesprávných místech.

Unixové systémy

V unixových systémech je proměnná PATH děděna potomkem po systémovém volání fork(). Seznam adresářů je oddělen znakem dvojtečka.

$ echo $PATH
/sbin:/usr/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/huzva/bin

Ve výše uvedeném příkladu zadal uživatel na prvním řádku příkaz pro vypsání proměnné PATH, který je vyznačen tučně. Obsah proměnné PATH je vypsán na druhém řádku. Adresáře /bin, /usr/bin a /usr/local/bin jsou vkládány do většiny uživatelských nastavení (vždy ale záleží na konkrétní implementaci). Správce počítače má navíc zařazeny adresáře /sbin a /usr/sbin, aby mohl jednoduše provádět příkazy pro správu systému.

Když uživatel zadá do příkazového řádku příkaz nebo je-li z nějakého programu vykonáno volání exec(), systém prohledá zleva doprava všechny adresáře uvedené v proměnné PATH a spustí první příkaz, který takto najde.

Aktuální adresář v PATH

V unixových systémech obvykle není v proměnné PATH uveden aktuální adresář (.) a neprohledávají ho ani interpret příkazů (shell) ani systémová volání exec(). Důsledkem je, že když chce uživatel spustit skript (nebo program) ze složky, ve které se právě nachází (a není to jeden z adresářů uvedený v PATH), musí uvést relativní cestu (./script.sh) nebo absolutní cestu (např. /home/huzva/script.sh).

Důvodem je bezpečnostní riziko kvůli možnému zneužití útočníkem nebo škodlivým malwarem, kdy by mohl kdokoliv vložit škodlivý příkaz například do adresáře /tmp a pak jen čekat, až se uživatel (nebo správce) do tohoto adresáře přepne a tento příkaz zadá. Přednostní provedení vloženého škodlivého příkazu by pak proběhlo bez vědomí oběti útoku. Podobně by mohl být na různých místech systému narafičen příkaz obvyklých překlepů (například zápis s chybějící mezerou ls-l).

DOS, Microsoft Windows

V systémech DOS, OS/2 a Microsoft Windows je seznam adresářů oddělen znakem středník. V následujícím příkladu je příkaz pro výpis proměnné PATH uveden na prvním řádku a je vyznačen tučně:

C:\Users\Iva>echo %PATH%
C:\Windows\system32;C:\Windows

Typicky je prvním adresářem uvedeným v PATH složka C:\WINDOWS\system32 a dále jsou přítomny názvy mnoha adresářů (ale ne všech), kde je instalován nějaký program určený pro volání z příkazového řádku. Některé programy vkládají během instalace názvy svých adresářů do proměnné PATH nikoliv na konec, ale na začátek seznamu. Důvodem je, aby v případě spouštění netrvalo jejich vyhledávání dlouho nebo aby překryly jiné příkazy, které jsou v adresářích uvedených později (např. systémové nástroje z adresáře C:\Windows\system32). V éře DOSu bylo obvyklé vkládat proměnnou PATH do souboru AUTOEXEC.BAT tímto způsobem:

PATH {program directory};%PATH%

nebo

SET PATH={program directory};%PATH%.

Prohledání aktuálního adresáře

Ve všech zmíněných systémech (DOS, OS/2 a Microsoft Windows) je po vložení příkazu nebo při systémovém volání nejdříve prohledán pracovní adresář (.) a teprve až poté jsou zleva doprava prohledány adresáře uvedené v proměnné PATH. Bezpečnostní riziko, jak je popsáno výše v kapitole pro unixové systémy, v těchto systémech existuje také, ale má relativně menší dopad, protože jsou tyto systémy typicky používány pouze jednou osobou a uživatelé v příkazovém řádku pracují zřídka.

Související články


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/PATH_(proměnná)
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.