Eine '''Shell''' (deutsch wörtlich: Muschel, hier: Schale, Aufsatz) ist ein Programm, welches eine direkte Schnittstelle zwischen den Funktionen des Betriebssystems (Syscalls) und dem User darstellt und/oder als Kommandozeileninterpreter zum Ausführen von Programmen und der Navigation durch das Dateisystem dient. == Geschichte == Die frühen Hardwaremonitore, wo noch jedes Bit einzeln gecodet werden musste, können schon als eine Art "Shell" angesehen werden. Shells an sich sind ein altes Konzept, um im direktem Kontakt mit dem Betriebssystem zu stehen. Die wohl älteste Shell ist die 'osh', auch 'Thompson Shell' für das Betriebssystem [[Unix]] . Sie war von 1971 bis 1979 die Standard-Shell unter Unix und führte u.a. das mächtige Konzept der [[Pipe|Pipes]] ein. Danach entwickelte Stephen R. Bourne die Bourne-Shell, sh, auf die fast alle heutigen Shell mehr oder weniger aufsetzen. == Funktionsweise einer Shell == === Linux/Unix === Unter Linux und Unix war und ist das wohl essentiellste Werkzeug eines Linux-User und vor allem Administrators die Shell. Sie wird direkt nach dem Login gestartet und kann unter Desktop-Umgebungen wie Gnome oder KDE mit den Programmen Terminal bzw. Konsole gestartet werden. Die Shell unter Linux/Unix ist meistens auch Kommandozeileninterpreter und Interpreter für eine einfache Scriptsprache, dem Shell-Script. Wobei einfach hier nicht ganz zutrifft, denn die Sprache ist doch recht mächtig. Die wohl mit Abstand meist genutzte Shell unter Linux ist die bash, die Bourne Again Shell. Sie ist ein GNU-Projekt und wird von der FDL auch als Standard-Shell empfohlen. Unter Linux/Unix greift die Shell allerdings (heutzutage) nicht mehr direkt auf die Funktionen des Betriebssystems zu. Dafür gibt es Programme wie rm, mv, cp usw.. Es wird beispielsweise
Hartmut@linux:/tmp:$ mv -r EineDatei /home/Hartmuteingegeben, von gefolgtem ENTER. Die Shell ermittelt nun: