Die LINUX Shell

Bei der Administration eines LINUX-Systems kommt man in der Regel nicht um sie herum: Die Shell. Für den LINUX-Neuling stellt sich am Anfang natürlich die Frage:

Linux Shell
Die Shell umschließt den LINUX Kernel

Was ist die Shell

Die Shell ist die Kommunikationsebene zwischen Benutzer und Betriebssystem-Kern. Die Shell nimmt Kommandos entgegen, interpretiert diese und gibt sie an das Betriebssystem weiter.

Wie in der Abbildung rechts angedeutet, schottet die Shell den Betriebssystem-Kern vom Benutzer und oft auch von Anwendungspogrammen ab.

Sie sorgt dafür, dass der Benutzer nach der Ausführung von Befehlen über Fehler informiert wird.

Im Terminal-Modus stellt die Shell einen Eingabekanal für Tastatureingaben und zwei Ausgabekanäle für Bildschirmausgaben zur Verfügung. So kann auch ohne grafische Tools per Kommandozeile im Textmodus mit dem System kommuniziert werden.

Doch die Shell kann mehr. Sie ist auch eine Programmiersprache, die Shell-Skripte automatisiert abarbeiten kann und kennt die Grundelemente einer Programmiersprache wie Variablen und Verzweigungen.

Die Shell ist ein mächtiges Werkzeug für die Administration des Systems. Wer die Shell beherrscht, beherrscht auch das System.

Der Prompt

Loggt man sich in ein Linux-System ohne grafische Oberfläche ein, so landet man normalerweise in der Kommandozeile, auch Prompt genannt. Der Prompt bzw. die Eingabeaufforderung nimmt Befehle entgegen. Die Shell sorgt dafür, dass diese Anweisungen von System ausgeführt werden. Außerdem versorgt Sie den Benutzer mit Informationen, wenn z.B die Ausführung eines Befehls nicht funktioniert hat.

Shell-Typen

Es gibt nicht nur eine Shell, sondern verschiedene, die sich im Befehlsumfang und in der Syntax teilweise stark unterscheiden.

Wenn unter LINUX jedoch von der "Shell" die Rede ist, so ist zumeist die Bourne again Shell bash gemeint. Sie ist normalerweise die LINUX-Standard-Shell.

Kommunikationskanäle der Shell

Die Shell kennt drei Standard-Kommunikationskanäle (Streams):

  • stdin: Der Standard-Eingabekanal mit der Nummer 0 liest (normalerweise) Eingaben von der Tastatur ein.
  • stdout: Der Standard-Ausgabekanal mit der Nummer 1 gibt (normalerweise) Zeichen auf dem Bildschirm aus.
  • stderr: Der Standard-Fehlerkanal mit der Nummer 2 liefert (normalerweise) Bildschirmausgaben, die sich auf fehlerhafte Ausführungen von Befehlen beziehen.

Umleitungen

Umleitungen dienen häufig dazu, Bildschirmausgaben in eine Datei umzuleiten (um die Ausgaben mitzuloggen). Die Shell kennt mehrere Arten der Umleitung:

  • Befehl > Datei : Die Standardausgabe (stdout) wird in eine Datei umgeleitet. Existiert die Datei nicht, wird sie angelegt.
    ACHTUNG! Existiert die Datei bereits wird sie überschrieben!
  • Befehl >> Datei : Die Standardausgabe (stdout) wird am Ende einer Datei angehängt. Existiert die Datei nicht, wird sie angelegt.
  • Befehl 2> Datei : Der Standardfehler-Kanal (stderr) wird in eine Datei umgeleitet. Existiert die Datei nicht, wird sie angelegt.
    ACHTUNG! Existiert die Datei bereits wird sie überschrieben!
  • Befehl 2>> Datei : Der Standardfehler-Kanal stderr wird am Ende einer Datei angehängt. Existiert die Datei nicht, wird sie angelegt.
  • Befehl < Datei : Hier wird der Standardeingabekanal (stdin) umgeleitet. Normalerweise dient die Tastatur als Standardeingabekanal. Hier wird jedoch der Inhalt der Datei an den Befehl umgeleitet so, als hätte man den Dateiinhalt per Tastatur in die Konsole eingegeben.

Weiterleitungen

Weiterleitungen oder auch Pipes dienen in der Shell dazu, Ergebnisse eines Befehls an einen anderen Befehl weiterzuleiten.

Das Pipe-Zeichen | erhält man über die Tastenkombination [STRG] + [<].

Befehl 1 | Befehl 2

Das Ergebnis von Befehl 1 wird an Befehl 2 weitergeleitet.

Shell Skripte

Shell Skripte sind Textdateien, die eine Abfolge von Shell-Befehlen enthalten. Diese werden dann von der Shell abgearbeitet. Shell-Skripte sind wichtige Hilfsmittel, wenn es darum geht, automatisiert eine Abfolge von Befehlen auszuführen, die man sonst einzeln in der Kommandozeile eingeben müsste. Die Fähigkeit Skripte auszuführen, macht die Shell zu einem sehr mächtigen Werkzeug.

Die Secure Shell

Die Secure Shell (SSH) ist ein Tool, mit dem eine Administration von entfernten Rechnern per Netzwerk möglich ist. Eine SSH-Verbindung ist verschlüsselt und somit abhörsicher. Als Standardtool ist der SSH-Client auf jedem LINUX-System vorhanden.