Was ist die Bash-Shell und warum ist sie für Linux so wichtig?

Eine Abbildung eines Laptops, der ein Terminal mit Textzeilen zeigt.

fatmawati achmad zaenuri/Shutterstock.com



Die Bash-Shell ist über 30 Jahre alt und immer noch stark. Was macht es, woher kommt es und warum ist es immer noch die am häufigsten verwendete Shell auf Linux-Systemen?

Was ist eine Muschel?

Wenn Sie ein Terminalfenster öffnen und Befehle eingeben, muss etwas das, was Sie eingegeben haben, aufnehmen, herausfinden, was Sie beabsichtigt haben, und die Aufgaben ausführen, nach denen Sie gefragt haben. Die Software, die dies tut, ist die Shell. Eine Shell ist ein Befehlsinterpreter. Es scannt, was Sie eingegeben haben und wählt die Befehle, Verzeichnisnamen, Dateinamen und Programmnamen aus, damit es herausfinden kann, was Sie erreichen möchten.





Was ist ein TTY unter Linux? (und wie man den tty-Befehl verwendet) VERBUNDEN Was ist ein TTY unter Linux? (und wie man den tty-Befehl verwendet) Die Leute verwenden die Ausdrücke Terminalfenster, Befehlszeile und Shell oft austauschbar, aber es handelt sich um drei verschiedene Dinge. Ein Terminalfenster ist eine Softwaredarstellung eines physischen Fernschreiberterminal . Es stellt eine Verbindung zum Computer her. Um etwas Nützliches zu tun, müssen Sie in der Lage sein, Anweisungen in einer Befehlszeile einzugeben. Die Befehlszeile wird von der Shell bereitgestellt, und über das Terminalfenster können Sie auf die Shell zugreifen.

Mit Shells können Sie auch eine Sammlung von Befehlen in eine Textdatei namens Skript zusammenfassen. Alle Befehle im Skript werden bei jeder Ausführung des Skripts für Sie ausgeführt. Skripte bieten Effizienz, Wiederholbarkeit und Komfort.



Der Erste Unix Schale war die Thompson-Schale , genannt |_+_|. Es wurde geschrieben von Ken Thompson , der möglicherweise das wichtigste Mitglied der ursprünglichen Unix-Gründerväter bei . ist Bell Labs . Als Standard-Unix-Shell wurde bis einschließlich Unix Version 6 die Thompson-Shell verwendet. Sie wurde durch die Bourne-Schale in Version 7 von Unix im Jahr 1979.

VERBUNDEN: Was ist Unix und warum ist es wichtig?

Die Bourne-Muschel

Die Bourne-Shell, geschrieben von Stephen Bourne , war ein verbesserter Ersatz für die Thompson-Shell. Es wurde sogar mit dem gleichen Befehl wie die Thompson-Shell, |_+_|, gestartet, um die Abwärtskompatibilität mit bestehenden Skripten aufrechtzuerhalten. Abwärtskompatibilität war wichtig, aber es wurden neue Funktionen hinzugefügt, die viele Funktionen bereitstellten, die wir heute noch verwenden.



Anzeige

Die Bourne-Shell war eine interaktive Shell und eine Skriptsprache. Es unterstützte die Ausführung von Vordergrund- und Hintergrundaufgaben und die elementare Jobsteuerung. Pipes und Umleitung wurden hinzugefügt, zusammen mit Verbesserungen bei der Handhabung von Schleifen.

Die Shell enthielt jetzt einige integrierte Befehle, was bedeutet, dass sie nicht alles an externe Dienstprogramme weitergeben musste, was sie effizienter machte. Die Bourne-Shell wird sogar unterstützt hier Dokumente, eine elegante Möglichkeit, das Senden von Daten in Befehle zu automatisieren.

Die Bourne-Schale legte die Messlatte höher und wurde zum neuen Standard.

VERBUNDEN: So verwenden Sie 'Hier-Dokumente' in Bash unter Linux

Die Geburt von Bash

1984, als die GNU-Projekt kündigte seine Absicht an, einen kostenlosen Unix-Klon zu erstellen – von Grund auf neu geschrieben und mit a neue, freizügige Lizenzierung – das Team brauchte eine Hülle. Als ein Freiwilliger, der an einer Shell für das GNU-Projekt gearbeitet hatte, wiederholt nichts lieferte, Brian Fox wurde damit beauftragt, einen Klon der Bourne-Shell zu schreiben.

