Kuidas PATH töötab Bashis

How Does Path Work Bash



Kui sisestate käsu Linuxi terminalis, kutsute tavaliselt programmi teatud töö tegemiseks, näiteks ls , CD , rm , mkdir jne. Kõik need programmid asuvad kuskil failisüsteemis, eks? Kuidas saab bash teada, kus need programmid asuvad?

Siin tulevad mängu keskkonnamuutujad, eriti muutuja PATH. See muutuja vastutab bashile, kust neid programme otsida. Vaatame, kuidas PATH töötab ja kuidas PATH -i vaadata/muuta.







Keskkonnamuutuja ja $ PATH

Kesta terminoloogias on keskkond valdkond, mille kest ehitab üles iga kord, kui see seanssi alustab. Keskkonna haldamiseks on olemas keskkonnamuutujad, mis tähistavad keskkonna erinevaid osi. Muutuja väärtus võib olla string, kataloogi asukoht, väärtus või muu.



PATH on selline keskkonnamuutuja, mis jälgib teatud katalooge. Vaikimisi sisaldab muutuja PATH järgmisi asukohti.



  • /usr/bin
  • /usr/sbin
  • /usr/local/bin
  • /usr/local/sbin
  • /olen
  • /sbin
  • /snap/bin (kui Snap on installitud)

Kas soovite näha, millised kataloogid on praegu PATHi all registreeritud? Käivitage terminal ja käivitage järgmine käsk.





$viskas välja $ PATH

Siin on $ märk muutuja tähistamiseks. The viskas välja käsk prindib muutuja PATH väärtuse.



Miks on see konkreetne keskkonnamuutuja nii tähtis? Põhjus on selles, kuidas kest ja süsteem tervikuna seda kohtlevad. Muutuja PATH salvestab käivitatavaid faile. Iga käsu käivitamisel otsib kest sihtotstarbelise faili PATH -kataloogidest ja käivitab selle.

Näiteks proovime koos viskas välja käsk. Siin käivitan kaja käsu.

$viskas väljaTere, Maailm!

Kus on käivitatav fail viskas välja ? Selle teadasaamiseks käivitage järgmine käsk.

$mis viskas välja

Nagu näeme, viskas välja käivitatav fail asub aadressil/usr/bin/echo. Kus kumb asub? Uurime välja.

$mis mis

See asub ka aadressil/usr/bin/which. Enamik käsutööriistu asub kataloogi /usr /bin all. Siin konsulteerib bash käsuga PATH asukohtadega, kust otsida käsu käivitatavat faili.

PATH muutmine

Enne PATH väärtuse muutmist on oluline mõista selle struktuuri. Käivitage käsk uuesti, et kontrollida PATH väärtust.

$viskas välja $ PATH

Pange tähele, et iga kataloog on eraldatud märgiga:.

Kataloogi lisamine PATH -i

Kohandatud kataloogi lisamiseks PATH -ile kasutame bashrc -faili abi. See on eriline bash -skript, mida bash laadib iga kord, kui algab uus bash -seanss. Pange tähele, et bashrc -fail on unikaalne igale Linuxi süsteemi kasutajale.

Avage bashrc -fail tekstiredaktoris. Kui bashrc -faili pole veel olemas, loob redaktor selle automaatselt.

$ma tulin~/.bashrc

Siin on see Ubuntuga kaasas olev vaikimisi bashrc. Minge faili viimasele osale (kui see on olemas) ja lisage järgmine rida.

$eksportida RADA='$ PATH: / '

Siin on muutuja PATH uus väärtus vana muutuja koos äsja lisatud uue kataloogiga.

Salvestage fail ja käskige bashil see uuesti laadida.

$allikas~/.bashrc

Kontrollige, kas uue tee lisamine õnnestus.

$viskas välja $ PATH

Voila! PATH värskendamine õnnestus! Nüüd otsib bash ka käivitatavate failide uut teed. Mul on juba skript demo.sh töölaual. Vaatame, kas bash saab seda helistada ilma täpset asukohta täpsustamata.

$demo.sh

Jah, bash saab seda ilma probleemideta otse nimetada.

Kataloogi eemaldamine PATH -ist

Kataloogide lisamiseks/eemaldamiseks PATH -ist pole lihtsat viisi. Las ma selgitan.

PATH väärtus on tegelikult fikseeritud. Mis saab siis bashrc -nipist? Bashrc on bash -skript, mida bash laadib iga kord, kui see seanssi alustab. Bashrc'is teatasime just, et PATH uus väärtus on selle vaikeväärtus ja kasutaja määratud kataloog. Nüüd näeb bash iga kord laadides, et bashrc soovitab määrata uue väärtuse PATH ja seda ta teeb.

Samamoodi, kui soovime kataloogi PATH-ist eemaldada, peame bashrc-s uuesti määrama erineva PATH-i väärtuse, nii et iga kord, kui bash käivitub, kasutab see muudetud väärtust.

Vaatame seda näidet. Olen valmis eemaldama PATH -ist kataloogi ~/Desktop.

$viskas välja $ PATH | sed -Ja 's/: ~ /Desktop $ //'

Kui kataloog oleks/home/false/dir, näeks käsk välja selline.

$viskas välja $ PATH | sed -Ja 's/: /kodu /vale /dir $ //'

Siin on huvitav osa sed -tööriist. Lisateave sed -i kohta siin ja siin . Lühidalt, muutes sed -i, muudame viskas välja käsk. Nüüd saame seda muudetud väljundit kasutada PATH väärtuse muutmiseks.

Avage tekstiredaktoris bashrc ja lisage järgmised read. Jätan tahtlikult eelmised read, et tõestada, et see töötab.

$eksportida RADA='$ (echo $ PATH | sed -e 's/: ~ /Desktop $ //')'

Teise võimalusena saate PATH väärtuse käsitsi seadistada. See on töömahukas protsess, kuid selgem ja lihtsam.

$eksportida RADA=/usr/kohalik/sbin:/usr/kohalik/olen:/usr/sbin:/usr/olen:/sbin:/olen:
/usr/mängud:/usr/kohalik/mängud:/klõps/olen

Siin määratakse käsu väärtus PATH -ile. Salvestage fail ja laadige bashrc uuesti.

$allikas~/.bashrc

Kontrollime tulemust.

$viskas välja $ PATH

PATH väärtust värskendatakse!

Lõplikud mõtted

Bashis on muutuja PATH oluline. Iga programm, mis läbib bash -seansi, pärib muutuja, seega on oluline, et PATH sisaldaks ainult vajalikke katalooge. Kataloogi lisamine lisab süsteemile ainult koondamist.

Kõigi bashi keskkonnamuutujate vaatamiseks käivitage see käsk. Esimene käsuosa tagastab kõik keskkonnamuutujad ja teine ​​osa sorteerib väljundi kasvavas järjekorras.

$env | sorteerima

Kas soovite oma bash -kogemust vürtsitada? Bashi varjunimed pakuvad ainulaadset viisi asjade kiirendamiseks ja maitsestamiseks. Lisateave bash -varjunimede kohta .

Nautige!