Coaja de bash are vârsta de peste 30 de ani și continuă să fie puternică. Ce face, de unde a venit și de ce este încă cea mai comună coajă pe sistemele Linux?
Ce este o coajă?
Când deschideți o fereastră terminală și comenzi de tip, ceva trebuie să ia ceea ce ați scris, să vă dați seama ce intenționați și să executați sarcinile pe care le-ați cerut. Software-ul care face acest lucru este coaja. O cochilie este un interpret de comandă. Scanează ceea ce ați introdus și scoateți comenzile, numele directorului, numele fișierelor și numele programelor, astfel încât să vă ducă să aflați ce încercați să obțineți.
Oamenii folosesc adesea frazele "Windows terminal", "linia de comandă" și "coajă" interschimbabil, dar sunt trei lucruri distincte. O fereastră terminală este o reprezentare software a unui fizic Terminalul TELETYPE. . Vă oferă o conexiune la computer. Pentru a face ceva util, trebuie să puteți introduce instrucțiuni la o linie de comandă. Linia de comandă este furnizată de cochilie, iar fereastra Terminal vă permite să accesați carcasa.
Shells vă permit, de asemenea, să faceți parcelă o colecție de comenzi într-un fișier text numit un script. Toate comenzile din script sunt executate pentru dvs. de fiecare dată când executați scenariul. Scripturile oferă eficiența, repetabilitatea și comoditatea.
Primul
Unix.
Shell era
Thompson Shell.
, numit
SH
. A fost scrisă de
Ken Thompson.
, care este posibil cel mai important membru cheie al părinților fondatori inițial inițial la
Bell Labs.
. Cochilia Thompson a fost folosită ca o coajă UNIX implicită până la versiunea Unix 6. A fost înlocuită de
Bourne Shell.
În versiunea 7 a Unix în 1979.
LEGATE DE: Ce este Unix, și de ce contează?
Cochilia Bourne.
Cochilia Bourne, scrisă de
Stephen Bourne.
, a fost o înlocuire modernizată pentru coaja Thompson. Sa început chiar și folosind aceeași comandă ca și cochilia Thompson,
SH
, Pentru a menține compatibilitatea înapoi cu scripturile existente. Compatibilitatea înapoi a fost importantă, dar au fost incluse noi caracteristici care au oferit multă funcționalitate pe care o folosim astăzi.
Shell Bourne a fost o coajă interactivă și un limbaj de scripting. A sprijinit în prim plan și o sarcină de fond și controlul elementar al locurilor de muncă. Au fost adăugate țevi și redirecționarea, împreună cu îmbunătățiri ale buclelor de manipulare.
Shell-ul conține acum câteva comenzi încorporate, ceea ce înseamnă că nu a trebuit să treacă totul la utilități externe, făcându-l mai eficient. Cochilia Bourne chiar acceptată "Aici documente" o modalitate elegantă de a automatiza trimiterea datelor în comenzi.
Bacul Bourne a ridicat barul și a devenit noul standard.
LEGATE DE: Cum se utilizează "aici documente" în Bash pe Linux
Nașterea bash
În 1984, când Proiectul GNU. și-a anunțat intenția de a face o clonă Unix gratuit scrisă de la pământ în sus și cu a Noua licențiere permisivă Echipa avea nevoie de o cochilie. Când un voluntar care lucrase la o cochilie pentru proiectul GNU nu a reușit să livreze nimic, deloc, Brian Fox. a fost însărcinată cu scrierea unei clone a cochiliei burine.
A fost numit Bourne din nou coajă , sau bash. Acest lucru a fost parțial în omagiu pentru Stephen Bourne și parțial WordPlay de dragul ei. După eliberarea sa în 1989, Chet Ramey a contribuit cu unele remedii de bug-uri la bash. El a devenit în cele din urmă un co-întreținător al cochiliei de bash. În zilele noastre, el este încă întreținătorul proiectului Bash.
Linus torvalds.
, Creatorul kernelului Linux, a spus că primele două programe pe care le-a fugit la noul său kernel în 1991 au fost bash și
GCC.
,
Compilerul lui Gnu.
. Asocierea utilităților GNU cu kernelul Linux a fost reciproc avantajoasă. Sistemul de operare GNU a avut nevoie de un kernel, iar kernelul Linux avea nevoie de altceva care constituie o clonă UNIX.
Deoarece Bash este coaja GNU standard, a devenit coaja standard pe toate distribuțiile GNU / Linux. Linux a înflorit până la punctul în care stau acum la un an Suma uimitoare a lumii moderne . Shell Bash a survenit și valul de succes.
Bash încorporează și se îmbunătățește pe setul de caracteristici al cochiliei Bourne, dar, de asemenea, sa inspirat din alte cochilii, cum ar fi
C shell.
(
csh.
) si
Kornshell.
(
KSH.
). De exemplu, extinderea tildei "
~
"La valoarea deținută în
$ HOME
Variabila de mediu provine din cochilia C și
FC.
Comanda care invocă editorul implicit la comenzile din
Istoria comenzii
vine de la Kornshell.
Bash a introdus fișiere de configurare, cum ar fi Fișierele ".bashrc" și ".bash_profile" . Editarea liniei de comandă pe bash a depășit capacitățile de cochilii anterioare. Manipularea comenzilor executate anterior în istoria comenzii a fost o versiune îmbunătățită a caracteristica "Bang Istoric" de cochilii C. Expansiunea Brace a fost o caracteristică care lipsea din cochilia Bourne care a fost implementată în Bash ca o supersetă a funcționalității găsite în cochilia C. Arrays au fost îmbunătățite prin eliminarea limitelor de mărime. Expansiunea parametrilor în promptul de comandă permite utilizatorilor să-și personalizeze promptul de bash.
Cochilia de bash își propune să fie compatibilă cu POSIX P1003.2 / ISO 9945.2 Shell și utilități standard.
LEGATE DE: Linux Kill Kill Commercial Unix?
De ce bash este încă important
Bash nu ar fi putut să-l ducă pe această lungă perioadă de 30 de ani - ca o coajă de Linux implicită dacă nu era la locul de muncă. Datorită duratei sale de viață îndelungată și a bazei masive de utilizare, bashul este matur și foarte stabil. Există multe cochilii alternative disponibile, de la veterani precum cochilia C și Kornshell la cochilii mai noi ca
Z coajă (
Zsh.
)
si
CHELLY interactivă prietenoasă
(
peşte
). Atât coaja Z, cât și cochilia de pește au unele caracteristici care Bash nu are și modalități mai bune de a obține unele dintre aceleași lucruri pe care le face Bash. Deci, de ce este bash încă coaja dominantă?
Din toate mașinile Linux am fost chemat vreodată să administreze, nu-mi amintesc un singur care nu avea bash ca coajă. Mașini UNIX, da, dar cutii Linux, nr. Este bash de fiecare dată. Această familiaritate vă permite să faceți să lucrați repede și să fiți imediat departe. Știți deja Bash, deci nu există o curbă de învățare. Nu primiți Hamstrung de mici diferențe în sintaxa care vă duc în cercuri care încearcă să-și dea seama de ce ceva nu funcționează. Timpul petrecut imaginând ceea ce ar trebui să fie incantația acest Shell este timpul mort, deci este în interesul afacerii clientului să utilizeze o coajă bine cunoscută și utilizată pe scară largă.
Folosind o cochilie care este-sau încearcă foarte mult să fie compatibilă cu mai multe distribuții Linux, dar ceea ce contează mai mult este compatibilitatea cu versiunile anterioare. Efectuarea de schimbări care ar putea sparge scripturile existente este evident neatractivă. Atractiv sau nu, uneori, trebuie doar să muști glonțul. La 3 septembrie 1967, Suedia a schimbat de la conducere la stânga la conducere pe dreapta. La ora 4:50 a.m., tot traficul a trebuit să se oprească, să se întoarcă încet pe cealaltă parte a drumului și să se oprească încă o dată. La ora 5:00 a.m., traficul ar putea continua, cu toată lumea care conduce acum în dreapta.
Va fi înlocuit vreodată?
Ceea ce ar putea părea de neconceput acum se poate întâmpla de fapt mai târziu. Dacă nu vrem să ne agățim de convingerea că vom folosi cu toții bash până la doomsday, adevărul este probabil că într-o zi, Bash va fi înlocuit ca o carcasă implicită Linux - fie că este încă coajă standard GNU sau nu. Sau poate că va fi bash, dar este îmbunătățită cu mult dincolo de cochilie pe care o folosim astăzi. Dar ceea ce ia locul bash de astăzi va trebui fie să fie complet (sau foarte aproape) compatibil înapoi sau merită răsturnarea, indiferent de beneficiile.
Acest lucru nu este fără precedent. De cand Versiunea 10.15. de Macos. , Apple a scăzut bash și a adoptat coaja Z ca coajă implicită. Apple are probleme cu licența publică generală GNU (GPL) V.3. Din păcate, aceasta este licența pe care o folosește Bash. Ultima versiune de Bash a fost lansată în conformitate cu GPL V2 a fost versiunea 3.2 a lui 2007. Versiunea curentă este de 5.1. Apple era aproape un deceniu și jumătate în urmă. Singura modalitate prin care Apple ar putea include o coajă actualizată fără să se deplaseze la GPL V.3 a fost să se mute într-o altă cochilie cu totul. La Apple, care merita răsturnarea. (Cu toate acestea, puteți Comutați înapoi la Bash pe MacOS Dacă o preferați!)
Există o lume de diferență între stația de lucru a utilizatorului de putere și un server Linux Linux de la Business, pe care trebuie să-l administrați de la distanță Peste o conexiune SSH . Din aproape 1,5 milioane de servere găzduite de Amazon EC2, Peste 93% rulează Linux . Aproape 75% din serverele web rulează Linux. . Organizații precum Red Hat, Amazon și Google utilizează Linux In-House.
Este greu să vă imaginați ce beneficii ar putea oferi o nouă coajă care să justifice acest tip de răsturnare globală. De aceea, bashul este cimentat în loc.
Chiar și Microsoft oferă acum o cale de a Rulați o coajă de bash bazată pe Linux pe Windows 10 A!