source er en hendig innebygd shell-kommando som godtar argumenter, analyserer kommandoer i et skript og kjører dem i shell-miljøet. Filens innhold leses av kilde og sendes deretter videre til Tool Command Language (TCL)-tolken, som utfører kommandoene.
La oss lære hvordan du bruker kildekode til å utføre kommandoer og arbeide med skallmiljøer på Linux, sammen med en kort forklaring på hvordan den skiller seg fra bash-kommandoen.
Bruk kilde til å utføre kommandoer i en fil
For å bruke kildekommandoen må du først lage en eksempelfil og fylle den ut med noen skallkommandoer. Start med å lage en ny fil med berøringskommandoen. Åpne filen i et tekstredigeringsprogram etter eget valg og skriv noen grunnleggende skallkommandoer.
ta påtest.tekst
vitest.tekst# Skriv kommandoene i tekstfilen:
ekko "Hallo!"
pwd
ls
# Kilde filen med enten kilde- eller punktsyntaks
. test.tekst
kildetekst.tekst
Skriv ut tekstfilen og fortsett å sende den som et argument til kildekommandoen. Systemet vil utføre kommandoene i filen og vil returnere en utdata.
Nå som du vet det grunnleggende om hvordan du bruker kildekode, la oss prøve å endre Bash shell-miljøet. Men før du fortsetter, må du ha en grunnleggende forståelse av miljøvariabler i Linux.
Bruk kildekommandoen til å oppdatere Bash Shell-miljøet
På Linux er miljøvariabler arvet, men uforanderlige. Hvis du kjører et Bash shell-skript som endrer en miljøvariabel $TEST, vil skriptet skape en ny, forked shell-prosess, og modifikasjon av $TEST vil finne sted i den i stedet for den originale Bash miljø.
Den underordnede prosessen vil ikke kunne endre den overordnede prosessens miljø. Den kan bare endre sitt eget miljø. La oss forstå dette med et praktisk eksempel:
eksport TEST="deb"
vi eksempel# Skriv inn disse kommandoene i filen
eksport TEST="seng"
ekko $TEST
# Skriv ut filen, gjør den kjørbar og kjør den
chmod +x eksempel
./eksempel # dette vil returnere "seng"
ekko $TEST # dette vil returnere "deb"
Her er hvor kildekommandoen kommer inn i bildet. Med kildekommandoen kan du kjøre et skript i det samme skallmiljøet, som ellers ville ha blitt forkastet. Så hvis du henter inn et skript som endrer miljøvariabler, vil det gjøre endringene for Bash-skallmiljøet.
For å teste det ut, skriv kommandoene i kodeboksen ovenfor i en ny fil og bruk kildekommandoen i stedet for å gjøre den kjørbar.
# Opprett en ny fil og rediger den
vi test fil
. test_fil
ekko $TEST # Dette vil returnere "seng"
Som du kan se, ved å bruke kildekommandoen, var du i stand til å oppdatere miljøvariablene til den overordnede prosessen. Dette er det primære brukstilfellet av kildekommandoen, dvs. for å endre det overordnede miljøet.
Det er alle trinnene du trenger for å oppdatere Bash shell-miljøet med kildekommandoen.
Forskjellen mellom Linux bash og kildekommandoer
Forskjellen mellom Linux bash og kildekommandoer er at når du kjører et skript med bash-kommandoen, forteller det Linux kjerne for å lage en ny Bash-prosess for å lese og kjøre skriptet, kopiere utdataene til den originale shell-prosessen og vise den.
Men kildekommandoen er et skall innebygd som leser og evaluerer en fil innenfor gjeldende shell-prosess. Så alle endringer som gjøres av skriptet vil bli beholdt i Bash-skallet.
Feilsøke kildekommandofeil
I noen Linux-systemer kan du støte på feilen "kilde ikke funnet" mens du prøver å bruke kildekommandoen. Du kan fikse denne feilen på to måter:
1. Bytt skallet
Noen skall støtter ikke kildekommandoen. I så fall må du endre skallmiljøet med chsh -s ($hvilket skallnavn) kommando.
Fyr opp en ny terminal etterpå endre skallet ditt, og prøv å bruke kildekommandoen. Hvis det nye skallet støtter sourcing, bør det fungere feilfritt.
2. Bruk punkt-/periodesyntaksen
Noen skallmiljøer støtter ikke "kilde"syntaks men alternativet"."syntaks. "Kilde"-syntaksen er et synonym for prikk i Bash. Men dette fungerer ikke i POSIX-skallet, så for maksimal kompatibilitet, bruk periodesyntaksen.
Grunnleggende Linux-kommandoer du bør kjenne til
Linux-skallkommandoer er en fin måte å samhandle med systemet ved hjelp av terminalen. De er selve essensen av å bruke *NIX-systemer.
Selv om du ikke trenger å kjenne alle kommandoene, vil det å være kjent med noen få nyttige helt sikkert vise seg å være fruktbart når du begir deg dypt inn i Linux-verdenen.