Večina uporabnikov Linuxa se pogosto ne zaveda notranjega delovanja operacijskega sistema. Morda že dlje časa izvajate ukaze Linuxa v lupini, a ste se kdaj vprašali, kaj se dogaja v ozadju, ko zadenete Vnesite?
Na koncu boste na kratko razumeli, kako lupina obdeluje tipkani ukaz v Linuxu.
Obdelava ukaza
Ko vnesete ukaz, lupina najprej razbije celoten ukaz v "žetone". Lupina bo nato poiskala ime programa, ki pripada prvemu žetonu v ukazni vrstici.
Če ga ne najde v nobenem imeniku na poti iskanja, opredeljeni v spremenljivko okolja $ PATH ali v lokalnem imeniku z .\ operater ali pa ni vzdevek lupine ali lupino, bo lupina dala napako. Če najde veljaven ukaz, bo lupina pregledala vse druge žetone in se odločila, ali gre za spremenljivko, parameter lupine ali argument ukaza.
Če lupina ugotovi, da gre za spremenljivko ali parameter, kot je ~ operator za domači imenik, jih bo lupina razširila ali zamenjala z izvirnimi vrednostmi v ukazu.
Ko lupina razširi katere koli parametre ali spremenljivke, bo prenesla ukazni niz v ukaz in zagnala program s svojimi argumenti. Lupina ne določa, ali so argumenti veljavni. To je naloga poveljstva.
Izvajanje ukaza
Ko lupina zažene nov ukaz, kako se vrne na isti poziv, ki ste ga uporabljali prej? Lupina naredi kopijo samega sebe, proces, imenovan viličarstvo. Ta kopija lupine se nadomesti z ukazom z vsemi argumenti, ki so bili obdelani prej. To je znano kot "exec", kombinirani postopek pa kot "fork-and-exec".
Na primer, ko tečete ukaz ls, se bo proces lupine razcepil z uporabo vilica () metodo in ustvarite nov primerek lupine. Od dveh lupinskih procesov, ki se izvajajo v sistemu, bo dodatna lupina izvedla ls z uporabo exec () funkcijo, ki se pretvori v primerek ukaza ls.
Medtem izvirna lupina čaka, da se ukaz dokonča. Zato lahko z nadzorom opravil prekinete opravila in opravite opravila v ozadju v lupini.
Povezano: Kaj je proces v Linuxu?
Poročanje o statusu izhoda
Ukazi Linuxa poročajo, ali so bili uspešno izvedeni ali ne prek statusa izstopa. Kot že ime pove, programi poročajo o stanju izstopa, ko končajo z izvajanjem. To počnejo skozi $? spremenljivka okolja, ki vsebuje stanje izhoda zadnjega ukaza za zagon.
Po dogovoru izhodni status 0 označuje uspešno izvedbo, medtem ko vse drugo kot 0 običajno pomeni napako. Vaša lupina lahko kaže tudi stanje izhoda brez ničle v ukazni vrstici, odvisno od tega, kako je vaš poziv konfiguriran.
Zgornji posnetek zaslona je primer, ki prikazuje prilagojen poziv Zsh, ki prikazuje stanje izhoda napake 127 zaradi ukaza, ki ne obstaja.
Zdaj veste, kako delujejo ukazi Linuxa
Zdaj, ko se zavedate, kako lupina Linux obdeluje ukaz, se razcepi in izvrši ter kako programi poročajo o stanju izstopa, lahko učinkoviteje uporabite ukazno vrstico.
Uporabnikom je na voljo brezplačno več lupin Linuxa. Medtem ko vsak od njih opravlja bolj ali manj isto delo, sta si v marsičem različna. Poskusite namestiti nekatere lupine v svoj sistem in se sami odločiti, katera vam najbolj ustreza.
Iščete alternativo bash shell za Linux? Tu je povzetek, katera lupina Linuxa je najboljša: tsch, fish, KornShell in Z Shell.
Preberite Naprej
- Linux
- Ukazi Linuxa
- Linux Bash Shell

David je samostojni pisatelj s sedežem na pacifiškem severozahodu, vendar izvira iz območja zaliva. Že od otroštva je navdušen nad tehnologijo. Davidova zanimanja vključujejo branje, gledanje kakovostnih televizijskih oddaj in filmov, retro igre na srečo in zbiranje posnetkov.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!
Kliknite tukaj, če se želite naročiti