Copyright © 1995 by O'Reilly/International Thomson Verlag

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches "Linux - Wegweiser zur Installation & Konfiguration", dann klicken Sie hier.


Kapitel 3

Shells

Wir haben bereits erwähnt, daß beim Einloggen eine Shell für Sie geöffnet wird. Das gleiche geschieht, wenn Sie mit xterm ein Fenster unter X aufmachen. Die Shell interpretiert Ihre Befehle und führt sie aus. Wir wollen uns zunächst ein wenig mit den verschiedenen Shells befassen, weil sie auch Einfluß auf einige Punkte haben, die wir weiter unten im Text besprechen.

Falls Sie es verwirrend finden, daß es unter UNIX so viele verschiedene Shells gibt, betrachten Sie das einfach als ein Zeichen der Evolution. Glauben Sie uns: Sie wären bestimmt nicht glücklich, wenn Sie mit der ersten für UNIX entwickelten Shell, der Bourne-Shell, arbeiten müßten. Obwohl das zu ihrer Zeit (Mitte der 70er Jahre) eine tolle Benutzerschnittstelle war, fehlen ihr doch einige nützliche Möglichkeiten bei der interaktiven Arbeit -- u.a. die Dinge, auf die wir in diesem Abschnitt noch eingehen. Deshalb sind im Laufe der Zeit andere Shells entwickelt worden, und das gibt Ihnen die Gelegenheit, die Shell auszuwählen, die Ihrer Arbeitsweise am besten entspricht.

Für Linux gibt es u.a. folgende Shells:

bash
Bourne-Again-Shell. Unter Linux die am häufigsten benutzte Shell. Sie entspricht dem POSIX-Standard, ist zur Bourne-Shell kompatibel und wird vom GNU-Projekt der Free Software Foundation entwickelt und verteilt. Die bash ermöglicht auch das Editieren der Befehlszeile.
csh
C-Shell. Wurde in Berkeley entwickelt. Ist bei der interaktiven Arbeit weitgehend kompatibel zur Bourne-Shell, bietet aber eine andere Schnittstelle bei der Shell-Programmierung. Editieren der Befehlszeile ist nicht möglich, aber es gibt einen ausgefeilten Ersatz namens History-Substitution dafür.
ksh
Korn-Shell. Ist vielleicht die beliebteste UNIX-Shell überhaupt und war die erste, die die Bourne-Shell um einige Merkmale moderner Benutzerschnittstellen erweiterte (einige davon wurden von der C-Shell übernommen). Ist kompatibel zur Bourne-Shell und bietet Editiermöglichkeiten in der Befehlzeile.
sh
Bourne-Shell. Das Original. Kennt kein Editieren der Befehlzeile.
tcsh
Erweiterte C-Shell mit der Möglichkeit, die Befehlszeile zu editieren.
zsh
Z-Shell. Die neueste der Shells. Kompatibel zur Bourne-Shell. Editieren der Befehlszeile ist möglich.
Geben Sie folgenden Befehl ein, wenn Sie herausfinden möchten, mit welcher Shell Sie arbeiten. Sie erhalten den vollen Pfadnamen zu Ihrer Shell. Vergessen Sie nicht, das Dollar-Zeichen mit einzugeben:
$  echo $SHELL

Die Wahrscheinlichkeit ist groß, daß Sie mit bash arbeiten, der Bourne-Again-Shell. Falls Sie sich in einer anderen Shell wiederfinden ist dies vielleicht eine gute Gelegenheit, auf bash umzusteigen. Die bash ist äußerst umfangreich, folgt dem POSIX-Standard, wird gut unterstützt und ist unter Linux sehr beliebt. Mit dem Befehl chsh können Sie eine andere Shell auswählen:

$  chsh 
Enter Password:  Type your Password here -- this is for security's sake 
The current shell is: /bin/sh
You can choose one of the following:
1: /bin/sh
2: /bin/bash
Enter a number between 1 and 2:  2 
Shell changed.

Die Unterschiede zwischen den Shells lassen sich aus verschiedenen Blickwinkeln betrachten.

Einerseits kann man Bourne-Shell-kompatible von C-Shell-kompatiblen Schnittstellen unterscheiden. Dieser Gesichtspunkt ist interessant, wenn es um die Programmierung der Shell geht (das Schreiben von Shell-Skripts). Die Bourne- und die C-Shell benutzen unterschiedliche Konstrukte für die Shell-Programmierung. Unter den meisten Leuten gilt die Bourne-Shell als die bessere Alternative und es gibt viele UNIX-Utilities, die nur unter der Bourne-Shell laufen.

Andererseits kann man Shells auch danach einteilen, ob sie das Editieren der Kommandozeile erlauben oder nicht (alle neueren Shells bieten diese Möglichkeit). Sowohl der sh als auch der csh fehlt diese nützliche Erweiterung.

Wenn Sie diese beiden Kriterien -- Kompatibilität mit der Bourne-Shell und das Editieren der Befehlszeile -- miteinander kombinieren, bleiben die Shells bash , ksh und zsh als sinnvolle Alternativen übrig. Sie sollten verschiedene Shells ausprobieren, bevor Sie sich endgültig entscheiden. Es kann auch von Vorteil sein, mehr als eine Shell zu kennen, wenn Sie einmal vor einem System sitzen, auf dem nicht alle Shells vorhanden sind.


Inhaltsverzeichnis Vorherige Abschnitt Nächste Abschnitt