Was ist Shell?
Ein Programm, das die vom Benutzer eingegebenen Befehle einliest und interpretiert, Programme startet und Ergebnisse anzeigt. Unter Linux sind bash und zsh verbreitet. Es bietet die Expansion von Wildcards, Variablen, Umleitungen und Pipes sowie Jobsteuerung und kann auch Dateien mit Befehlsfolgen (Shell-Skripte) ausführen, um Arbeit zu automatisieren. Der Name rührt daher, dass es als „Schale“ (englisch shell) um den Kernel, den Kern des Betriebssystems, zwischen diesem und dem Benutzer steht.
Japanische Bezeichnung: シェル
„Shell“ kommt in 11 Übungsfragen aus 2 Themen vor, z. B. Grundlagen von Linux und der Kommandozeile, Linker, Loader und ausführbare Formate.
Fachgebiet: Grundlagen von Linux und der Kommandozeile
Verschiedene Shells
Neben bash, das unter Linux weit verbreitet ist, gibt es zsh und fish mit umfangreichen interaktiven Funktionen sowie dash, das schlank ist und schnell startet. Skripte, die nur die im POSIX-Standard festgelegte sh-Syntax verwenden, laufen in vielen Shells. Skripte zur Umgebungseinrichtung von EDA-Werkzeugen sind teils noch in der Syntax der csh-Familie (csh, tcsh) geschrieben, und eine Konfigurationsdatei, die mit source eingelesen wird, muss zur Art der Shell passen.
Häufige Fragen
Was ist der Unterschied zwischen einer Shell und einem Terminal?
Ein Terminal (Terminalemulator) ist ein Programm, das als Fenster dient: Es zeigt Zeichen an und nimmt Tastatureingaben entgegen. Die Shell läuft darin, interpretiert die empfangenen Zeichenketten als Befehle und führt sie aus. Im selben Terminal kann man etwa von bash zu zsh wechseln.
Was ist der Unterschied zwischen „source Datei“ und „./Datei“?
Bei ./Datei führt ein neuer Shell-Prozess das Skript aus; darin geänderte Variablen oder das aktuelle Verzeichnis bleiben nach dem Ende in der ursprünglichen Shell nicht erhalten. source (oder .) führt den Inhalt der Datei in der aktuellen Shell aus, sodass etwa gesetzte Umgebungsvariablen bestehen bleiben. Deshalb werden Konfigurationsdateien, die die Umgebung eines Werkzeugs vorbereiten, mit source eingelesen.