PATH (variabilă) - PATH (variable)

PATH este o variabilă de mediu pe sistemele de operare asemănătoare Unix , DOS , OS / 2 și Microsoft Windows , specificând un set de directoare unde se află programele executabile. În general, fiecare proces de executare sau sesiune de utilizator are propria sa setare PATH.

Istorie

Multics a creat ideea unei căi de căutare. Primul shell Unix a căutat doar numele programelor /bin , dar în versiunea 3 Unix , directorul era prea mare și /usr/bin , și o cale de căutare, au devenit parte a sistemului de operare.

Unix și Unix-like

Pe sistemele de operare POSIX și Unix, $PATH variabila este specificată ca o listă cu unul sau mai multe nume de directoare separate prin : caractere colon ( ). Directoarele din PATH șir-nu trebuie să fie evadate, ceea ce face imposibil să aveți directoare cu : numele lor.

De /bin , /usr/bin și /usr/local/bin directoarele sunt de obicei incluse în majoritatea utilizatorilor de $PATH setare (deși acest lucru variază de la implementare la implementare). De asemenea, superutilizatorul are /sbin și /usr/sbin intrări pentru executarea ușoară a comenzilor de administrare a sistemului . Directorul curent ( . ) este uneori inclus și de către utilizatori, permițând executarea directă a programelor care se află în directorul de lucru curent . Administratorii de sistem, de regulă, nu îl includ $PATH în scopul de a preveni executarea accidentală a scripturilor care se află în directorul curent, cum ar putea fi plasate acolo de un tarbomb rău intenționat . În acest caz, executarea unui astfel de program necesită specificarea unei /home/userjoe/bin/script.sh căi absolute ( ) sau relative ( ./script.sh ) pe linia de comandă.

Atunci când un nume de comandă este specificat de utilizator sau se efectuează un apel exec dintr-un program, sistemul caută $PATH , examinând fiecare director de la stânga la dreapta din listă, căutând un nume de fișier care să se potrivească cu numele comenzii. Odată găsit, programul este executat ca un proces secundar al shell-ului de comandă sau al programului care a emis comanda.

DOS, OS / 2 și Windows

Pe sistemele de operare DOS, OS / 2 și Windows, %PATH% variabila este specificată ca o listă cu unul sau mai multe nume de directoare separate prin punct și virgulă ( ; ) caractere.

Directorul de sistem Windows (de obicei C:\WINDOWS\system32 ) este de obicei primul director din cale, urmat de multe (dar nu toate) de directoare pentru pachetele software instalate. Multe programe nu apar în cale, deoarece nu sunt concepute pentru a fi executate dintr-o fereastră de comandă , ci mai degrabă dintr-o interfață grafică pentru utilizator . Unele programe își pot adăuga directorul în partea din față a conținutului variabilei PATH în timpul instalării, pentru a accelera procesul de căutare și / sau a suprascrie comenzile sistemului de operare. În era DOS, era obișnuit să adăugați o linie sau la AUTOEXEC.BAT . PATH {program directory};%PATH%SET PATH={program directory};%PATH%

Când o comandă este introdusă într-un shell de comandă sau un apel de sistem este efectuat de un program pentru a executa un program, sistemul caută mai întâi în directorul de lucru curent și apoi caută calea, examinând fiecare director de la stânga la dreapta, căutând un nume de fișier executabil care se potrivește cu numele comenzii date. Programele executabile au extensii de nume de fișier ale EXE sau COM , iar scripturile batch au extensii ale BAT sau CMD . Alte extensii de nume de fișier executabile pot fi înregistrate și în sistem.

Odată găsit un fișier executabil care se potrivește, sistemul generează un nou proces care îl rulează.

Variabila PATH facilitează rularea programelor utilizate în mod obișnuit situate în propriile lor foldere. Dacă este utilizată în mod neînțelept, totuși, valoarea variabilei PATH poate încetini sistemul de operare căutând prea multe locații sau locații invalide.

Locațiile nevalide pot, de asemenea, să oprească executarea completă a serviciilor, în special serviciul „Server”, care este de obicei o dependență pentru alte servicii dintr-un mediu Windows Server.

Referințe