De flesta Linux -användare är ofta omedvetna om operativsystemets interna funktion. Du kanske kör Linux -kommandon på skalet länge, men har du någonsin undrat vad som händer bakom kulisserna när du slår Stiga på?
I slutet har du en kort förståelse för hur skalet behandlar det skrivna kommandot i Linux.
Behandlar kommandot
När du anger ett kommando är det första som skalet gör att dela hela kommandot i "tokens". Skalet letar sedan efter ett programnamn som tillhör den första token på kommandoraden.
Om den inte hittar den i någon av katalogerna i sökvägen som definieras i miljövariabeln $ PATH eller i den lokala katalogen med .\ operatör, eller så är det inte en skalalias eller skalfunktion, kommer skalet att ge ett fel. Om den hittar ett giltigt kommando går skalet sedan igenom var och en av de andra tokensna och avgör om det är en variabel, en skalparameter eller ett argument till kommandot.
Om skalet bestämmer att det är en variabel eller en parameter som ~ operatör för hemkatalogen, kommer skalet att expandera dem eller ersätta dem med sina ursprungliga värden i kommandot.
När skalet har utökat några parametrar eller variabler, kommer det att passera längs kommandosträngen till kommandot och köra programmet med dess argument. Skalet avgör inte om några argument är giltiga. Det är kommandoens jobb.
Kör kommandot
När skalet startar ett annat kommando, hur kommer det tillbaka till samma prompt som du använde tidigare? Skalet gör en kopia av sig själv, en process som kallas gaffel. Denna kopia av skalet ersätter sig själv med kommandot, med alla argument som bearbetades tidigare. Detta är känt som en "exec" och den kombinerade processen är känd som "gaffel-och-exec".
Till exempel när du kör kommandot ls, skalprocessen kommer att gaffla sig med hjälp av gaffel() metod och skapa en annan skalinstans. Av de två skalprocesserna som körs på systemet kommer det extra skalet att köra ls med exec () funktion, omvandlar sig till en instans av ls -kommandot.
Under tiden väntar det ursprungliga skalet på att kommandot ska slutföras. Det är därför du kan använda jobbkontroll för att avbryta jobb och få jobb att köras i bakgrunden i skalet.
Relaterad: Vad är en process i Linux?
Rapportera utgångsstatus
Linux -kommandon rapporterar om de körde framgångsrikt eller inte genom deras utgångsstatus. Som namnet antyder, rapporterar program deras utgångsstatus när de är färdiga. De gör detta genom $? miljövariabel, som innehåller utgångsstatus för det senaste körningskommandot.
Enligt konvention indikerar en utgångsstatus 0 ett framgångsrikt utförande, medan allt annat än 0 vanligtvis betyder ett fel. Ditt skal kan också indikera en utgångsstatus som inte är noll på kommandoraden beroende på hur din uppmaning är konfigurerad.
Ovanstående skärmdump är ett exempel som visar en anpassad Zsh -prompt som visar en felutgångsstatus på 127 på grund av ett kommando som inte finns.
Nu vet du hur Linux -kommandon fungerar
Nu när du är medveten om hur Linux -skalet behandlar ett kommando, gafflar och exekverar sig själv, och hur program rapporterar deras utgångsstatus, kan du använda kommandoraden mer effektivt.
Flera Linux -skal är tillgängliga för användarna gratis. Även om var och en av dem utför mer eller mindre samma jobb, är de olika i många aspekter. Du kan försöka installera några av skalen på ditt system och själv bestämma vilken som passar dig bäst.
Letar du efter ett Linux bash shell -alternativ? Här är en översikt över vilket Linux -skal som är bäst: tsch, fish, KornShell och Z Shell.
Läs Nästa
- Linux
- Linux -kommandon
- Linux Bash Shell

David är frilansskribent baserad i Stillahavsområdet, men kommer ursprungligen från Bay Area. Han har varit en teknikentusiast sedan barndomen. Davids intressen inkluderar att läsa, titta på TV -serier och filmer av hög kvalitet, retrospel och skivsamling.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!
Klicka här för att prenumerera