OS X Ändra din PATH-miljövariabel

När du kör ett kommando från ett UNIX- eller UNIX-liknande skal söker skalet efter den körbara filen med de kataloger som anges i din PATH-variabel som en karta. För att göra det lättare att lägga till kataloger till denna miljövariabel innebär att du inte behöver leta efter en fil varje gång du kör den. Genom att följa dessa anvisningar kan du lägga till en katalog i sökvägen.


För att ändra din sökväg måste du redigera .profilfilen i din hemkatalog. Om du är bekväm med att använda vi-redaktionen behöver du nog inte läsa mer. Om inte, kan du använda TextEdit för att redigera din .profile.

Standardprofilen är ganska kort. .Profilen läses när du öppnar ett terminalfönster och varje rad utförs precis som att skriva ett kommando i Terminal-fönstret. Även om det här är praktiskt eftersom du kan göra någon tillgänglig kommandokörning när du släpper till ett skal, är vi oroliga för att ändra en miljövariabel, PATH.

I din redaktör hittar du linjen som börjar med exportera PATH = och se till att det inte redan innehåller den katalogväg du ska lägga till. Ibland kan PATH-variabeln bli lång, men chansen är att din har bara några kataloger åtskilda av kolon, kanske något så här:

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

Det finns några saker att notera innan du gör ändringar. Formatet på denna rad är viktigt. Användningen av mellanslag i detta kommando, eller deras brist, betyder något. I synnerhet kan det inte finnas mellanslag runt jämliksignalen eller mellan någon av katalogerna. Om det finns mellanslag i det katalognamn du vill lägga till, måste du fly från utrymmet genom att förutse det med en \ backslash eller genom att ange sökvägen i citat (export PATH = "/ path / here").

De export = sökord framför den linjen har ett mycket specifikt syfte. Definiera en variabel utan att exportera den gör den tillgänglig endast för det nuvarande skalet, inte till några efterföljande skal. Du kanske tänker på dig själv att du inte planerar att göra några efterföljande skal, men det händer när du kör ett skalskript. Om PATH-variabeln inte exporterades, när du kör ett skalskript, skulle PATH inte längre existera och det är möjligt att skriptet skulle misslyckas.

$ PATH i slutet av exemplet ovan klarar det tidigare värdet av variabeln (om den finns) på slutet av PATH. Som standard lägger detta till:: / bin: / sbin: / usr / bin: / usr / sbin "till slutet av PATH för dig som är användbart eftersom det mesta du kör från kommandoraden bor där.

Så, för att lägga till en ny katalog till sökvägen, lägg till den med den befintliga PATH-raden i .profil, var försiktig med att skilja den från andra kataloger där med kolon och var försiktig så att du inte introducerar oönskade mellanslag (allt efter att utrymmet kommer att ignoreras). Om du till exempel lägger till katalogen / mightyq / bin till PATH som visas ovan kan linjen bli något av följande exempel:

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

Observera att i det tredje exemplet läggs den nya katalogen till slutet av PATH. Du har möjlighet att optimera de sökningar som skalet ska göra på din vägnar varje gång du kör ett kommando genom att organisera din PATH logiskt. Att lägga mindre ofta använda eller riktigt massiva kataloger senare i vägen kan ge dig en liten prestationsökning (även om det idag är ganska snabbt, så måste du vara lite anal för att verkligen njuta av det).

Om du inte behöver en katalog i din sökväg kan du vända processen genom att radera den oönskade katalogen som fortfarande tar hand om att behålla de inga mellanslagen, kolonnseparationsreglerna.

En sista anteckning, för att testa ändringen du gjorde, kan du använda echo-kommandot, men du måste göra skalet om att ladda omprofilen först. Om du antar att du befinner dig i din hemkatalog (om inte, kör "cd" utan några alternativ tar dig dit), kör dessa kommandon:

... /.profile
echo $ PATH

Den första är ett snyggt litet kommando genom att det visar tre användningar eller tolkningar av perioden i en enda rad. Den första . är en genväg för att få skalet att "källa" eller ladda innehållet i den efterföljande filen som sig själv, på det sätt som skalet använder när du loggar in på ett system eller startar ett terminalfönster. Om du enkelt utförde dessa kommandon som ett skalskript (bash .profile, till exempel) skulle du starta ett nytt skal, det skulle få variabeluppsättningen, och i slutet av körning av .profile-skriptet skulle det nya skalet upphöra att existerar och de nyligen definierade variablerna skulle förkastas till det saknade sokuniversumet.

Den andra perioden betyder den aktuella arbetsboken. Det är inte obligatoriskt på något sätt i det här kommandot, men det är vana att förklara prickarna för folk, så jag skriver det hela tiden nu. I det här sammanhanget kan du också använda ~ / .profile som ~ uttryckligen betyder din hemkatalog.

Den sista punkten gör att .profilen döljs för visning i en vanlig kataloglista eller Finder-vy. Det ändrar inte filen på något annat sätt, det gör det bara osynligt och avvecklar dina kataloger. För att se dolda filer kan du använda 'ls -a' och du kan bli förvånad över vad du hittar.