Bourne-Shell

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Die Bourne Shell / sh (auch: Bourne-Shell) von Stephen R. Bourne erschien 1977/1978 zusammen mit Unix V7 und ist der Vorfahre der meisten heutigen Shells. Auf fast allen kommerziellen Unix-Varianten findet sich bis heute eine spätere Version der Bourne Shell, auch wenn sie als Systemshell ("/bin/sh") zunehmend durch andere Shells ersetzt wird. Diese Shell hatte auf Version 7 bereits alle wesentlichen Eigenschaften wie Ein-/Ausgabeumlenkung, Pipes, Hintergrundprozesse und Kontrollstrukturen. Bezüglich der Befehlszeileneditierung verlässt sich die Bourne-Shell auf den Terminaltreiber, der nur das Löschen der ganzen Zeile (CTRL+U) und des letzten Zeichens (DEL) erlaubt.

Im Lauf der Zeit wurde die ursprüngliche Bourne Shell erweitert und verändert. Da sie nie eine sichtbare Versionierung erfuhr, ist die jeweilige Variante nur durch Testen der vorhandenen Eigenschaften herauszufinden. Die Bezeichnung ergibt sich dann mit der Variante des AT&T Unix, mit dem sie ausgeliefert wurde (V7, System III, System V Release 1 - kurz SVR1, SVR2, -3, -4, -4.2).

Die Bourne Shell-Syntax ist Grundlage der meisten modernen Unix-Shells, die im Wesentlichen eine Erweiterung dieser Shell darstellen. Skripts für die Bourne Shell sind praktisch ohne Änderung auch auf diesen späteren Shells lauffähig. Die Skriptfähigkeiten der Bourne Shell waren richtungsweisend und sie ist bis heute eine der beliebtesten Skriptsprachen für Unix. Aus diesem Grund und zwecks Rückwärtskompatibiliät liegt generell eine Bourne Shell-kompatible Shell als "/bin/sh" vor, da der POSIX-Standard nach POSIX.2 (1992) fordert, dass jedes konforme Betriebssystem durch den Aufruf von "sh" eine POSIX-konforme Shell startet. Da POSIX ein Mindeststandard ist, finden sich dort manchmal weit über diesen Standard hinaus gehende Shells. Da die Bourne-Shell nach POSIX immer verfügbar ist, ist es aus Portabilitätsgründen sinnvoll, Shellskripte für diese Shell zu schreiben, wenn sie auf unterschiedlichen Unix-Rechnern laufen sollen. Als Anwendershell kann dabei durchaus auch eine andere Shell benutzt werden, da das Shellskript die benötigte Shell selbst starten kann.

Seit dem Erscheinen der C-Shell mit 4.1BSD wird die Bourne-Shell meist nur noch für Skripte verwendet, insbesondere für solche, welche Aufgaben des Systems erledigen, weil sie bei der interaktiven Bedienung keine Editiermöglichkeiten vorsieht. Hierfür eignen sich Weiterentwicklungen wie tcsh, die Korn Shell oder die Bourne Again Shell wesentlich besser.

Nachdem die OpenSolaris/SVR4-Variante der Bourne Shell von Sun Microsystems als Open Source veröffentlicht wurde, ist diese Shell dank des Heirloom-Projekts mittlerweile auch auf freien Unix-Varianten verfügbar.

Konfiguration

Beim Start der Bourne-Shell als Login-Shell werden folgende Dateien abgearbeitet (falls sie vorhanden sind).

  1. "/etc/profile" (gilt für alle Benutzer und sorgt für eine gleiche Startumgebung)
  2. "~/.profile" (Benutzereinstellungen)

Unter Ubuntu 8.04 Hardy Heron ist "/bin/sh" ein Alias für "/bin/dash".

$ whereis sh
sh: /bin/sh.distrib /bin/sh /usr/share/man/man1/sh.1.gz
$  ls -al /bin/sh
lrwxrwxrwx 1 root root 4 2008-08-02 18:01 /bin/sh -> dash
$ ls -al /bin/dash
-rwxr-xr-x 1 root root 79988 2008-03-12 12:22 /bin/dash

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger Die Bourne-Shellwbm Enzyklopädischer Artikel