Enamik Linuxi kasutajaid ei tea sageli operatsioonisüsteemi sisemist tööd. Võimalik, et kasutate kesta peal Linuxi käske pikka aega, kuid kas olete kunagi mõelnud, mis tabamisel kulisside taga toimub Sisenema?
Lõpuks saate lühidalt aru, kuidas kest töötleb Linuxis trükitud käsku.
Käsu töötlemine
Käsu sisestamisel murrab kest esimese asjana kogu käsu "märkideks". Seejärel otsib kest käsurealt programmi nime, mis kuulub esimese märgi juurde.
Kui see ei leia seda ühestki määratletud otsingutee kataloogist $ PATH keskkonnamuutuja või kohalikus kataloogis .\ operaator või see pole a kesta varjunimi või kestafunktsioon, annab kest vea. Kui see leiab kehtiva käsu, läbib kest seejärel kõik muud märgid ja otsustab, kas see on muutuja, kesta parameeter või käsu argument.
Kui kest määrab, et see on muutuja või parameeter nagu ~ kodukataloogi operaator, laiendab kest neid või asendab need käsu algväärtustega.
Kui kest on mingeid parameetreid või muutujaid laiendanud, edastab see käsurealt käsu, käivitades programmi koos argumentidega. Kest ei määra, kas mõni argument on kehtiv. See on komando ülesanne.
Käsu käivitamine
Kui kest käivitab teise käsu, kuidas see naaseb samale viipale, mida varem kasutasite? Kest teeb endast koopia, seda protsessi nimetatakse kahvliks. See koopia koopia asendab end käsuga kõigi varem töödeldud argumentidega. Seda tuntakse kui "exec" ja kombineeritud protsessi tuntakse kui "fork-and-exec".
Näiteks kui jooksed käsk ls, kestprotsess hargneb ennast kasutades kahvel () meetodit ja looge teine kest. Kahest süsteemis töötavast kestprotsessist täidab täiendav kest ls, kasutades exec () funktsiooni, muutes ennast käsu ls eksemplariks.
Vahepeal ootab algne kest käsu täitmist. See on põhjus, miks saate tööde peatamiseks kasutada töid ja lasta töid taustal käivitada.
Seotud: Mis on protsess Linuxis?
Väljumise oleku teatamine
Linuxi käsud teatavad väljumise oleku kaudu, kas need õnnestusid või mitte. Nagu nimigi ütleb, teatavad programmid töötamise lõpetamisel oma väljumisolekust. Nad teevad seda läbi $? keskkonnamuutuja, mis sisaldab viimase käivitamise käsu väljumise olekut.
Kokkuleppe kohaselt näitab väljumise olek 0 edukat täitmist, samas kui kõik muu kui 0 tähendab tavaliselt viga. Sõltuvalt sellest, kuidas teie viip on konfigureeritud, võib teie kest näidata käsureal ka nulli väljumise olekut.
Ülaltoodud ekraanipilt on näide, mis näitab kohandatud Zsh -viiba, mis näitab eksimisoleva käsu tõttu vea väljumise olekut 127.
Nüüd teate, kuidas Linuxi käsud töötavad
Nüüd, kui olete teadlik sellest, kuidas Linuxi kest töötleb käsku, hargneb ja täidab ise ning kuidas programmid teatavad oma väljumisolekust, saate käsurea tõhusamalt kasutada.
Mitmed Linuxi kestad on kasutajatele tasuta saadaval. Kuigi igaüks neist täidab enam -vähem sama tööd, on nad paljudes aspektides erinevad. Võite proovida mõnda kesta oma süsteemi installida ja ise otsustada, milline neist teile kõige paremini sobib.
Kas otsite Linuxi bash shelli alternatiivi? Siin on ülevaade sellest, milline Linuxi kest on parim: tsch, fish, KornShell ja Z Shell.
Loe edasi
- Linux
- Linuxi käsud
- Linux Bash Shell
David on vabakutseline kirjanik, kes asub Vaikse ookeani loodeosas, kuid pärineb algselt lahe piirkonnast. Ta on tehnoloogiahuviline olnud lapsepõlvest saadik. Davidi huvide hulka kuulub lugemine, kvaliteetsete telesaadete ja filmide vaatamine, retromängud ja plaatide kogumine.
Telli meie uudiskiri
Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!
Tellimiseks klõpsake siin