WikiDer > Shell (Informatik)

Shell (informatica)

EIN Schale ist ein interaktives Computer Programm das ermöglicht einem Benutzer mit a Befehlszeilenschnittstelle kann Befehle erteilen Betriebssystem von a Computer.

Traditionell, a Terminal die die Eingabe des Benutzers an das Betriebssystem weitergibt und dann die Ausgabe an den Benutzer zurückgibt. Grafische Desktop-Systeme verfügen normalerweise über einen Terminal-Emulator, und es ist wichtig, zwischen den Terminal-Emulator und die Schale selbst. Die Übergabe der Eingabe und Ausgabe von der grafischen Oberfläche an die Shell erfolgt über den Terminalemulator. Bekannte Terminal-Emulatoren sind XTerm und ATerm.

Unter Windows gibt es keine Trennung zwischen Terminalemulator und Shell. Unter den meisten Microsoft Windows-Versionen sowohl auf den Terminal-Emulator als auch auf seine Shell kann vom Programm zugegriffen werden cmd oder Befehl anfangen. Diese Schale entspricht in etwa der Schale in DOS die COMMAND.COM heißt. unten Unix (und dadurch Linux), dass eine Trennung vorhanden ist und verschiedene Shells auf demselben Terminal (Emulator) verwendet werden können. Bekannte Shells unter UNIX sind Sch, csh, ksh und bash.

Aktivitäten

Um genau zu verstehen, was eine Shell macht, ist hier eine Beschreibung dessen, was die Bash-Shell ungefähr tut, wenn es startet:

  1. Durchsuchen Sie das globale Systemkonfigurationsverzeichnis (/usw) zur Datei Profil und führe diese aus. (In der Datei Profil Es gibt Konfigurationseinstellungen, die für alle gelten. Beispiele sind die Einstellung der PFAD und Terminaleinstellungen für Benutzer.)
  2. Suche im Home-Verzeichnis vom Benutzer zur Datei .Profil und führen Sie die darin enthaltenen Befehle aus. (In dieser Datei können Benutzer ihre persönlichen Einstellungen speichern. Sie können beispielsweise ihre eigenen Befehle als Aliase aufzeichnen oder bestimmte Umgebungsvariablen Einrichten.)
  3. Erlaube dem Benutzer a prompt in dem er Befehle ausführen kann. Je nach Einstellung kann auch folgendes angeordnet werden:
    • Speichern Sie die ausgeführten Befehle im Home-Verzeichnis des Benutzers in der Datei .Geschichte
    • Stellen Sie sicher, dass der vom Benutzer eingegebene Befehl über die Shell übergeben wird (siehe eingebaute Schale) oder von einem externen Programm muss gemacht werden
    • Zeigen Sie dem Benutzer die Ausgabe des eingegebenen Befehls an

Die Anzeige des Prompts (und seiner Unteraktivitäten) wird kontinuierlich wiederholt, bis der Benutzer die Shell verlässt (oft mit dem Befehl 'exit' oder durch Eingabe eines 'End-of-File'-Zeichens (normalerweise Control-D)).

Shell-Skripte

Shell-Skripte sind nichts anderes als sequentiell ausgeführte Befehle. In Microsoft Windows heißen diese Shell-Skripte daher 'Batch-Dateien' erwähnt. Ein Shell-Skript wird zeilenweise vom Dolmetscher (in diesem Fall die Schale). Ein Beispiel für ein Shell-Skript ist der folgende Alias:

Alias ​​worldwritable='for i in *; do echo "Überprüfe ./$i" >&2 && find $i -perm -2 -type p -ls 2>/dev/null; getan'

Mit diesem Shell-Skript können Sie nach Dateien suchen, die von jedem beschreibbar sind. Dies wird in eine grafisch ansprechende Oberfläche gegossen. Dieses Shell-Skript wäre leichter zu lesen, wenn einige Zeilenumbrüche hinzugefügt würden. Dann wird auch klar, dass diese Zeile nur eine Folge von Befehlen ist:


 for i in * do echo "Checking ./$i" >&2 find $i -perm -2 -type p -ls 2>/dev/null getan

