Poate că ați auzit de Bash — shell-ul implicit pentru majoritatea distribuțiilor Linux. Există un alt shell care vine preinstalat pe Linux: shell-ul Bourne.
Shell-ul Bourne este unul dintre cele mai vechi shell-uri încă utilizate pe sistemele Linux moderne, chiar dacă nu este la fel de utilizat pe scară largă ca Bash. Iată ce trebuie să știți despre shell-ul Bourne pe Linux.
Ce este Bourne Shell?
Învelișul Bourne, adesea abreviat la „sh”, este numit după informaticianul britanic Stephen R. Bourne, care a dezvoltat-o în timp ce lucra la Bell Labs în 1978. Shell-ul a înlocuit Thompson Shell anterior, scris de unul dintre creatorii originali ai Unix, Ken Thompson.
Shell-ul Bourne a debutat cu versiunea 7 Unix în 1979. Avea caracteristici precum controlul fluxului, variabile și o gestionare îmbunătățită a șirurilor. Aceste caracteristici au făcut mai ușoară utilizarea shell-ului ca limbaj de programare, mai degrabă decât doar o modalitate de a apela alte programe.
În timp ce shell-ul Bourne a rămas popular pentru scrierea de scripturi portabile pe sisteme Unix, a fost înlocuit pentru utilizare interactivă de către shell-ul C, KornShell, shell-ul Bourne Again, cunoscut și sub numele de Bash și Z coajă. Aceste cochilii au oferit caracteristici precum
istoricul comenzilor și editarea liniei de comandă care a făcut viața mai ușoară utilizatorilor și administratorilor.KornShell, Bash și Z shell (acoperite mai târziu) au sintaxe influențate de shell-ul Bourne.
Limbaje de scriptare multiplatformă mai puternice, cu funcții și mai avansate, cum ar fi Perl și Python, au înlocuit, de asemenea, în mare măsură scripturile shell.
Cu toate acestea, shell-ul Bourne este înțeles pe scară largă și o mulțime de scripturi furnizate cu programele Linux își folosesc sintaxa pentru diverse sarcini.
Comportamentul carapacei Bourne a fost codificat în standardul POSIX, atât de multe sisteme moderne asemănătoare Unix-ului îl implementează într-un fel folosind un shell compatibil.
Alternative moderne Bourne Shell
Există mai multe alternative moderne open-source la shell-ul original Bourne pe sistemele Linux. Iată câteva dintre cele mai cunoscute:
1. Bourne Again Shell (Bash)
Numele Bourne Again shell (Bash) este o piesă pe carapacea Bourne. Acest shell a fost dezvoltat inițial ca o componentă a sistemului GNU, precedând Linux de câțiva ani.
Este în mare măsură compatibil cu scripturile scrise inițial pentru shell-ul Bourne. De asemenea, a încorporat funcții precum editarea în linie de comandă, lansată de KornShell.
Bash este shell-ul implicit pentru multe distribuții Linux și, prin urmare, a devenit un standard de facto în sine.
2. KornShell
KornShell, cunoscut și sub numele de ksh, a fost dezvoltat inițial de David Korn, tot la Bell Labs, în anii 1980. Construit pe shell-ul Bourne, KornShell a introdus câteva caracteristici suplimentare, cum ar fi controlul jobului, matricele și editarea în linia de comandă. Acesta din urmă a fost o caracteristică revoluționară când a apărut pentru prima dată, deoarece a fost mult mai ușor decât utilizarea mecanismului de istorie al shell-ului C.
Dacă trebuia să reeditați o comandă emisă anterior, puteți utiliza comenzi similare cu Vi sau Emacs pentru a face acest lucru.
KornShell a fost implicit pe unele sisteme Linux comerciale, cum ar fi Oracle Solaris. Întrucât KornShell original a fost lansat inițial de AT&T sub o licență proprietară, o versiune open-source numită pdksh a fost în cele din urmă lansată.
3. Almquist/Debian Almquist Shell
Carcasa Almquist a fost scrisă inițial de Kenneth Almquist și a fost concepută ca un înlocuitor ușor pentru carcasa Bourne. Multe sisteme BSD îl includ ca implementare a sh.
O versiune a fost portată la Debian în anii 1990 și este cunoscută ca shell-ul Debian Almquist. După cum sugerează și numele, este implementarea sh pe sistemele Debian și Ubuntu.
4. Z Shell
Z coajă, sau zsh, este una dintre cele mai noi shell-uri, dezvoltată inițial în 1990 de Paul Falsted. Z shell a devenit binecunoscut pentru caracteristicile sale avansate. Un bun exemplu este globbing recursiv sau abilitatea de a potrivi metacaracterele în subdirectoare.
Z shell este shell-ul implicit de conectare pentru macOS și Kali Linux.
Compatibilitate Bourne Shell
În timp ce aceste shell-uri sunt în mare măsură compatibile cu scripturile scrise inițial pentru shell-ul Bourne, există modalități de a-și schimba comportamentul pentru a fi mai asemănător cu shell-ul original.
Principala modalitate de a face acest lucru este prin o legătură simbolică. Majoritatea sistemelor vor face linkuri simbolice /bin/sh fie la Bash, fie la alt shell. Când este invocat în acest fel, shell-ul va intra într-un mod de compatibilitate cu shell-ul Bourne.
Puteți vedea care coajă /bin/sh este legat de cu comanda ls:
ls -l /bin/sh
Acum știți despre Bourne Shell
Shell-ul Bourne este unul dintre cele mai vechi standarde de scriptare pe sisteme asemănătoare Unix. Chiar dacă a fost înlocuit de alte shell-uri, este totuși vital pentru rularea scripturilor scrise de alții.
Bash este unul dintre cele mai bune derivate Bourne pentru codificare, în special pentru abordarea variabilelor. Are câteva variabile unice care vă pot face să doriți să o luați în considerare pentru următorul proiect.