| Zeile 2: | Zeile 2: | ||
== Geschichte == | == Geschichte == | ||
| − | Die frühen Hardwaremonitore, wo noch jedes Bit einzeln gecodet werden musste, können schon als eine Art | + | 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 Shells mehr oder weniger aufsetzen. |
== Funktionsweise einer Shell == | == Funktionsweise einer Shell == | ||
=== Linux/Unix === | === Linux/Unix === | ||
| − | Unter Linux und Unix war und ist das wohl essentiellste Werkzeug eines Linux- | + | Unter Linux und Unix war und ist das wohl essentiellste Werkzeug eines Linux-Users und vor allem Administrators die Shell. Sie wird direkt nach dem Login gestartet und kann unter Desktop-Umgebungen wie Gnome oder KDE z. B. 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 | 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 | ||
<pre> | <pre> | ||
| − | Hartmut@linux:/tmp:$ | + | Hartmut@linux:/tmp:$ cp -r EinOrdner /home/Hartmut |
</pre> | </pre> | ||
| Zeile 17: | Zeile 17: | ||
<ul> | <ul> | ||
| − | <li>Welcher Befehl eingegeben wurde ( | + | <li>Welcher Befehl eingegeben wurde (cp)</li> |
| − | <li>Ob der Befehl als Programm auf dem System vorhanden ist (sollte eigentlich)</li> | + | <li>Ob der Befehl in der Shell als Funktion eingebaut ist (sollte hier nicht)</li> |
| − | <li>Ermittelt evtl. Optionen (-r, | + | <li>Wenn nicht, ob der Befehl als Programm auf dem System vorhanden ist (sollte eigentlich)</li> |
| − | <li>Ruft das Programm auf und übergibt dabei die Optionen</li> | + | <li>Ermittelt evtl. Optionen (-r, EinOrdner, /home/Hartmut)</li> |
| + | <li>Ruft das Programm bzw. die eingebaute Funktion auf und übergibt dabei die Optionen</li> | ||
<li>Wartet, bis das Programm beendet wurde</li> | <li>Wartet, bis das Programm beendet wurde</li> | ||
<li>Kehrt wieder zur Eingabe zurück</li> | <li>Kehrt wieder zur Eingabe zurück</li> | ||
</ul> | </ul> | ||
| − | Bei manchen Shells kann durch | + | Bei manchen Shells kann durch Verwendung eines ''&'' am Ende der Zeile auch das Warten übersprungen werden, sodass die Shell sofort nach dem Befehlsaufruf wieder zur Benutzung bereit ist. |
=== bash === | === bash === | ||
| Zeile 31: | Zeile 32: | ||
== Windows == | == Windows == | ||
| − | Die Shell unter Windows wurde seit MS-DOS-Zeiten Befehlsinterpreter | + | Die Shell unter Windows wurde seit MS-DOS-Zeiten Befehlsinterpreter bzw. Kommandozeileninterpreter genannt. Während der Windows-9x-Zeit hieß sie dann „Eingabeaufforderung“ oder auch „DOS-Box“ und wurde dann unter Windows 2000/XP nur noch „Eingabeaufforderung“ genannt. |
| − | Allerdings war seit jeher die | + | Allerdings war seit jeher die „Windows-Shell“ nicht halb so mächtig wie deren *nix-Pendants. Die Scriptsprache, „Batch“ bestand mehr oder weniger aus einer Aneinanderreihung von Befehlen mit einfachen Kontrollstrukturen. Dies soll sich mit der ab Windows 7 vorinstallierten PowerShell ändern. |