Das Obige ist viel klarer zu lesen und zeigt, dass dieses Shell-Skript nur ein paar Befehle hintereinander ausführt:


 für ich in *mache

('für' ist ein sogenanntes eingebaut; ein Befehl, der nicht von einem externen Programm, sondern von der Shell selbst ausgeführt wird. Dies beschleunigt die Ausführung.) Führen Sie den folgenden Code für jede Datei im aktuellen Verzeichnis aus (und speichern Sie für jede Datei Wiederholung Geben Sie den Dateinamen in das ein Variable 'ich' genannt).


 echo "Überprüfe ./$i" >&2

Teilen Sie dem Benutzer mit, was wir gerade tun (den Inhalt der Variablen namens '$i').


 find $i -perm -2 -type p -ls 2>/dev/null

Rufen Sie das aktuelle Programm 'find' mit dem Argument der aktuellen Datei '$i' auf und dann einige Parameter.


 getan

Beende die 'for'-Schleife.

Verschiedene Muscheln

Bourne-Schale (Sch)

Die Bourne-Schale von Sch wurde 1977 unter UNIX Version 7 eingeführt. Es wurde von Stephen Bourne entwickelt, der bei AT&T Bell Laboratories arbeitete. Diese Shell hatte großen Einfluss auf alle Shells, die nach dieser Zeit entstanden, einschließlich der Shell in DOS und Windows.

Die wichtigsten Verbesserungen gegenüber früheren Shells waren:

  • mehr und längere Parameter möglich
  • Umgebungsvariablen
  • Umleitung von Fehlermeldungen möglich
  • mehr Optionen für die Skripterstellung
  • ALGOL-ähnliche Kontrollstrukturen wie
    • wenn ~ dann ~ sonst ~ fi
    • Fall ~ in ~ esac
    • während ~ tun ~ fertig

C-Schale (csh)

Die C-Schale (csh) wurde mit 4.1BSD eingeführt. Der Hauptvorteil dieser Shell besteht darin, dass sie über Möglichkeiten zur Verwaltung von Jobs verfügt. So war es beispielsweise möglich, einen im Hintergrund laufenden Prozess hervorzuheben, um ihn beispielsweise zu unterbrechen oder zu pausieren. Ein wesentlicher Unterschied zur Bourne-Shell besteht darin, dass die C-Shell eine ähnliche Syntax wie die Programmiersprache C.

Korn-Shell (ksh)

Die Korn-Shell (ksh) wurde 1983 von David Korn geschrieben. Diese Schale war eine Mischung aus der Bourne-Schale und der C-Schale. Es war mit der Bourne-Shell-Syntax kompatibel und hatte die Job-Control-Funktionalität der C-Shell. Darüber hinaus verfügte diese Shell über einen einfachen Befehlszeileneditor.

Bourne Again-Schale (bash)

Die Bourne Again-Muschel (bash) wurde im GNU-Projekt entwickelt und kombinierte die Funktionalität der Bourne-Shell, der C-Shell und der Korn-Shell.

DOS-Shell (COMMAND.COM) und Windows-Shell (CMD.EXE)

Die DOS-Shell ist eine stark vereinfachte Version der Bourne-Shell. Es eignet sich zum Starten von Befehlen und zum Erstellen einfacher Skripte. Der DOS-Shell (in Kombination mit den Standardbefehlen in DOS) fehlen viele Funktionen, die sie für etwas kompliziertere Skripte unbrauchbar machen. Er vermisst zum Beispiel viele Kommandos und Kontrollstrukturen. Die Windows-Shell unterscheidet sich im Großen und Ganzen nicht von der DOS-Shell.

Windows Powershell

Windows Powershell ist der Ersatz für CMD.EXE, der mit dem geliefert wird .GERADE Umgebung für Windows. Im Gegensatz zu CMD.EXE ist diese Shell sehr mächtig, auch weil sie Zugriff auf einen Großteil der Standard-.NET-Funktionalität hat.

verwandte Themen

Externe Links

Siehe die Kategorie Befehlsshells von Wikimedia Commons für Mediendateien zu diesem Thema.