Es gibt unter Unix nicht nur einen Kommandointerpreter wie etwa unter DOS, sondern verschiedene, völlig unterschiedliche Formen der Shells. Historisch gesehen war die erste Shell eine sehr einfache Form von Kommandointerpreter, geschrieben von einem gewissen Steven R. Bourne. Diese Shell wurde schlicht sh genannt und trug den Beinamen Bourne-Shell.

Die vielen C-Programmierer, die mit Unix arbeiteten fanden die Programmierung der Bourne-Shell sehr umständlich und entwarfen eine Shell, die sich sehr eng an der Sprache C orientierte und die folgerichtig auch C-Shell (csh) genannt wurde. Sie bot schon einige Features, die uns heute selbstverständlich scheinen, wie etwa die Kommandowiederholung. Die C-Shell wurde zur Standard-Shell von Berkley-Unix.

Später kam es zu Weiterentwicklungen der Bourne-Shell, die dann als Korn-Shell (ksh, benannt nach ihrem Entwickler David Korn) auf den Markt kam. Die Korn-Shell hatte einige Features der C-Shell übernommen und war damit schon wesentlich komfortabler als ihr Original.

Die verschiedenen kommerziellen Unixe entwickelten dann jeweils eigene Shells, die aber immer entweder kompatibel zur C-Shell oder zur Bourne-Shell waren. Noch heute hat eigentlich jedes Unix eine Bourne kompatible Shell in seinem Angebot.

Als die Free Software Foundation schließlich auf der Suche nach einem Modell für die ultimative Shell war, beschloß sie, die alte Bourne-Shell wieder zum Leben zu erwecken und sie mit allen Features aller anderen Shells auszustatten, die inzwischen entwickelt waren. Damit wurde die heute leistungsfähigste Shell entworfen, die Bourne Again Shell oder kurz bash.

Alles, was wir hier über die Shells darstellen werden, sowohl die Bedienung, als auch die Programmierung der Shell, wird sich auf die bash beziehen, die Programmierung kann aber praktisch uneingeschränkt auch für die klassischen Bourne-Shells übernommen werden. Die Programmierung der C-Shell ist dagegen ein Kapitel, das den Rahmen dieses Kurses sicherlich sprengen würde, setzt sie doch ein gehöriges Maß an Kenntnis der Programmiersprache C voraus.

Im Folgenden werden die wichtigsten Themen zur Shell angerissen, die mit dem Umgang mit ihr zu tun haben. Erst im nächsten Kapitel wird es dann gesondert um die Programmierung der Shell gehen.

Wenn im Folgenden von Tastenkombinationen die Rede sein wird, dann gelten zwei verschiedene Regeln. Eine Kombination mit der Strg-Taste wird wie üblich gleichzeitig mit dem zu drückenden Zeichen durchgeführt. Wenn also Strg-x gedrückt werden soll, dann bedeutet das, dass beide Tasten (Strg und x) gleichzeitig gedrückt werden sollen. Wird aber eine Tastenkombination mit der Esc-Taste eingeleitet, so wird zuerst die Esc-Taste und dann die entsprechende Taste gedrückt. Ein Esc-@ bedeutet also, dass zunächst die Esc-Taste gedrückt und wieder losgelassen wird, erst dann wird der Klammeraffe (@) eingegeben.