PATH (variabile) - PATH (variable)
PATH è una variabile di ambiente su sistemi operativi Unix-like , DOS , OS / 2 e Microsoft Windows , che specifica un insieme di directory in cui si trovano i programmi eseguibili. In generale, ogni processo in esecuzione o sessione utente ha la propria impostazione PATH.
Storia
Multics ha dato origine all'idea di un percorso di ricerca. La prima shell Unix cercava solo i nomi dei programmi in /bin , ma dalla versione 3 Unix la directory era troppo grande e /usr/bin , e un percorso di ricerca, divennero parte del sistema operativo.
Unix e simili a Unix
Nei sistemi operativi POSIX e simili a Unix, la $PATH variabile viene specificata come un elenco di uno o più nomi di directory separati da due punti ( : ). Le directory nella PATH stringa-non devono essere sottoposte a escape, rendendo impossibile avere directory con il : loro nome.
I /bin , /usr/bin e /usr/local/bin le directory sono in genere inclusi nella maggior parte degli utenti $PATH di impostazione (anche se questo varia da applicazione ad applicazione). Il superutente ha anche tipicamente /sbin e /usr/sbin voci per eseguire facilmente i comandi di amministrazione del sistema . La directory corrente ( . ) è talvolta inclusa anche dagli utenti, consentendo l' esecuzione diretta dei programmi che risiedono nella directory di lavoro corrente . Gli amministratori di sistema di regola non lo includono $PATH al fine di prevenire l'esecuzione accidentale di script che risiedono nella directory corrente, come possono essere collocati lì da un tarbomb dannoso . In tal caso, l'esecuzione di tale programma richiede di specificare un percorso assoluto ( /home/userjoe/bin/script.sh ) o relativo ( ./script.sh ) sulla riga di comando.
Quando un nome di comando viene specificato dall'utente o viene effettuata una chiamata exec da un programma, il sistema ricerca attraverso $PATH , esaminando ogni directory da sinistra a destra nell'elenco, cercando un nome file che corrisponda al nome del comando. Una volta trovato, il programma viene eseguito come processo figlio della shell dei comandi o del programma che ha emesso il comando.
DOS, OS / 2 e Windows
Nei sistemi operativi DOS, OS / 2 e Windows, la %PATH% variabile viene specificata come un elenco di uno o più nomi di directory separati da punti e virgola ( ; ).
La directory di sistema di Windows (in genere C:\WINDOWS\system32 ) è in genere la prima directory nel percorso, seguita da molte (ma non tutte) le directory per i pacchetti software installati. Molti programmi non vengono visualizzati nel percorso in quanto non sono progettati per essere eseguiti da una finestra di comando , ma piuttosto da un'interfaccia utente grafica . Alcuni programmi possono aggiungere la loro directory all'inizio del contenuto della variabile PATH durante l'installazione, per accelerare il processo di ricerca e / o sovrascrivere i comandi del sistema operativo. Nell'era DOS, era consuetudine aggiungere una riga o ad AUTOEXEC.BAT .
PATH {program directory};%PATH%SET PATH={program directory};%PATH%
Quando un comando viene immesso in una shell dei comandi o una chiamata di sistema viene effettuata da un programma per eseguire un programma, il sistema prima cerca nella directory di lavoro corrente e poi cerca il percorso, esaminando ogni directory da sinistra a destra, cercando un nome di file eseguibile che corrisponde al nome del comando fornito. I programmi eseguibili hanno estensioni del nome fileEXE o COM e gli script batch hanno estensioni BAT o CMD . Anche altre estensioni di file eseguibili possono essere registrate con il sistema.
Una volta trovato un file eseguibile corrispondente, il sistema genera un nuovo processo che lo esegue.
La variabile PATH semplifica l'esecuzione dei programmi di uso comune che si trovano nelle proprie cartelle. Tuttavia, se utilizzato in modo incauto, il valore della variabile PATH può rallentare il sistema operativo cercando troppe posizioni o posizioni non valide.
Le posizioni non valide possono anche interrompere l' esecuzione dei servizi, in particolare il servizio "Server" che di solito è una dipendenza per altri servizi all'interno di un ambiente Windows Server.