/ Usr / local / bin: / usr / bin: / bin: / usr / local / spill: / usr / spill
Når du skriver inn en kommando som katt på ledeteksten, vil skallet ditt se i hver av disse katalogene for en kjørbar fil med navnet katt . Den første finner den som den kjører.
For å vise den nåværende verdien av PATH-miljøvariabelen din, kan du bruke ekkokommandoen . Som med alle variabler i skallet, når du refererer til verdien du trenger å sette et dollarskilt før variabelnavnet:
ekko $ PATH
I eksempelet ovenfor returnerer gjeldende verdi av banen deg til kommandoprompten.
Angir PATH for din nåværende shell-økt
Du kan angi verdien av PATH som du ville ha en annen skalvariabel, med skjemaet NAME = VALUE, slik:
PATH = / min / første / bane: min / andre / sti
Problemet med denne kommandoen er at det vil fullstendig overskrive de verdiene du hadde før, som du sannsynligvis ikke vil ha. Hvis du vil legge til en ny verdi i tillegg til de gamle. Du kan oppnå dette ved å referere til PATH i den nye definisjonen, slik som dette:
PATH = $ PATH: / min / new / sti
Ved å bruke kommandoen ovenfor legges den nye banen til gjeldende verdi av PATH . Siden banenavnene er søkt i rekkefølge, vil du sannsynligvis legge til den nye banen i slutten av variabelen som vi har gjort her. I stedet, hvis du skrev:
PATH = / min / new / bane: $ PATH
Din nye bane ville bli søkt før, ikke etter, standard systembaner.
Bruk eksport til å passere PATH miljøvariabelen til barnprosesser
Denne typen PATH- definisjonen angir miljøvariabelen for din nåværende shell-økt, men eventuelle nye programmer du kjører, kan ikke se den nye banen du har lagt til. Det er fordi skallet ditt lar deg kontrollere miljøet ved å kreve at du manuelt erklære hvilke miljøvariabler som sendes videre til andre programmer og prosesser. Du kan oppnå dette med eksportkommandoen . Hvis du kjører:
eksporter PATH
Eventuelle prosesser du kjører til du logger ut, bruker den nåværende verdien av PATH .
Hvis du foretrekker det, kan du kombinere disse to kommandoene i en enkelt linje for enkelhets skyld. Bare legg et semikolon mellom dem slik at skallet vet at de er separate kommandoer:
PATH = $ PATH: / min / ny / bane: / min / andre / ny / bane; eksport PATH
Tips: Hvis noen av dine banenavn har mellomrom i dem, bør du vedlegge variabeldefinisjonen i anførselstegn, for å være trygg:
PATH = "$ PATH: / sette / mellomrom i banenavn: / gjør / livet veldig / ubeleilig"; eksport PATH
Angir PATH-variabelen for hver ny shell-økt
Metodene vi har brukt hittil, angir bare miljøvariabelen for din nåværende shell-økt; Når du logger ut eller lukker terminalvinduet, blir endringene dine glemt. Hvis du vil angi PATH til en bestemt verdi hver gang du logger på eller starter en ny shell-sesjon, bør du legge den til i bash oppstartskriptet. Hver gang du starter en interaktiv shell-sesjon, leser bash følgende filer i rekkefølge (hvis de eksisterer), og utfører kommandoene inne i dem:
/ etc / profile ~ / .bash_profile ~ / .bash_login
~ / .Profile
Den første filen, / etc / profile, er standard oppstartskript for alle brukere på systemet. Én eller flere av de resterende tre filene er plassert i hjemmekatalogen til hver bruker. Noen av disse tre kan brukes, men det er viktig å vite at de vil bli søkt etter i denne rekkefølgen.
Du kan redigere disse filene og manuelt endre noen linjer som inneholder PATH = definisjoner. Bare vær forsiktig hvis du gjør det, fordi disse er katalogene som brukes til å finne viktige operativsystemfiler.
Hvis alt du vil gjøre er å legge til en sti for din nåværende bruker, kan du legge igjen de andre PATH = linjene uberørte, og bare legge til en linje som dette til slutten av filen:
PATH = "$ PATH: / new / path"; eksporter PATH
Hvis du legger til dette til slutten av .bash_profile- filen i hjemmekatalogen, trer det i kraft hver gang brukeren starter en ny skalingssesjon . Hvis du legger til dette i / etc / profil, tar det effekt for alle brukere på systemet. Merk at du trenger administratorrettigheter hvis du vil redigere / etc / profile, slik at du kan bruke sudo (eller være logget inn som root) for å gjøre det.