Es wurde die genannt Bourne Again Shell , oder Bash. Dies war teils eine Hommage an Stephen Bourne und teils Wortspiele aus Gründen des Wortes. Nach seiner Veröffentlichung im Jahr 1989 Chet Ramey hat einige Bugfixes zu Bash beigetragen. Er wurde schließlich Mitbetreuer der Bash-Shell. Heute ist er immer noch der Betreuer des Bash-Projekts.

Linus Torvalds , der Schöpfer des Linux-Kernels, sagte, dass die ersten beiden Programme, die er 1991 auf seinem neuen Kernel laufen ließ, Bash und |_+_| waren. Der Compiler von GNU . Die Paarung der GNU-Dienstprogramme mit dem Linux-Kernel war für beide Seiten von Vorteil. Das GNU-Betriebssystem brauchte einen Kernel, und der Linux-Kernel brauchte alles andere, was einen Unix-Klon ausmacht.

Anzeige

Da Bash die Standard-GNU-Shell ist, wurde sie zur Standard-Shell auf allen GNU/Linux-Distributionen. Linux florierte so weit, dass es jetzt eine erstaunlich viel der modernen Welt . Auch die Bash-Shell surfte auf dieser Erfolgswelle.

Bash integriert und verbessert den Funktionsumfang der Bourne-Shell, hat sich aber auch von anderen Shells inspirieren lassen, z C-Schale (|_+_|) und die KornShell (|_+_|). Zum Beispiel die Ausdehnung der Tilde |_+_| auf den Wert im |_+_| Umgebungsvariable kommt aus der C-Shell und die |_+_| Befehl, der den Standardeditor für Befehle in aufruft die Befehlshistorie kommt aus der KornShell.

Bash führte Konfigurationsdateien ein, wie z die .bashrc- und .bash_profile-Dateien . Die Befehlszeilenbearbeitung in Bash übertraf die Fähigkeiten früherer Shells bei weitem. Die Manipulation von zuvor ausgeführten Befehlen in der Befehlshistorie war eine verbesserte Version der Bang-History-Funktion der C-Shells. Die Brace-Erweiterung war eine Funktion, die in der Bourne-Shell fehlte, die in Bash als Obermenge der in der C-Shell gefundenen Funktionalität implementiert wurde. Arrays wurden verbessert, indem ihre Größenbeschränkungen entfernt wurden. Die Parametererweiterung in der Eingabeaufforderung ermöglicht es Benutzern, ihre Bash-Eingabeaufforderung anzupassen.

Die Bash-Shell zielt darauf ab, mit den POSIX P1003.2/ISO 9945.2 Shell und Dienstprogramme Standard.

VERBUNDEN: Hat Linux kommerzielles Unix getötet?

Warum Bash immer noch wichtig ist

Ein Apple MacBook Pro, das teilweise geschlossen ist und im Dunkeln leuchtet.

Omar Tursic/Shutterstock.com

Bash hätte nicht so lange – über 30 Jahre – als Standard-Linux-Shell bestehen können, wenn sie der Aufgabe nicht gewachsen wäre. Aufgrund seiner langen Lebensdauer und massiven Benutzerbasis ist Bash ausgereift und sehr stabil. Es gibt viele alternative Shells, von Veteranen wie der C-Shell und der KornShell bis hin zu neueren Shells wie der Z-Schale (|_+_|) und das Freundliche interaktive Shell (|_+_|). Sowohl die Z-Shell als auch die Fish-Shell haben einige Funktionen, die Bash nicht bietet, sowie wohl bessere Möglichkeiten, einige der gleichen Dinge zu erreichen, die Bash tut. Warum ist Bash immer noch die dominierende Shell?

Von allen Linux-Rechnern, die ich jemals verwalten musste, erinnere ich mich an keinen einzigen, der nicht Bash als Shell hatte. Unix-Rechner, ja, aber Linux-Boxen, nein. Es ist jedes Mal Bash. Dank dieser Vertrautheit können Sie schnell mit der Arbeit beginnen und sofort effektiv sein. Sie kennen Bash bereits, also gibt es keine Lernkurve. Sie werden nicht durch winzige Unterschiede in der Syntax lähmt, die Sie dazu bringen, sich im Kreis zu drehen und herauszufinden, warum etwas nicht funktioniert. Zeit damit verbracht, herauszufinden, was die Beschwörung sein sollte Dies Shell ist tot, daher liegt es im Interesse des Kundengeschäfts, eine bekannte und weit verbreitete Shell zu verwenden.

