Sie haben vielleicht schon von Bash gehört – der Standard-Shell auf den meisten Linux-Distributionen. Es gibt eine weitere Shell, die unter Linux vorinstalliert ist: die Bourne-Shell.

Die Bourne-Shell ist eine der ältesten Shells, die noch auf modernen Linux-Systemen verwendet wird, auch wenn sie nicht so weit verbreitet ist wie Bash. Folgendes müssen Sie über die Bourne-Shell unter Linux wissen.

Was ist die Bourne-Shell?

Die Bourne-Shell, oft mit „sh“ abgekürzt, ist nach dem britischen Informatiker Stephen R. Bourne, der es 1978 während seiner Arbeit bei Bell Labs entwickelte. Die Shell ersetzte die frühere Thompson Shell, die von einem der ursprünglichen Schöpfer von Unix, Ken Thompson, geschrieben wurde.

Die Bourne-Shell debütierte 1979 mit Version 7 Unix. Es hatte Funktionen wie Flusskontrolle, Variablen und verbessertes String-Handling. Diese Funktionen erleichterten die Verwendung der Shell als Programmiersprache und nicht nur als Möglichkeit, andere Programme aufzurufen.

Während die Bourne-Shell zum Schreiben portabler Skripte über Unix-Systeme hinweg beliebt blieb, war sie es ersetzt für die interaktive Verwendung durch die C-Shell, KornShell, Bourne Again-Shell, auch bekannt als Bash, und Z Hülse. Diese Schalen boten Funktionen wie

instagram viewer
Befehlsverlauf und Befehlszeilenbearbeitung die das Leben für Benutzer und Administratoren einfacher machten.

KornShell, Bash und Z-Shell (später behandelt) haben Syntaxen, die von der Bourne-Shell beeinflusst werden.

Leistungsfähigere plattformübergreifende Skriptsprachen mit noch fortschrittlicheren Funktionen wie Perl und Python ersetzten auch weitgehend das Shell-Skripting.

Dennoch ist die Bourne-Shell weithin bekannt und viele Skripte, die mit Linux-Programmen geliefert werden, verwenden ihre Syntax für verschiedene Aufgaben.

Das Verhalten der Bourne-Shell wurde in kodifiziert dem POSIX-Standard, so viele moderne Unix-ähnliche Systeme implementieren es auf irgendeine Weise, indem sie eine kompatible Shell verwenden.

Moderne Bourne-Shell-Alternativen

Es gibt mehrere moderne Open-Source-Alternativen zur ursprünglichen Bourne-Shell auf Linux-Systemen. Hier sind einige der bekanntesten:

1. Bourne Again Shell (Bash)

Der Name Bourne Again-Shell (Bash) ist ein Spiel mit der Bourne-Shell. Diese Shell wurde ursprünglich als Komponente des GNU-Systems entwickelt und war mehrere Jahre älter als Linux.

Es ist weitgehend kompatibel mit Skripten, die ursprünglich für die Bourne-Shell geschrieben wurden. Es enthielt auch Funktionen wie die von KornShell eingeführte Befehlszeilenbearbeitung.

Bash ist die Standard-Shell auf vielen Linux-Distributionen und hat sich daher zu einem eigenen De-facto-Standard entwickelt.

2. KornShell

KornShell, auch bekannt als ksh, wurde ursprünglich in den 1980er Jahren von David Korn, ebenfalls bei Bell Labs, entwickelt. Aufbauend auf der Bourne-Shell führte KornShell einige zusätzliche Funktionen wie Auftragssteuerung, Arrays und Befehlszeilenbearbeitung ein. Letzteres war ein revolutionäres Feature, als es zum ersten Mal erschien, weil es viel einfacher war, als den History-Mechanismus der C-Shell zu verwenden.

Wenn Sie einen zuvor ausgegebenen Befehl erneut bearbeiten müssen, können Sie dazu ähnliche Befehle wie Vi oder Emacs verwenden.

KornShell war ein Standard auf einigen kommerziellen Linux-Systemen wie Oracle Solaris. Da die ursprüngliche KornShell ursprünglich von AT&T unter einer proprietären Lizenz veröffentlicht wurde, wurde schließlich eine Open-Source-Version namens pdksh veröffentlicht.

3. Almquist/Debian Almquist-Shell

Die Almquist-Shell wurde ursprünglich von Kenneth Almquist geschrieben und war als leichter Ersatz für die Bourne-Shell gedacht. Viele BSD-Systeme enthalten es als Implementierung von sh.

Eine Version wurde in den 1990er Jahren auf Debian portiert und ist als Debian Almquist Shell bekannt. Wie der Name schon sagt, handelt es sich um die Implementierung von sh auf Debian- und Ubuntu-Systemen.

4. Z-Schale

Z-Schale, oder zsh, ist eine der neuesten Shells, die ursprünglich 1990 von Paul Falsted entwickelt wurde. Die Z-Shell ist für ihre fortschrittlichen Funktionen bekannt geworden. Ein gutes Beispiel ist rekursives Globbing oder die Möglichkeit, Platzhalter in Unterverzeichnissen zu finden.

Die Z-Shell ist die Standard-Anmelde-Shell für macOS und Kali Linux.

Bourne-Shell-Kompatibilität

Während diese Shells weitgehend mit Skripten kompatibel sind, die ursprünglich für die Bourne-Shell geschrieben wurden, gibt es Möglichkeiten, ihr Verhalten so zu ändern, dass es der ursprünglichen Shell ähnelt.

Der Hauptweg, dies zu tun, ist durch eine symbolische Verbindung. Die meisten Systeme werden symbolisch verlinkt /bin/sh entweder zu Bash oder einer anderen Shell. Wenn sie auf diese Weise aufgerufen wird, wechselt die Shell in einen Kompatibilitätsmodus mit der Bourne-Shell.

Sie können sehen, welche Schale /bin/sh ist mit verknüpft der ls-Befehl:

ls -l /bin/sh

Jetzt kennen Sie die Bourne-Shell

Die Bourne-Shell ist einer der ältesten Standards für die Skripterstellung auf Unix-ähnlichen Systemen. Selbst wenn es durch andere Shells ersetzt wurde, ist es immer noch wichtig, um Skripte auszuführen, die von anderen geschrieben wurden.

Bash ist eines der besten Bourne-Derivate zum Codieren, insbesondere wegen seiner Herangehensweise an Variablen. Es hat einige einzigartige Variablen, die Sie vielleicht dazu bringen, es für Ihr nächstes Projekt in Betracht zu ziehen.