Hur man Lägger till en Katalog till Din $PATH i Linux

0
378
Fatmawati Achmad Zaenuri/Shutterstock

$PATH är en av de tysta manipulatorer i bakgrunden på din Linux-dator. Det är lugnt påverkar din upplevelse, men det är inget skumma om det. Vi kommer att förklara vad det gör, och hur du kan justera den.

Vad Är $PATH på Linux, och Hur Fungerar Det?

När du skriver ett kommando i ett terminalfönster och tryck på Enter, du sparka igång en hel del aktiviteter innan ditt kommando är ännu avrättades.

Bash är standard skalet på de flesta Linux-distributioner. Det tolkar den textrad du in och identifierar kommandot namn samsas med parametrar, rör, omdirigeringar, och allt annat som finns där. Därefter lokaliserar den körbara binärer för dessa kommandon och lanserar dem med de parametrar du angav.

Det första steget skalet tar att leta upp den körbara är att identifiera om en binär är även inblandad. Om kommandot du använder är i skalet i sig (ett “skal builtin”) utan ytterligare sökning krävs.

Skal builtins är lättast att hitta eftersom de är en integrerad del av skalet. Det är som att ha dem i en toolbelt—de är alltid med dig.

Om du behöver någon av dina andra verktyg, men du måste gå och rota i verkstaden för att hitta det. Är det på din arbetsbänk eller en vägghängare? Det är vad den $PATH miljö gör. Det har en lista över platser skalet sökningar och i vilken ordning de kommer att sökas.

Om du vill se om ett kommando är ett skal builtin, ett alias, en funktion eller en fristående binära mv /arbete/unfile, kan du använda kommandot type som visas nedan:

skriv tydligt
skriv cd

Detta berättar för oss att det klart är en binär fil, och den första som finns i sökvägen ligger i /usr/bin. Du kan ha mer än en version av tydliga installerade på datorn, men detta är en skal kommer att försöka att använda.

Föga förvånande, cd-skivan är ett skal builtin.

Lista Din $PATH

Det är lätt att se vad som finns i din väg. Skriv bara följande att använda echo kommandot och skriv ut värdet som hölls i $PATH:

echo $PATH

Resultatet är en lista av kolon (:) avgränsad fil systemet platser. Skalet sökningar från vänster till höger genom den väg, genom att kontrollera filsystemet plats för en matchande körbara att utföra ditt kommando.

Vi kan välja vår väg genom notering för att se filen systemet platser som kommer att sökas efter, och i vilken ordning de kommer att söka:

  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /sbin
  • /bin
  • /usr/spel
  • /usr/local/games
  • /snap/bin

Något som kanske inte är omedelbart uppenbara sökning inte börjar i den aktuella arbetskatalogen. Snarare fungerar det sätt som anges kataloger, och de listas kataloger.

Om den aktuella arbetskatalogen är inte i din väg, det kommer inte att sökas. Också, om du har kommandon lagras i kataloger som inte är i vägen, skalet kommer inte att hitta dem.

För att visa detta, har vi skapat ett litet program som kallas rf. När det utförs, rf, skriver ut namnet på den katalog som den lanserades i terminalfönstret. Det ligger i /usr/local/bin. Vi har också en nyare version i /dave/arbete katalog.

Vi skriv följande kommando för att visa oss vilken version av vårt program kommer shell att hitta och använda:

som rf

Skalet rapporter den version det finns en katalog som finns i sökvägen.

Vi skriver följande för att skjuta upp det:

rf

Version 1.0 av rf-serier och bekräftar våra förväntningar var rätt. Den version som finns och utförs ligger i /usr/local/bin.

För att köra en annan version av rf på den här datorn, vi har att använda sökvägen till den körbara på kommandoraden, som visas nedan:

./arbete/rf

Nu när vi har sagt det skal där för att hitta den version av rf-vi vill köra, det använder version 1.1. Om vi föredrar denna version, kan vi kopiera in den i /usr/local/bin katalogen och skriva över den gamla.

Låt oss säga att vi utvecklar en ny version av rf. Vi kommer att behöva köra det ofta när vi utveckla och testa det, men vi vill inte kopiera en outgiven utveckling bygga i den levande miljön.

Eller, vi kanske har laddat ner en ny version av rf och vill göra lite kontroll provning på det innan vi gör det tillgängligt för allmänheten.

Om vi lägger vårt arbete katalogen till sökvägen, vi gör skalet hitta vår version. Och denna ändring kommer endast att påverka oss—medan andra fortfarande kommer att använda den version av rf i /usr/local/bin .

Lägga till en Katalog till Din $PATH

Du kan använda kommandot exportera för att lägga till en katalog till $PATH. Katalogen ingår då i listan för filsystem platser skalet sökningar. När skalet hittar en matchande körbar, det slutar med att söka, så du vill vara säker på att det söker din katalog först, före /usr/local/bin.

Det är lätt att göra. För vårt exempel, kan vi skriva följande för att lägga till vår katalog till början av sökvägen så att det är den första platsen sökte:

export PATH=/home/dave/arbete:$PATH

Detta kommando ställer $PATH för att vara lika till den katalog vi lägga till /home/dave/arbete, och sedan hela den aktuella vägen.

Den första VÄGEN har ingen dollartecken ($). Vi ange värdet för PATH. Den slutliga $PATH har ett dollartecken på grund av att vi refererar till innehållet som lagras i PATH-variabeln. Observera även kolon (:) mellan den nya katalogen och $PATH variabeln namn.

Låt oss se hur vägen ser ut nu:

echo $PATH

Vår /home/dave/arbete katalogen läggs till början av sökvägen. Den kolon vi som skiljer den resten av vägen.

Vi skriver följande för att verifiera vår version av rf är den första hittade:

som rf

Beviset i puddingen är igång rf, som visas nedan:

rf

Skalet finner Version 1.1 och kör det från /home/dave/arbete.

För att lägga till vår katalog till slutet av vägen, vi bara flytta den till slutet av kommandot, så här:

export PATH=$PATH:/home/dave/arbete

Att göra Ändringarna Permanenta

Som Beth Brooke-Marciniak sade, “Framgång är bra, men framgång är flyktig.” Det ögonblick du stänger terminalfönstret, eventuella ändringar som du har gjort till $PATH är borta. För att göra dem permanenta, du måste sätta dina kommandot exportera en konfigurationsfil.

När du sätter kommandot exportera i din .bashrc fil, det sätter den väg varje gång du öppnar ett terminalfönster. Till skillnad från SSH-sessioner, som du har att logga in, dessa kallas för “interaktiva” sessioner.

I det förflutna, skulle du lägga på kommandot exportera i din .profil-filen för att ställa in sökvägen för att logga in terminal sessioner.

Dock fann vi att om vi sätter kommandot exportera i antingen den .bashrc eller .profil-filer, det korrekt ange sökvägen för både interaktiva och logga in i terminalen sessioner. Din erfarenhet kan vara olika. För att hantera alla eventualiteter kommer vi att visa dig hur man gör det i båda filerna.

Använd följande kommando i din /home-katalogen för att redigera den .bashrc fil:

gedit .bashrc

Den gedit-redigeraren öppnas med .bashrc filen laddas.

Bläddra till längst ned i filen och lägg till följande kommandot exportera vi tidigare använt:

export PATH=/home/dave/arbete:$PATH

Spara filen. Nästa, antingen stänga och öppna terminal-fönstret eller använda dot-kommandot för att läsa den .bashrc filen enligt följande:

. .bashrc

Skriv sedan följande echo-kommandot för att kontrollera sökvägen:

echo $PATH

Detta lägger till /home/dave/arbete katalog till början av sökvägen.

Processen för att lägga till kommandot till .profil-fil är densamma. Skriv följande kommando:

gedit .profil

Den gedit editor startar med .profil-filen läses in.

Lägg till kommandot exportera till botten med filen, och sedan spara den. Stänga och öppna ett nytt terminalfönster är otillräckligt för att tvinga .profil-fil att läsa om. För att de nya inställningarna ska börja gälla måste du logga ut och tillbaka in eller använder dot-kommandot, som visas nedan:

. .profil

RELATERAT: Hur man Redigerar Text Filer Grafiskt på Linux Med gedit

Ange Sökväg för Alla

För att ställa in sökvägen för alla som använder systemet, du kan redigera /etc/profile-fil.

Du kommer att behöva använda sudo, som följer:

sudo gedit /etc/profile

När gedit redaktör lanserar, lägga till kommandot exportera till botten av den filen.

Spara och stäng filen. Ändringarna kommer att gälla för andra nästa gång de loggar in.

En Anteckning om Säkerhet

Se till att du inte av misstag lägga till en ledande kolon “:” för att den väg, som visas nedan.

Om du gör, kommer detta att söka i den aktuella katalogen första, som innebär en säkerhetsrisk. Säga att du laddat ner en arkivfil och packade upp det i en katalog. Du tittar på filerna och se en annan zippad fil. Du kallar packa upp en gång till för att extrahera ett arkiv.

Om den första arkiv finns en körbar fil som heter packa upp som en skadlig körbar, skulle du av misstag skjuta upp den ena i stället för det verkliga packa upp körbar. Detta skulle ske eftersom skalet skulle leta i den aktuella katalogen först.

Så, alltid vara försiktig när du skriver din export-kommandon. Använd echo $PATH för att granska dem och se till att de är på det sätt du vill ha dem.

LÄS NÄSTA

  • “Är Det Verkligen Värt Att Spåra Din Sömn?
  • “Vad Gör “IDGI” Betyder, och Hur Använder Man Det?
  • “Hur för att Slå På Start Ringklockan på Din Nya Mac
  • “Hur att Spela Gamla Flash-Spel 2020, och Utöver
  • “Hur man Använder den Nära Vänner Har på Instagram