Eine Shell ist eine Art Computerprogramm, mit dem Sie (der Benutzer) Ihr Betriebssystem über eine Befehlszeilenschnittstelle (CLI) oder eine grafische Benutzeroberfläche (GUI) steuern können. Im Wesentlichen sind Shells direkte Wege, um mit Ihrem Betriebssystem darüber zu kommunizieren, welche Aktionen ausgeführt werden sollen, normalerweise durch Automatisierung. Diese Maßnahmen können von täglichen Backups über die Überwachung von Systemen und Aktivitäten bis hin zur Durchführung von Routineprüfungen reichen.
Shell vs. Kernel
Man kann nicht über Muscheln (Shell) sprechen, ohne zu verstehen, wie sie sich von Kernel unterscheiden. Vereinfacht gesagt, sind Kernel die Kernaspekte eines Betriebssystems. Er ist die primäre Schicht zwischen der Computerhardware und der Software, wobei der Kernel für die Interaktion mit der Hardware zuständig ist.
Shells sind der Verbindungspunkt zwischen dem Benutzer und dem Kernel. Sie führen die vom Benutzer an den Kernel erteilten Befehle aus, indem sie zunächst die Benutzerbefehle in Systemaufrufe übersetzen, die den Kernel auffordern, eine bestimmte Aufgabe auszuführen. Aus diesem Grund werden Shells manchmal auch als Befehlsinterpreter bezeichnet – sieinterpretieren, was Sie wollen, damit der Kernel weiß, was er als nächstes tun soll.
Wie funktioniert ein Shell-Programm?
Eine Shell kann eine CLI oder GUI sein und sollte nicht mit einem Terminal verwechselt werden. Ein Terminal bietet eine Eingabeaufforderung für die Arbeit mit einer Shell, aber die Shell selbst verwendet Shell-Skripte, um die Automatisierung einzurichten. Auf einem Windows-Gerät heißt das Standardterminal beispielsweise Eingabeaufforderung (im Gegensatz zu macOS-Geräten, wo es Terminal heißt) und sieht wie folgt aus:
Die Verwendung der Windows-Eingabeaufforderung kann relativ einfach sein, und immer mehr Benutzer verwenden jetzt PowerShell, eine viel umfassendere Befehlszeilen-Shell und Skriptsprache, um ihre gewünschten Aktionen auszuführen. Denken Sie daran, dass die Eingabeaufforderung keine Shell ist, sondern das Terminal, in dem eine Shell, z. B. PowerShell, ausgeführt werden kann. PowerShell kann folgendermaßen aussehen:
Wie Sie sehen können, liefert es die notwendigen Informationen schnell und einfach, je nach Befehl. PowerShell kann auf allen Betriebssystemen ausgeführt werden, wird aber hauptsächlich auf Windows-Geräten verwendet.
Möchten Sie die Grundlagen von PowerShell in weniger als 30 Minuten erlernen?
Es ist erwähnenswert, dass Shell-Skripte nicht auf allen Betriebssystemen gleich bezeichnet werden. Einige Skripte können zum Beispiel Sh, Bash, csh und tesh heißen. In den VM-Betriebssystemen von IBM heißen sie EXEC, während Shell-Skripte in DOS als Batch-Dateien bezeichnet werden.
Unabhängig davon verwenden alle Shells ein Terminal, um menschenlesbare Befehle anzuzeigen und die gewünschte Interaktion oder Operation durchzuführen.
Verschiedene Arten von Muscheln
Bourne-Shell
Die Bourne-Shell, manchmal auch als die ursprüngliche Unix-Shell bezeichnet und mit “sh” abgekürzt, wurde 1979 von Stephen Bourne entwickelt. Sie enthält Funktionen wie Flusskontrolle und verbesserte Zeichenkettenverarbeitung, die die Shell als Programmiersprache einfacher zu verwenden und zu verstehen machen. Allerdings ist die Shell dafür bekannt, dass sie etwas unflexibel und wenig interaktiv ist.
Obwohl sie von der C-Shell und der KornShell (neben anderen) abgelöst wurde, ist die Bourne-Shell wegen ihrer Geschwindigkeit und Kompaktheit auch heute noch beliebt.
Befehlszeile (C-Shell)
Die C-Shell (“csh”) ist eine Befehlsshell für Unix und Unix-ähnliche Systeme. Sie wurde 1978 von Berkeley Software Distribution entwickelt und bietet einige Verbesserungen gegenüber der früheren Bourne Shell, insbesondere für den interaktiven Einsatz.
Sie kann etwa so aussehen:
KornShell
Bell Labs führte die KornShell (“ksh”) in den frühen 1980er Jahren ein. Sie enthält viele Funktionen der C-Shell, ist aber deutlich schneller. Neben der Ausführung von Bourne-Shell-Skripten und C-ähnlichen Eigenschaften und Funktionen bietet es auch eingebaute Arithmetik.
GNU Bourne-Again-Shell
Die Bourne-Again-Shell (“bash”), 1989 von Brian Fox für das GNU-Projekt veröffentlicht, ist eine quelloffene Alternative zur Bourne-Shell. Sie ist vergleichbar mit der KornShell und der C-Shell, enthält aber automatisch zugeordnete Pfeiltasten für schnelleres Bearbeiten und Aufrufen von Befehlen. Bash gilt heute als Standard-Shell für die meisten Linux-Distributionen und verwendet Bash-Skripting.
Was bewirkt Shell-Skripting?
Anstatt jeden Befehl jedes Mal manuell einzugeben, wenn Sie etwas erledigen müssen, können Shells durch ihre Shell-Skripte mehrere Aufgaben gleichzeitig ausführen, z. B. Backups, das Ausführen von Programmen usw. Außerdem können sie sich wiederholende Aufgaben automatisieren, was die Wahrscheinlichkeit menschlicher Fehler verringert, die potenziellen Auswirkungen unsauberer Daten minimiert und die IT-Effizienz erheblich verbessert.
Shell-Skripte sind jedoch nicht für komplexe oder umfangreiche Aufgaben gedacht. Außerdem kann es, wie bei einer Sprache, einige Zeit dauern, bis man sie beherrscht. Ein Syntaxfehler kann zum Beispiel zu dramatischen Fehlern führen, und Sie müssen jeden einzelnen Befehl durchgehen, um festzustellen, wo der Fehler aufgetreten ist.
Vorteile von Shell
Shell kann Ihre IT-Techniker entlasten, damit sie sich auf strategischere Projekte konzentrieren können. Shells unterstützen Sie nicht nur bei der Durchführung verschiedener Aufgaben, sondern ermöglichen Ihnen auch die Anpassung Ihrer eigenen Skripte an Ihre spezifischen Ziele und Bedürfnisse.
Nachteile von Shell
Shells können in Bezug auf die Syntax unnachgiebig sein. Ein einziger Fehler kann schwer zu erkennen und auf lange Sicht kostspielig sein. Zur Verdeutlichung: Die Shell-Syntax ähnelt der Syntax der natürlichen Sprache. Sie bezieht sich auf die Reihenfolge der Operationen und die Anordnung von Wörtern und Sätzen.
Shells für mehr IT-Effizienz
Shells und damit auch deren Shell-Skripte sind vielleicht nicht das Erste, woran Sie denken, wenn Sie an Endpunktmanagement denken. Dennoch spielen Shells eine wichtige Rolle dabei, wie Ihre IT-Techniker Aufgaben automatisieren und Ihnen, Ihrem Unternehmen und Ihren Endbenutzern einen besseren Service bieten können. Auch wenn es nicht notwendig ist, Shells zu beherrschen, sollten Sie dennoch die Grundlagen verstehen, um bessere Geschäftsergebnisse zu erzielen.