Majoritatea utilizatorilor Linux nu sunt adesea conștienți de funcționarea internă a sistemului de operare. S-ar putea să rulați comenzi Linux pe shell pentru o lungă perioadă de timp, dar v-ați întrebat vreodată ce se întâmplă în culise atunci când loviți introduce?

Până la final, veți avea o scurtă înțelegere a modului în care shell-ul procesează comanda tastată în Linux.

Procesarea comenzii

Când introduceți o comandă, primul lucru pe care îl face shell-ul este să rupă întreaga comandă în „jetoane”. Shell-ul va căuta apoi un nume de program aparținând primului simbol din linia de comandă.

Dacă nu îl găsește în niciunul dintre directoarele din calea de căutare definită în variabila de mediu $ PATH sau în directorul local cu .\ operator, sau nu este un alias shell sau funcția shell, shell-ul va da o eroare. Dacă găsește o comandă validă, shell-ul va trece prin fiecare dintre celelalte jetoane și va decide dacă este o variabilă, un parametru shell sau un argument pentru comandă.

Dacă shell-ul determină că este o variabilă sau un parametru ca

instagram viewer
~ operator pentru directorul de start, shell-ul le va extinde sau le va înlocui cu valorile lor originale din comandă.

Când shell-ul a extins parametrii sau variabilele, acesta va trece de-a lungul șirului de comandă la comandă, rulând programul cu argumentele sale. Shell-ul nu determină dacă argumentele sunt valide. Asta e treaba comenzii.

Rularea comenzii

Când shell-ul lansează o altă comandă, cum revine la același prompt pe care îl utilizați înainte? Coaja face o copie de la sine, un proces numit bifurcare. Această copie a shell-ului se înlocuiește cu comanda, cu toate argumentele care au fost procesate anterior. Acest lucru este cunoscut sub numele de "exec", iar procesul combinat este cunoscut sub numele de "fork-and-exec".

De exemplu, când alergi comanda ls, procesul shell se va furniza singur folosind furculiţă() metoda și creați o altă instanță shell. Din cele două procese de shell care rulează pe sistem, shell-ul suplimentar va executa ls folosind exec () funcție, transformându-se într-o instanță a comenzii ls.

Între timp, shell-ul original așteaptă finalizarea comenzii. Acesta este motivul pentru care puteți utiliza controlul lucrărilor pentru a suspenda lucrările și pentru a executa lucrările în fundal în shell.

Legate de: Ce este un proces în Linux?

Raportarea stării de ieșire

Comenzile Linux raportează dacă au rulat cu succes sau nu prin starea lor de ieșire. După cum sugerează și numele, programele își raportează starea de ieșire când termină de rulat. Ei fac acest lucru prin intermediul $? variabilă de mediu, care conține starea de ieșire a ultimei comenzi de rulare.

Prin convenție, o stare de ieșire 0 indică o execuție reușită, în timp ce orice altceva decât 0 înseamnă de obicei o eroare. Shell-ul dvs. ar putea indica, de asemenea, o stare de ieșire diferită de zero pe linia de comandă, în funcție de modul în care este configurat promptul.

Captura de ecran de mai sus este un exemplu care arată un prompt Zsh personalizat care arată o stare de ieșire a erorii de 127 din cauza unei comenzi care nu există.

Acum știți cum funcționează comenzile Linux

Acum, că sunteți conștient de modul în care shell-ul Linux procesează o comandă, se bifurcă și se execută în sine, și modul în care programele raportează starea lor de ieșire, puteți utiliza linia de comandă mai eficient.

Mai multe shell-uri Linux sunt disponibile gratuit utilizatorilor. În timp ce fiecare dintre ele îndeplinește mai mult sau mai puțin aceeași meserie, ele sunt diferite în multe aspecte. Puteți încerca să instalați unele dintre shell-uri pe sistemul dvs. și să decideți singur care vi se potrivește cel mai bine.

AcțiuneTweetE-mail
Care Linux Shell este cel mai bun? 5 cochilii comune comparate

Căutați o alternativă bash shell Linux? Iată un rezumat al cărui shell Linux este cel mai bun: tsch, fish, KornShell și Z Shell.

Citiți în continuare

Subiecte asemănătoare
  • Linux
  • Comenzi Linux
  • Linux Bash Shell
Despre autor
David Delony (57 articole publicate)

David este un scriitor independent cu sediul în nord-vestul Pacificului, dar originar din zona golfului. A fost un pasionat de tehnologie încă din copilărie. Interesele lui David includ citirea, vizionarea de emisiuni și filme TV de calitate, jocuri retro și colectarea de înregistrări.

Mai multe de la David Delony

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona