Variabeln $PATH är en avgörande komponent i Linux och andra Unix-liknande operativsystem. Den specificerar en lista över kataloger som innehåller olika körbara filer i systemet och talar om för skalet var de ska leta efter dessa körbara filer.
På en ny Linux-installation säkerställer katalogerna som ingår i $PATH att de flesta program du kör fungerar felfritt. Det kan dock finnas tillfällen då du snabbt vill köra anpassade skript eller program på ditt system.
I sådana fall måste du ställa in $PATH-variabeln på lämpligt sätt innan du kör dessa program.
Vad är $PATH i Linux?
Som nämnts ovan är $PATH en miljövariabel i Linux, som består av en kolonseparerad lista över kataloger som Linux-skalet refererar till när det tar emot ett kommando eller ett exec-anrop från ett program.
Vanligtvis inkluderar variabeln $PATH /bin, /usr/bin, och den /usr/local/bin kataloger, med superanvändare som får ytterligare två poster, nämligen, /sbin och /usr/sbin. Du kan dock lägga till nya poster i din $PATH-variabel för att bekvämt starta skript och program från terminalen oavsett den aktuella arbetskatalogen.
Varför skulle du vilja ställa in $PATH?
På det stora hela kommer de flesta program du någonsin kommer att köra på ditt Linux-system att fungera felfritt, och ditt skal kommer inte att visa några fel när de körs. Till exempel, när du kör kommandot ls, kör skalet det fel-free utan att du behöver ange kommandots fullständiga sökväg.
Men när du måste köra ett anpassat skript kan du inte deklarera exec-kommandot som du gjorde med ls kommandot innan. Vad du istället måste göra är att antingen navigera till skriptets katalog (via terminal) och köra kommandot därifrån, eller, om du vill ha möjligheten att köra kommandot var som helst på systemet, ange skriptets absoluta sökväg i kommandot för att hjälpa skalet att hitta det.
Även om båda dessa metoder fungerar bra, är de inte särskilt effektiva och kan snabbt göra hela processen till en tråkig rutin. Ett alternativt (läs effektivt och effektivt) sätt att köra program från icke-standardiserade kataloger är att lägga till deras källkatalog i ditt skals $PATH så att det vet var man hittar skriptet och därför kan köra dem snabbt.
Hur man ställer in $PATH-variabeln i Linux
Beroende på vad du vill uppnå — om det är en tillfällig installation för att köra ett skript bara en gång eller om du planerar att använda skriptet regelbundet — det finns olika sätt att lägga till en katalog till din $PATH.
1. Ställa in $PATH-variabeln tillfälligt
Om du vill köra ett skript eller ett program i bara din nuvarande (aktiva) session kan du välja att ställa in en temporär $PATH-variabel. När du gör det kommer du att kunna köra det programmet med ett kommando från var som helst på ditt system utan att behöva inkludera hela sökvägen i kommandot utan bara i den aktuella sessionen.
För att ställa in en $PATH-variabel tillfälligt, öppna terminalen och använd följande syntax för att lägga till kataloger till variabeln:
export PATH=$PATH:/path/to/directory
Till exempel:
export PATH=$PATH:/home/smithy/scripts/
Observera att med denna konfiguration kan du bara köra programmet i din aktiva session. När du ställer in din $PATH-variabel tillfälligt, kommer systemet att återställa den till standardinställningen efter att du har startat om din dator.
2. Ställa in en permanent $PATH-variabel
Om det finns ett program på ditt system som du sannolikt kommer att använda ofta, måste du ställa in variabeln $PATH för det permanent. Detta kommer att säkerställa att ditt skal kommer ihåg sin katalog även efter en omstart.
Till skillnad från den tillfälliga lösningen innebär dock att ställa in $PATH permanent några extra steg: identifiera skalet du använder, redigera motsvarande konfigurationsfil och ställ in variabeln $PATH där.
För att identifiera skalet på ditt system, kör följande kommando i terminalen:
echo $0
Du bör se namnet på ditt aktiva skal som utgång. I de flesta fall kommer detta att vara Bash-skalet, om du inte har ändrat det till Zsh, Ksh eller något annat Linux-skal.
Nu, baserat på skalet du använder, måste du redigera dess konfigurationsfil. Här är vilken fil du behöver redigera baserat på ditt skal:
| Skalnamn | Konfigurationsfil |
|---|---|
| våldsamt slag | ~/.bashrc |
| ksh | ~/.kshrc |
| zsh | ~/.zshrc |
| csh | ~/.cshrc |
Om det gäller något annat skal, kolla in dess dokumentation för att ta reda på dess konfigurationsfilnamn.
När du har bestämt vilken fil du behöver redigera, följ stegen nedan för att ställa in $PATH-variabeln. I den här guiden kommer vi att demonstrera hur man ställer in $PATH-variabeln i Bash-skalet.
- Öppna terminalen och skriv in följande kommando för att öppna .bashrc fil. Du kan använda valfri Linux-textredigerare.
nano ~/.bashrc
Använd följande syntax för att ställa in $PATH-variabeln.
export PATH=$PATH:/path/to/directory/
Spara filen och uppdatera den aktuella skalmiljön med hjälp av källa.
source ~/.bashrc
Skriv följande kommando för att kontrollera om katalogen har lagts till eller inte.
echo $PATH
Om du angav katalogsökvägen korrekt, kommer den att återspeglas i ditt systems $PATH, och du bör kunna köra alla skript i mappen från vilken katalog som helst på ditt system.
Dessutom låter Linux dig också ställa in $PATH-variabeln permanent i en systemomfattande konfiguration så att varje användare på ditt system kan komma åt och exekvera de anpassade skript som finns i den angivna katalogen.
För att ställa in $PATH globalt måste du lägga till katalogen med samma kommando som du använde när du lade till tillfälliga och permanenta inställningar, men antingen i /etc/environment eller den /etc/profile fil.
Öppna någon av dessa filer och lägg till sökvägen till katalogen:
nano /etc/environment
nano /etc/profile
Har lyckats ställa in $PATH i Linux
Med stegen ovan kan du ställa in ditt systems $PATH för att leta efter skript i kataloger som annars är ospecificerade.
I de flesta fall rekommenderar vi att du ställer in variabeln $PATH på ditt system permanent i en konfiguration per användare eftersom det är det mest effektiva sättet av de två metoderna.
Tänk också på att om det inte finns ett specifikt program på ditt system som du vill komma åt globalt, så behöver du inte ställa in $PATH-variabeln i en systemomfattande konfiguration. De lokalisera och hitta kommandon i Linux är en livräddare om du stöter på problem när du hittar källkatalogen att lägga till i variabeln $PATH.
Om författaren
Yash Wate (40 artiklar publicerade)
Yash är en personalskribent på MUO för gör-det-själv, Linux, programmering och säkerhet. Innan han hittade sin passion för att skriva brukade han utveckla för webben och iOS. Du kan också hitta hans författarskap på TechPP, där han täcker andra vertikaler. Förutom teknik tycker han om att prata om astronomi, Formel 1 och klockor.
Mer från Yash Wate
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
