Shell

Die Shell ist die Benutzerschnittstelle eines Unix- oder Linux-Systems. Die Shell muss selbst zu den Dienstprogrammen gezählt werden. Sie ist ein Kommandointerpreter, der Kommandos von der Standardeingabe entgegennimmt, die Kommandos interpretiert - d.h. in Systemaufrufe umgesetzt - und das Resultat auf die Standardausgabe ausgibt.


Standardeingabe ist die Tastatur eines Terminals, Standardausgabe ist der Bildschirm oder der Drucker eines Druckerterminals. Die Standardeingabe kann umgelenkt werden, so dass auch der Inhalt einer Datei die Eingabe für ein Kommando sein kann - analog verhält es sich mit der Standardausgabe. Eine Shell ist einsetzbar für die automatisierte Ausführung spezifischer Aufgaben.

Shell als dialogorientierte Schnittstelle

Die Shell ist die dialogorientierte Benutzerschnittstelle zwischen einem System ( Unix, Linux) und dem Benutzer. Über eine spezielle Eingabesprache teilt der Benutzer seine Anforderungen mit, die von der Shell in Aktionen umgesetzt werden. Auf diese Weise führt die Shell Kommandos oder Programme aus und überwacht ständig deren Ausführung. Standardmäßig nimmt die Shell Eingaben von der Standardeingabe (stdin) entgegen, gibt Ausgaben auf der Standardausgabe (stdout) aus und meldet Fehler auf der Standard-Fehlerausgabe (stderr).

Die Standardeingabe ist die Tastatur des Benutzer-Terminals, die Standardausgabe der Bildschirm des Benutzers und die Standard-Fehlerausgabe ebenfalls der Bildschirm, sofern keine andere Vereinbarung getroffen wurde oder die Standardeingaben und -ausgaben auf Dateien umgelenkt werden.

Shell als als Basisfunktion von Unix

Die Shell gehört nicht zu den Basisfunktionen von Unix (Linux), sondern zu den Dienstleistungsprogrammen. Viele Systeme verfügen gleichzeitig über mehrere Shell-Versionen, die zwar die gleichen grundlegenden Eigenschaften besitzen, aber im Detail verschieden sind. Die Bourne-Shell (Aufruf: sh) - benannt nach S. R. Bourne von den Bell Laboratories - wurde bereits in den 70er Jahren geschrieben. Darauf aufbauend und mit mehr Funktionalität versehen, wurde die komfortablere C-Shell (Aufruf: csh) entwickelt, deren Syntax an die Programmiersprache C angelehnt wurde. Ebenfalls auf der Bourne-Shell - insbesondere auf deren Syntax - baut die Korn-Shell (Aufruf: ksh) auf. Jedoch wurden dabei die zusätzlichen Features der C-Shell integriert sowie diese um neue Funktionen erweitert. Weitere Benutzerschnittstellen wurden mit der Bourne-Again-Shell (Aufruf: bash), der Scheme-Shell (Aufruf: scsh) und der modular aufgebauten Z-Shell (Aufruf: zsh) entwickelt.

Die Shell führt in gleicher Weise Systemkommandos und Benutzerkommandos aus. Kommandos sind Programme, die vom System als Dienstleistung zur Verfügung gestellt werden, sofern es sich um Systemkommandos handelt oder um Benutzerkommandos, wenn die Sprachmöglichkeiten der Shell vom Benutzer zur Erzeugung eigener Kommandos genutzt werden.

Die Shell hat viele Eigenschaften einer Programmiersprache und erlaubt den Einsatz von Variablen, die Steuerung des Ablaufs durch Sprachelemente wie for, case, while, until, if etc., den Aufruf von Programmen, die Bearbeitung von Unterbrechungen, die Verkettung von Pipes, das Verketten von Dateien, das Starten von Kommandos und Prozessen u.v.a.

In Abgrenzung zu Scriptsprachen wie z.B. Tcl, Perl oder awk richtet sich die Shell zunächst primär auf die Kommunikation mit dem Benutzer aus, und darüber hinaus bietet sie weitere Möglichkeiten zur Programmierung und Automatisierung von spezifischen Aufgaben.

Informationen zum Artikel
Deutsch: Shell
Englisch: shell
Veröffentlicht: 08.11.2013
Wörter: 495
Tags: #Betriebssysteme
Links: Analog, Automation, Bildschirm, content, Datei