Kommandoer er ikke bare kommandoer for diskoperativsystem. Stien er en liste over kataloger der skallet ser etter operativsystemkommandoer og andre kommandoer. Kommandoer er som korte programfiler. Så kommandoer er kjørbare filer. Hver applikasjon installert i datamaskinen leveres med en kjørbar fil. For å kjøre applikasjonen er den kjørbare filen først engasjert. Disse kjørbare filene kalles også kommandoer.
Uten banevariabelen ville hver kommando bli kommandert med den absolutte banen, som i,
/Home/John/Dir1/Dir2/Command.EXE
der den første / er rotkatalogen; John er brukerkatalogen for brukeren, John; Dir1 og Dir2 er underkataloger; og kommando.EXE er navnet på den kjørbare filen.
Mange andre navn er mulig for den kjørbare filen. Faktisk, kommando.Exe er symbolsk, her. Så hvis katalogen,/Home/John/Dir1/Dir2 (uten filen), er i banevariabelen, vil brukeren John utføre kommandoen.exe at the quarm, john@host: ~ $ ved ganske enkelt å skrive, kommando.exe, uten foregående sti. Det er:
John@vert: ~ $ kommando.EXE
og deretter trykke Enter.
For å se den gjeldende listen over banekataloger i datamaskinen, skriv: Skriv:
$ ekko $ bane
og trykk Enter, ved terminalen. Resultatet ville være noe sånt som,
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Spørsmålet nå er: Hvordan er en katalog (og dens foregående vei) lagt til banevariabelen? Med noen installasjoner legges katalogen automatisk. Med andre må det legges til manuelt. Denne artikkelen forklarer de to hovedveiene, der katalogen er lagt til. Katalogen er ikke lagt til (inkludert) som det ville bli gjort med en matrise. De to hovedveiene blir referert til som midlertidig tillegg og permanent tillegg. Bash er skallet som brukes til kodeeksemplene i denne artikkelen.
Artikkelinnhold
Midlertidig tillegg
Midlertidig tillegg betyr at tillegget bare foregår i minnet. Det lagres ikke for bruk når datamaskinen startes på nytt.
Bourne Shell innebygde eksportkommando
Enkelt sagt er eksportkommandoen:
$ eksport [navn [= verdi]]
I dette tilfellet tildeler den en verdi til en variabel i minnet.
Banevariabelen i minnet kan allerede ha verdi som,
Path =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Anta at katalogen som skal legges til er/Home/John/Dir1/Dir2. Hvis eksportkommandoen er skrevet som,
$ Eksportbane =/Home/John/Dir1/Dir2
Da/Home/John/Dir1/Dir2 vil erstatte alt det som allerede er i minnet som verdi for banevariabelen.
Hvis eksportkommandoen er skrevet som,
$ Eksportbane = $ bane:/Hjem/John/Dir1/Dir2
Deretter vil/Home/John/Dir1/Dir2 feste seg på slutten av det som allerede er i variabelen. Så den nye variabelen ville være:
Path =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/ Hjem/John/Dir1/Dir2
Legg merke til at i den forrige kodelinjen ovenfor, er den delen av verdien som allerede er der skilt fra den nye delen med en tykktarm, som er ':'. $ Bane i kodelinjen, utvides (erstattes) med verdien av banen som allerede er i minnet.
Nå kan den samme kommandoen være i mer enn en katalog. Når en kjørbar kommando skrives uten den foregående banen ved ledeteksten, begynner skallet å søke i verdien (strengen) for banevariabelen i minnet, fra venstre til høyre. Så med kodelinjen ovenfor,/Home/John/Dir1/Dir2 ville ankomme til slutt, i søket. Som vil at katalogen hans skal komme sist? - Ingen. Så en bedre måte å inkludere (legg til) katalogen, er som følger:
$ Eksportbane =/Home/John/Dir1/Dir2: $ Path
/Home/John/Dir1/Dir2 er nå i begynnelsen, atskilt fra neste katalog, med en tykktarm. Så med en ledetekst om “John@Host: ~ $”,
John@Host: ~ $ Eksportbane =/Hjem/John/Dir1/Dir2: $ Sti
Etter å ha skrevet og trykket på enter, kommandoen, kommandoen.Exe i katalogen, Dir2, ville bli utført med:
John@vert: ~ $ kommando.EXE
Så lenge datamaskinen ikke er slått av, vil brukeren fortsette å utføre kommandoen.exe uten å skrive den foregående banen.
Når datamaskinen er slått av, blir alt i tilfeldig tilgangsminne slettet. Den dårlige nyheten er at datamaskinbrukeren må gjenta denne prosessen med å legge til katalogen sin til banevariabelen hver gang datamaskinen startes på nytt. Ingen vil gjøre det i dag. Så den permanente tilleggstilnærmingen er den anbefalte tilnærmingen. Det vil si at tillegg til sti, må lagres (på harddisken).
Permanent tillegg
Fra diskusjonen ovenfor er ideen å lagre endringen som er gjort (på harddisken). Så hvis endringen lagres i en fil som Shell leser hver gang datamaskinen støvler, vil det være bra. Det vil si at hver gang datamaskinen støvler, vil banevariabelen i minnet bli oppdatert på riktig måte. Når en datamaskin starter, ved oppstart, leser den visse filer. En av filene Bash -skallet for Linux -leser er, ~/.Bashrc . Filnavnet er .Bashrc , begynner med prikken. Det er i brukerens katalog.
Bash er bare ett skall, sannsynligvis det mest populære skallet for Linux, i dag. Nok et skall for Linux er Zsh. Med Zsh er den tilsvarende filen ~/.Zshrc, Fortsatt i brukerens katalog. Når skallet starter, ved oppstart, leser det denne filen. For bash er filen, ~/.Bashrc . Så hvis ovennevnte tilleggskode skrives inn i ~/.Bashrc -fil, katalogen vil alltid være i minnet, som ~/.Bashrc vil alltid inkludere det i banen, hver gang datamaskinen støvler. Det forblir i minnet, til datamaskinen er stengt.
I bash, ~/.Bashrc er en skjult fil, så den ordinære bruken av kommandoen, LS vil ikke vise den. ~/.Bashrc inneholder noen bash (skall) kommandoer. Ubuntu er en variant av Linux. Ubuntu kommer med en tekstredigerer. I forfatterens datamaskin er bakgrunnen til Ubuntu Text Editor Black.
Ovennevnte tilleggskommando (uten ledeteksten) skal inkluderes til ~/.Bashrc -fil. Det er bra å legge den til på slutten av filen for ikke å temperere med det tilgjengelige innholdet, som sannsynligvis fungerer i orden.
Å åpne ~/.Bashrc i Ubuntu, skriv inn følgende ved ledeteksten på terminalen, og trykk Enter:
$ nano ~/.Bashrc
Hvor Nano er tekstredigereren. Her er Nano en kommando (kjørbar), hvis argument er, ~/.Bashrc . Innholdet i filen skal åpne i tekstredigereren for å legge over terminalvinduet.
~/.Bashrc -filen åpnes i Text Editor, sannsynligvis med svart bakgrunn. Markøren blinker øverst til venstre hjørne.
Trykk på ned-piletasten på tastaturet kontinuerlig til markøren når slutten av filen. Legg til en ny linje med,
$ Eksportbane =/Home/John/Dir1/Dir2: $ Path
Det er ikke alt. Endringen til ~/.Bashrc -filen er ikke lagret. For å lagre filen med endringen som er gjort, trykk CTRL+O, og følg eventuelle andre instruksjoner som vises. For å avslutte tekstredigereren, trykk CTRL+X, og det normale terminalvinduet skal erstatte tekstredigeringsvinduet. Andre skallkommandoer kan deretter utstedes.
Hvis "Echo $ Path" er utstedt, vil den nye katalogen ikke bli sett på displayet. Det er to måter å fortsette herfra: Start datamaskinen på nytt, eller få det nye innholdet i ~//.Bashrc -fil til minnet med kildekommandoen. Det er enkelt å bruke kildekommandoen, som følger:
$ kilde ~/.Bashrc
Hvis kildekommandoen er utstedt uten omstart, vil "Echo $ Path" vise den nye katalogen lagt til i resultatet (visning). Kommandoen av interesse kan deretter skrives uten foregående vei.
Merk: Ikke forveksle mellom slutten av banen (liste) og slutten av ~//.Bashrc -fil. Ikke forveksle mellom en katalog i banen i minnet, og en kjørbar fil i katalogen på harddisken.
Konklusjon
Sti er en innebygd variabel i Linux-skjell. Verdien av banen er en liste over kataloger atskilt av Colons. Det er en kommando (kjørbar fil) på harddisken for hver av disse katalogene. Hvis en kommando blir gitt ved selgeren uten foregående den med en bane, vil skallet se på disse katalogene for kommandoen. Hvis den ikke ser kommandoen i noen av katalogene, vil ikke kommandoen bli utført. I dette tilfellet, for å utføre kommandoen, må kommandoen gå foran med sin vei. Kommandoen kan være i mer enn en katalog i baneverdien. Så snart skallet ser den første katalogen som har kommandoen, utfører den kommandoen. Baneverdien er faktisk en streng som består av kataloger atskilt med koloner.
Problemet er hvordan du legger til katalogen for kjørbar av en ny applikasjon i banen. I noen tilfeller gjøres dette automatisk av installasjonsprogrammet til den nye applikasjonen. I andre tilfeller må det gjøres manuelt. Det er to måter å gjøre det manuelt, referert til som: midlertidig tillegg og permanent tillegg. Midlertidig tillegg bruker eksportkommandoen og legger bare til katalogen mens datamaskinen er på. Permanent tillegg må lagre eksportkommandolinjen i ~/.BASHRC Initialiseringsfil (BASH) for fremtidig drift.