OS X Modifica la variabile di ambiente PATH

Quando si esegue un comando da una shell UNIX o UNIX, la shell cerca il file eseguibile utilizzando le directory elencate nella variabile PATH come una mappa. Per comodità, l'aggiunta di directory a questa variabile d'ambiente significa che non devi cercare un file ogni volta che lo esegui. Seguendo queste indicazioni ti sarà permesso di aggiungere una directory al PATH di ricerca.


Per cambiare il tuo percorso, devi modificare il file .profile nella tua home directory. Se hai dimestichezza con l'editor vi, probabilmente non hai bisogno di leggere oltre. In caso contrario, puoi utilizzare TextEdit per modificare il tuo profilo.

Il profilo predefinito è abbastanza breve. Il file .profile viene letto quando apri una finestra di Terminale e ogni riga viene eseguita come quando si digita un comando nella finestra Terminale. Mentre questo è utile perché è possibile eseguire qualsiasi comando disponibile ogni volta che si scende a una shell, ci preoccupiamo di cambiare una variabile d'ambiente, PATH.

Nel tuo editor, trova la riga che inizia con export PATH = e dargli un'occhiata per assicurarsi che non contenga già il percorso della directory che stai per aggiungere. A volte la variabile PATH può diventare lunga, ma è probabile che ci siano solo poche directory separate da due punti, forse qualcosa del genere:

export PATH = / opt / local / bin: / opt / local / sbin: $ PATH

Ci sono alcune cose da notare prima di apportare modifiche. Il formato di questa linea è importante. L'uso degli spazi in questo comando, o la loro mancanza, conta. In particolare, non possono esserci spazi attorno al segno di uguale o tra una qualsiasi delle directory. Se ci sono spazi nel nome della directory che si desidera aggiungere, è necessario uscire dallo spazio precedendolo con \ backslash o inserendo il percorso tra virgolette (export PATH = "/ percorso / qui").

Il export = la parola chiave di fronte a quella linea ha uno scopo ben preciso. Definire una variabile senza esportarla lo rende disponibile solo per la shell corrente, non per le shell successive. Potresti pensare a te stesso che non hai intenzione di creare shell successive, ma questo succede ogni volta che esegui uno script di shell. Se la variabile PATH non è stata esportata, quando si esegue uno script di shell, il PATH non esisterà più ed è possibile che lo script fallisca.

Il $ PATH alla fine dell'esempio sopra vira il valore precedente della variabile (se esiste) alla fine del PERCORSO. Per impostazione predefinita, questo aggiungerà ': / bin: / sbin: / usr / bin: / usr / sbin' alla fine del PATH per te, il che è utile perché la maggior parte di tutto ciò che si esegue dalla riga di comando vive lì.

Quindi, per aggiungere una nuova directory al percorso, è sufficiente aggiungerla alla linea PATH esistente in .profile facendo attenzione a separarla da altre directory lì con i due punti e attenta a non introdurre spazi indesiderati (tutto ciò che segue lo spazio verrà ignorato). Ad esempio, per aggiungere la directory / mightyq / bin al PATH mostrato sopra, la linea potrebbe diventare uno dei seguenti esempi:

export PATH = / mightyq / bin: / opt / local / bin: / opt / local / sbin: $ PATH
export PATH = / opt / local / bin: / mightyq / bin: / opt / local / sbin: $ PATH
export PATH = / opt / local / bin: / opt / local / sbin: $ PATH: / mightyq / bin

Si noti che nel terzo esempio la nuova directory viene aggiunta alla fine del PERCORSO. Hai la possibilità di ottimizzare le ricerche che la tua shell farà per tuo conto ogni volta che esegui un comando organizzando il tuo PATH logicamente. Mettere le directory di uso più frequente o molto più pesanti in un secondo momento nel percorso può darti un piccolo miglioramento delle prestazioni (anche se oggigiorno le cose sono piuttosto veloci, quindi devi essere un po 'anale per goderti davvero questo).

Se non hai bisogno di una directory nel tuo percorso, puoi invertire la procedura eliminando la directory indesiderata facendo ancora attenzione a non lasciare spazi, regole di separazione dei due punti.

Un'ultima nota, per testare la modifica apportata, è possibile utilizzare il comando echo, ma è necessario rendere la shell ricaricare prima .profile. Supponendo che tu sia nella tua directory home (in caso contrario, l'esecuzione di 'cd' senza opzioni ti porterà lì), esegui questi comandi:

... /.profile
echo $ PATH

Il primo è un piccolo comando preciso in quanto mostra tre usi o interpretazioni del periodo in una singola riga. Il primo . è una scorciatoia per far sì che la shell venga "sorgente" o caricare il contenuto del file successivo come se stesso, nel modo in cui la shell utilizza quando si accede a un sistema o si avvia una finestra di Terminale. Se hai semplicemente eseguito questi comandi come uno script di shell (bash .profile, per esempio) avvieresti una nuova shell, quella shell avrebbe ottenuto la variabile set, e alla fine dell'esecuzione dello script .profile, quella nuova shell avrebbe cessato di esiste e le variabili appena definite verranno relegate nell'universo calzino mancante.

Il secondo periodo indica la directory di lavoro corrente. Non è obbligatorio in alcun modo in questo comando, ma è normale che spieghi i punti alle persone, quindi lo scrivo sempre. In questo contesto, puoi anche usare ~ / .profile come ~ indica esplicitamente la tua home directory.

L'ultimo punto fa sì che il .profile sia nascosto alla vista in una normale lista di directory o nella vista del Finder. Non cambia il file in nessun altro modo, lo rende invisibile e deseleziona le tue directory. Per vedere i file nascosti, puoi usare 'ls -a' e potresti essere sorpreso da ciò che trovi.