Sie möchten ein Kommando ausführen. Das Kommando liegt im Binärformat auf
einem Ihrer Datenträger. Da Sie das Kommando nicht mit Ihrem Finger
anschnippen können, muß es einen Weg geben, das Kommando aufzurufen.
Vielleicht halten Sie das für einen einfachen Vorgang, aber das ist es nicht.
Aus der Sicht des Betriebssystems ist ein Kommando ein Prozeß wie jeder
andere auch. Auf einem Multitasking-Betriebssystem wie Linux laufen zu jeder
Zeit eine große Zahl von Prozessen gleichzeitig. Bei der Besprechung des
Linux-Kernels werden wir später noch darauf eingehen, was dieses
gleichzeitig bedeutet und welche Arbeit dabei für den Kernel anfällt. Im
Augenblick genügt es uns zu wissen, dass die Prozeßverwaltung - und damit auch
der Start von Prozessen - zu den wesentlichen Aufgaben des Betriebssystems
selbst gehört.
In Wahrheit ist es so, dass Sie selbst gar nicht befugt sind, ein Kommando zu
starten. Vielmehr müssen Sie das Betriebssystem damit beauftragen, dies für
Sie zu tun. Damit tut sich aber gleich das nächste Problem auf: Der Kernel
selbst ist lediglich eine Sammlung von C-Funktionen, und es dürfte wohl kaum
in Ihrem Interesse liegen, mit diesen Funktionen selbst zu kommunizieren.
Keine Angst - das müssen Sie auch nicht.
Die Shell bildet eine Schale um den Systemkern. Daher trägt sie auch ihren Namen - im
Englischen bedeutet shell soviel wie Schale oder Muschel. Damit ist
ausgedrückt, dass ein Zugriff auf Betriebssystem - Routinen üblicherweise über
eine Shell erfolgt - die Shell vermittelt zwischen dem Benutzer und dem
Betriebssystem. Um dem Betriebssystem also beispielsweise den Auftrag zu
geben, ein bestimmtes Kommando für Sie zu starten, kommunizieren Sie zunächst
mit der Shell, und diese reicht Ihren Auftrag in geeigneter Form weiter.
In der Unix - Welt gibt es viele Shells, von denen einige sicher zweckmäßiger
als andere sind. Die meisten dieser Shells sind in einer freien Version auch
unter Linux verwendbar. Die meist verbreitete Shell unter Linux, die von
praktisch allen Distributoren als die Standardshell verwendet wird, ist die
Bourne Again Shell, eine verbesserte Version der alten Bourne Shell. Alle
weiteren Ausführungen in diesem Abschnitt werden sich daher auf die Bash
beziehen.
Bei der Eingabe von Kommandos werden Sie von der Shell auf vielfältige Art
und Weise unterstützt. Einen Teil dieser Unterstützung stellen Editierhilfen
dar, die Ihnen einfach etwas Tipparbeit abnehmen sollen. Diesen Hilfen werden
wir uns in nächsten Absatz widmen. Alle weiteren Absätze widmen sich den
Shell - Mechanismen, die einen flexiblen und effizienten Gebrauch von
Kommandos ermöglichen. Diese Mechanismen stellen gleichzeitig auch die
Grundlage der Shellprogrammierung dar, die wir jedoch erst in einem späteren
Kapitel behandeln möchten.
|