Većina korisnika Linuxa često nije svjesna unutarnjeg rada operacijskog sustava. Možda ste dugo radili Linux naredbe na ljusci, ali jeste li se ikada zapitali što se događa iza kulisa kad pogodite Unesi?
Do kraja ćete imati kratko razumijevanje o tome kako ljuska obrađuje upisanu naredbu u Linuxu.
Obrada naredbe
Kada unesete naredbu, ljuska prvo učini da cijelu naredbu razbije na "tokene". Ljuska će tada tražiti naziv programa koji pripada prvom tokenu u naredbenom retku.
Ako ga ne pronađe u bilo kojem od direktorija na stazi pretraživanja definiranoj u varijablu okruženja $ PATH ili u lokalnom imeniku sa .\ operater ili nije a alias ljuske ili shell funkcija, ljuska će dati pogrešku. Ako ipak pronađe valjanu naredbu, ljuska će zatim proći kroz svaki drugi token i odlučiti je li to varijabla, parametar ljuske ili argument naredbe.
Ako ljuska utvrdi da se radi o varijabli ili parametru poput ~ operator za početni direktorij, ljuska će ih proširiti ili zamijeniti izvornim vrijednostima u naredbi.
Kad ljuska proširi bilo koje parametre ili varijable, proslijedit će naredbeni niz naredbi, pokrećući program sa svojim argumentima. Ljuska ne utvrđuje jesu li argumenti valjani. To je posao zapovjedništva.
Pokretanje naredbe
Kad ljuska pokrene drugu naredbu, kako se vraća na isti upit koji ste koristili prije? Ljuska pravi svoju kopiju, proces koji se naziva račvanje. Ova kopija ljuske zamjenjuje se naredbom sa svim argumentima koji su obrađeni ranije. To je poznato kao "exec", a kombinirani proces je poznat kao "fork-and-exec".
Na primjer, kada trčite naredba ls, ljuska proces će se sam račvati pomoću vilica () metodu i stvoriti drugu instancu ljuske. Od dva procesa ljuske koji se izvode na sustavu, dodatna ljuska će izvesti ls koristeći exec () funkciju, pretvarajući se u instancu naredbe ls.
U međuvremenu, izvorna ljuska čeka da se naredba dovrši. To je razlog zašto možete koristiti kontrolu poslova za obustavu poslova i pokretanje poslova u pozadini u ljusci.
Povezano: Što je proces u Linuxu?
Prijava statusa izlaza
Naredbe Linuxa izvješćuju jesu li uspješno izvršile status izlaska ili ne. Kao što naziv sugerira, programi izvješćuju o statusu izlaska kada završe s radom. To čine kroz $? varijabla okruženja, koja sadrži izlazni status posljednje naredbe izvođenja.
Prema dogovoru, izlazni status 0 označava uspješno izvršavanje, dok sve osim 0 obično znači pogrešku. Vaša ljuska također može ukazivati na status izlaza koji nije nula u naredbenom retku, ovisno o tome kako je vaš upit konfiguriran.
Gornji snimak zaslona je primjer koji prikazuje prilagođeni Zsh upit koji prikazuje status izlaza greške 127 zbog naredbe koja ne postoji.
Sada znate kako funkcioniraju naredbe za Linux
Sada kada ste svjesni kako Linux ljuska obrađuje naredbu, forkira se i izvršava i kako programi izvještavaju o statusu izlaska, možete učinkovitije koristiti naredbeni redak.
Nekoliko Linux ljuski dostupno je korisnicima besplatno. Iako svaki od njih obavlja manje -više isti posao, oni su različiti u mnogim aspektima. Možete pokušati instalirati neke ljuske na svoj sustav i sami odlučiti koja vam najbolje odgovara.
Tražite alternativu bash ljuske za Linux? Evo kratkog prikaza koja je Linux ljuska najbolja: tsch, fish, KornShell i Z Shell.
Pročitajte Dalje
- Linux
- Linux naredbe
- Linux Bash ljuska
David je slobodni pisac sa sjeverozapada Pacifika, ali izvorno potječe iz zaljevskog područja. Oduševljen je tehnologijom od djetinjstva. Davidovi interesi uključuju čitanje, gledanje kvalitetnih TV emisija i filmova, retro igre i skupljanje ploča.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu