Freigeben über


Was ist eine Befehlsshell?

Viele Benutzer verwenden die Befehlsshell, das Befehlszeilentool und das Terminal austauschbar, was verwirrend sein kann. In diesem Artikel wird der Unterschied zwischen diesen Konzepten erläutert, und es werden Beispiele für die einzelnen Konzepte erläutert.

Eine Befehlsshell ist eine interaktive Befehlszeilenschnittstelle zum Verwalten eines Computers, auch als Read-Eval-Print Loop (REPL) bezeichnet.

Eine Shell verwendet Eingaben von der Tastatur, wertet diese Eingabe aus und führt die Eingabe als Shellbefehl aus oder leitet die Eingabe an das Betriebssystem weiter, um ausgeführt zu werden. Die meisten Shells können befehle auch aus einer Skriptdatei lesen und Programmierfeatures wie Variablen, Flusssteuerung und Funktionen enthalten.

Typen von Befehlsshells

Es gibt zwei Haupttypen von Befehlsshells:

  • Universelle Befehlsshells

    Allgemeine Befehlsshells sind für die Arbeit mit dem Betriebssystem konzipiert und ermöglichen es Ihnen, alle befehle auszuführen, die das Betriebssystem unterstützt. Sie umfassen auch shellspezifische Befehle und Programmierfeatures. Die folgende Liste enthält einige Beispiele für allgemeine Befehlsshells:

  • Dienstprogrammshells

    Hilfsbefehlsshells sind für die Arbeit mit bestimmten Anwendungen oder Diensten konzipiert. Diese Shells können nur Befehle ausführen, die für die Anwendung oder den Dienst spezifisch sind. Einige Hilfsprogrammshells unterstützen das Ausführen von Befehlen aus einem Batchskript, enthalten jedoch keine Programmierfeatures. In der Regel können diese Shells nur interaktiv verwendet werden.

    • AI Shell – Eine interaktive Shell, die für die Kommunikation mit AI-Diensten wie Azure OpenAI verwendet wird.
    • netsh – Netzwerkshell (netsh) ist ein Befehlszeilenprogramm, mit dem Sie den Status verschiedener Netzwerkkomponenten unter Windows konfigurieren und anzeigen können. Es ist sowohl ein Befehlszeilentool als auch eine Befehlsshell. Es unterstützt auch das Ausführen von Befehlen aus einer Skriptdatei.

Befehlszeilentools

Ein Befehlszeilentool ist ein eigenständiges Programm, das Sie über eine Befehlsshell ausführen. Befehlszeilentools sind in der Regel so konzipiert, dass sie eine bestimmte Aufgabe ausführen, z. B. Dateien verwalten, Einstellungen konfigurieren oder Informationen abfragen. Befehlszeilentools können in jeder Shell verwendet werden, die das Ausführen externer Programme unterstützt.

  • Azure CLI – eine Sammlung von Befehlszeilentools zum Verwalten von Azure-Ressourcen, die in jeder unterstützten Shell ausgeführt werden können.
  • Azure PowerShell – eine Sammlung von PowerShell-Modulen zum Verwalten von Azure-Ressourcen, die in jeder unterstützten Version von PowerShell ausgeführt werden können.
  • OpenSSH für Windows – umfasst einen Befehlszeilenclient und einen Server, der eine sichere Kommunikation über ein Netzwerk bereitstellt.
  • Windows-Befehle – eine Sammlung von Befehlszeilentools, die in Windows integriert sind.

Im Allgemeinen stellen Befehlszeilentools keine REPL-Schnittstelle (Command Shell) bereit. Der netsh Befehl in Windows ist eine Ausnahme, da es sich sowohl um ein Befehlszeilentool als auch um eine interaktive Befehlsshell handelt.

Terminals

Ein Terminal ist eine Anwendung, die ein textbasiertes Fenster zum Hosten von Befehlsshells bereitstellt. Einige Terminals sind für die Arbeit mit einer bestimmten Shell konzipiert, während andere mehrere Shells hosten können. Sie können auch erweiterte Features enthalten, z. B.:

  • Möglichkeit zum Erstellen mehrerer Bereiche in einem einzelnen Fenster
  • Möglichkeit zum Erstellen mehrerer Registerkarten zum Hosten mehrerer Shells
  • Möglichkeit zum Ändern von Farbschemas und Schriftarten
  • Unterstützung für Kopier- und Einfügevorgänge

Die folgende Liste enthält einige Beispiele für Terminalanwendungen:

  • Windows Terminal – eine moderne Terminalanwendung für Windows, die mehrere Shells hosten kann.
  • Windows Console Host – die Standardhostanwendung unter Windows für textbasierte Anwendungen. Sie kann auch die Windows-Befehlsshell oder PowerShell hosten.
  • Terminal für macOS – die Standard-Terminalanwendung unter macOS, die die Bash- oder zsh-Shell hosten kann.
  • iTerm2 für macOS – eine beliebte Drittanbieter-Terminalanwendung für macOS.
  • Azure Cloud Shell – eine browserbasierte Terminalanwendung, die in Microsoft Azure gehostet wird. Azure Cloud shell bietet Ihnen die Wahl zwischen bash oder PowerShell. Jede Shell ist mit vielen Befehlszeilentools für die Verwaltung von Azure-Ressourcen vorkonfiguriert.