Anzeige

Die Verwendung einer Shell, die POSIX-kompatibel ist oder sehr bemüht ist, ist für viele Linux-Distributionen von Bedeutung, aber wichtiger ist die Kompatibilität mit früheren Versionen. Änderungen vorzunehmen, die bestehende Skripte zerstören könnten, ist offensichtlich unattraktiv. Attraktiv oder nicht, manchmal muss man einfach in den sauren Apfel beißen. Am 3. September 1967 wurde in Schweden vom Linksverkehr auf den Rechtsverkehr umgestellt. Um 4.50 Uhr musste der gesamte Verkehr anhalten, langsam auf die andere Straßenseite rollen und wieder anhalten. Um 5:00 Uhr konnte der Verkehr weiterlaufen, alle fuhren nun rechts.

Wird Bash jemals ersetzt werden?

Was jetzt undenkbar erscheint, kann später tatsächlich passieren. Wenn wir nicht an dem Glauben festhalten wollen, dass wir alle Bash bis zum Weltuntergang verwenden werden, ist die Wahrheit wahrscheinlich, dass Bash eines Tages als Standard-Linux-Shell ersetzt wird – ob es immer noch die GNU-Standard-Shell ist oder nicht. Oder vielleicht wird es Bash sein, aber weit über die Shell hinaus, die wir heute verwenden. Aber was auch immer an die Stelle der heutigen Bash tritt, muss entweder vollständig (oder fast) abwärtskompatibel sein oder den Umbruch wert sein, was auch immer die Vorteile sein mögen.

Dies ist nicht ohne Beispiel. Seit Version 10.15 von macOS , Apple hat die Bash fallen gelassen und die Z-Shell als Standard-Shell übernommen. Apple hat Probleme mit der GNU General Public License (GPL) v.3. Leider ist dies die Lizenz, die Bash verwendet. Die letzte Version von Bash, die unter GPL v.2 veröffentlicht wurde, war die Version 3.2 von 2007. Die aktuelle Version ist 5.1. Apple lag fast anderthalb Jahrzehnte zurück. Die einzige Möglichkeit, wie Apple eine aktuelle Shell einbinden konnte, ohne auf GPL v.3 umzusteigen, bestand darin, ganz auf eine andere Shell umzusteigen. Für Apple war das den Umbruch wert. (Du kannst aber trotzdem wechsle zurück zu Bash auf macOS wenn es dir lieber ist!)

Zwischen der Workstation eines Power-Users und einem Linux-Line-of-Business-Server, den Sie aus der Ferne verwalten müssen, liegen Welten. über eine SSH-Verbindung . Von fast 1,5 Millionen von Amazon EC2 gehosteten Servern über 93% verwenden Linux . Fast 75% der Webserver laufen unter Linux . Unternehmen wie Red Hat, Amazon und Google verwenden Linux intern.

Es ist schwer vorstellbar, welche Vorteile eine neue Hülle bieten könnte, die einen solchen globalen Umbruch rechtfertigen würde. Deshalb ist Bash an Ort und Stelle zementiert.

Sogar Microsoft bietet jetzt eine Möglichkeit, Führen Sie eine Linux-basierte Bash-Shell unter Windows 10 aus !

WEITER LESEN Profilfoto von Dave McKay Dave McKay
Dave McKay benutzte zum ersten Mal Computer, als Lochstreifen in Mode waren, und programmiert seitdem. Nach über 30 Jahren in der IT-Branche ist er heute hauptberuflich Technologiejournalist. Im Laufe seiner Karriere war er als freiberuflicher Programmierer, Leiter eines internationalen Softwareentwicklungsteams, Projektleiter für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Sein Schreiben wurde von howtogeek.com, cloudavvyit.com, itenterpriser.com und opensource.com veröffentlicht. Dave ist ein Linux-Evangelist und Open-Source-Verfechter.
Vollständige Biografie lesen

Interessante Artikel