Definition

Kommandozeile (Command Line Interface, CLI)

Was ist eine Befehlszeilenschnittstelle (Command Line Interface)?

Eine Befehlszeilenschnittstelle (Command Line Interface, CLI) – auch Kommandozeile genannt – ist Benutzeroberfläche(UI), die textbasiert ist. Sie dient zur Ausführung von Programmen, zur Verwaltung von Computerdateien und zur Interaktion mit dem Computer verwendet wird. Befehlszeilenschnittstellen werden auch als Befehlszeilen-Benutzerschnittstellen, Konsolen-Benutzerschnittstellen und Zeichen-Benutzerschnittstellen bezeichnet. CLIs akzeptieren als Eingabe Befehle, die über die Tastatur eingegeben werden; die an der Eingabeaufforderung aufgerufenen Befehle werden dann vom Computer ausgeführt.

Die meisten Hersteller offerieren eine grafische Benutzeroberfläche (GUI) als Standard für Betriebssysteme wie Windows, Linux und macOS an. Zahlreiche aktuelle Unix-basierte Systeme bieten sowohl eine Kommandozeile als auch eine grafische Benutzeroberfläche.

Das MS-DOS-Betriebssystem und die Befehls-Shell des Windows-Betriebssystems sind Beispiele für Kommandozeilen. Darüber hinaus können Plattformen zur Entwicklung von Programmiersprachen wie Python Befehlszeilenschnittstellen unterstützen.

Mit der Einführung von GUI-basierten Betriebssystemen wie Microsoft Windows und dem klassischen MacOS von Apple in den 1980er Jahren verlor die Kommandozeile an Popularität. Sie ist allerdings nach wie vor ein wichtiges Werkzeug für IT-Experten, Softwareentwickler, Systemadministratoren, Netzwerkadministratoren und diejenigen, die eine präzisere und reproduzierbare Schnittstelle zu ihren Systemen bevorzugen.

Was ist eine Shell?

In der Informatik ermöglicht ein Shell-Programm den Zugriff auf die Komponenten eines Betriebssystems. Die Shell bietet Benutzern (oder anderen Programmen) eine Möglichkeit, in das System einzudringen, um Programme auszuführen oder Konfigurationen zu verwalten. Die Shell definiert die Grenze zwischen innen und außen.

Im Folgenden werden die beiden Arten von Betriebssystem-Shells beschrieben:

  • CLI-basierte Shells bieten dem Benutzer eine prägnante und effiziente Möglichkeit, mit dem Betriebssystem zu interagieren, ohne den Overhead einer grafischen Benutzeroberfläche zu benötigen.
  • GUI-basierte Shells gelten als einfacher für Anfänger, aber sie enthalten auch eine CLI-basierte Shell für Systemadministratoren oder Power-User, die es vorziehen, an einer Kommandozeile zu arbeiten.

Die Bash ist die am häufigsten verwendete Befehlszeilen-Shell für Unix-basierte Betriebssysteme einschließlich Linux.

Die Software, die die Befehlszeilenschnittstelle verwaltet, wird gemeinhin als Befehlssprachinterpreter, Befehlsprozessor oder Befehlsinterpreter bezeichnet. Zwei bekannte CLI-Shells sind PowerShell für Windows und Bash für Linux und macOS.

Shells bilden die äußerste Schicht des Betriebssystems und sind oft vom zugrunde liegenden Betriebssystemkern getrennt. Eine Shell funktioniert wie eine Anwendung und kann bei Bedarf ersetzt werden. Ein Betriebssystem kann mehr als eine Shell zur Verfügung haben, wie in den folgenden Beispielen:

  • Microsoft Windows verfügt über die Eingabeaufforderung und die PowerShell-Anwendung, die beide für die direkte Interaktion mit dem Computer verwendet werden können. Das Windows-Subsystem für Linux bietet ebenfalls eine Kommandozeile mit Zugriff auf das zugrunde liegende System.
  • Linux und andere Unix-basierte Betriebssysteme bieten in der Regel die Bourne-Again-Shell (Bash) als Standard-Shell. Andere Shells, darunter die C-Shell und die Z-Shell, können als Standard-Shell des Systems konfiguriert werden.

Da die Shell nur eine Ebene über dem Betriebssystem liegt, können Benutzer Operationen durchführen, die in anderen Schnittstellen nicht möglich sind, zum Beispiel das Verschieben von Dateien in Systemordnern und das Löschen gesperrter Dateien.

Um den größten Nutzen aus der Verwendung einer CLI-Shell zu ziehen, sollten die Benutzer eine Skriptsprache erlernen. Die meisten Kommandozeilen-Shells können Befehlsfolgen in einer Skript- oder Batch-Datei speichern, die vollständig programmierbar sein kann. Shell-Skripte sind die Basis für eine grundlegende Automatisierung der Systemverwaltung.

Wie funktionieren CLIs?

Sobald ein Computersystem läuft, öffnet sich seine Befehlszeilenschnittstelle auf einem leeren Bildschirm mit einer Eingabeaufforderung, und es können Befehle eingegeben werden.

Es gibt folgende Arten von CLI-Befehlen:

  • Systembefehle, die als Teil der Schnittstelle des Betriebssystems kodiert sind.
  • ausführbare Programme, die bei erfolgreichem Aufruf textbasierte oder grafische Anwendungen ausführen.
  • Batch-Programme (oder Batch-Dateien oder Shell-Skripte), bei denen es sich um Textdateien handelt, die eine Folge von Befehlen auflisten. Bei erfolgreichem Aufruf führt ein Batch-Programm seine Befehle aus, die sowohl Systembefehle als auch ausführbare Programme umfassen können.

CLI ist mehr als ein einfaches Befehls/Antwort-System, da die meisten zusätzliche Funktionen haben, die eine der anderen vorziehen. Zu den Merkmalen gehören unter anderem die folgenden:

  • Scripting-Fähigkeit ermöglicht es Benutzern, Programme zu schreiben, die über die Befehlszeile auf dem System ausgeführt werden können.
  • Mit Hilfe von Command Pipes können Benutzer die Ausgabe eines Programms als Eingabe für ein anderes Programm verwenden (Piping des Datenflusses).
  • Systemvariablen können in der Befehlszeile gesetzt oder die Werte dieser Variablen angezeigt werden.
  • Die Befehlshistorie ermöglicht es dem Benutzer, frühere Befehle abzurufen. Einige speichern den Befehlsverlauf für die Sitzung (wie PowerShell), andere können so konfiguriert werden, dass der Sitzungsverlauf länger gespeichert wird (wie Bash).

Die Befehle und die Syntax für CLIs sind in der Regel im Laufe der Zeit sehr stabil, zum Teil um die Abwärtskompatibilität für Skripte zu ermöglichen.

Eingabeaufforderungen und Befehle

Je nach Betriebssystem und CLI können Hunderte oder sogar Tausende von verschiedenen ausführbaren Befehlen zur Verfügung stehen. Die Anzahl der Befehle kann je nach Betriebssystem oder Anwendung stark variieren.

Microsoft definiert beispielsweise Hunderte von Cmdlets als leichtgewichtige Befehle für die Verwendung in PowerShell. PowerShell-Funktionen sind Listen von Cmdlets, die in der Befehlszeile ausgeführt werden können.

Einige Befehle werden von selbst in der Befehlszeile ausgeführt, wie zum Beispiel der Befehl dir:

C:\> dir

Befehle können auch mit Argumenten (manchmal auch als Parameter bezeichnet) verwendet werden, die die Ausführung des Befehls ändern. Argumente folgen dem Befehl und geben zusätzliche Details oder Besonderheiten an.

Der Befehl cd change directory wird in vielen Befehlszeilen verwendet, um das aktuelle Arbeitsverzeichnis zu ändern, wenn der gewünschte neue Verzeichnispfad als Argument angegeben wird. In einigen Fällen (wie unter MS-DOS oder in der Windows-Eingabeaufforderung) gibt der Befehl selbst das aktuelle Arbeitsverzeichnis zurück.

Dieser Befehl setzt das aktuelle Arbeitsverzeichnis zurück:

cd \documents\user\working

Mit Hilfe von Argumenten können Befehlszeilenbenutzer sehr spezifische Ergebnisse erzielen, die manchmal über eine grafische Schnittstelle nicht verfügbar sind.

Moderne Befehlszeilenprogramme bieten Pipes oder Mechanismen, um die Ausgabe eines Befehls als Eingabe für einen anderen Befehl zu verwenden. Der vertikale Balken oder das Symbol „|“ wird häufig für diesen Zweck verwendet.

Der folgende Einzeiler verwendet Pipes, um mehrere PowerShell-Befehle aneinanderzureihen, um detaillierte Netzwerkkonfigurationsinformationen von einem Windows-Computer abzurufen:

Get-NetIPAddress | Sort InterfaceIndex | FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress

Obwohl diese Zeichenfolge in die Befehlszeile eingegeben wird, als wäre sie ein einziger Befehl, enthält sie die folgenden aufeinander folgenden Befehle:

  • Get-NetIPAddress ruft alle IP-Konfigurationsinformationen für den Computer ab, wenn er ohne Argumente eingegeben wird.
  • Sort InterfaceIndex akzeptiert als Eingabe die Ausgabe des Cmdlets Get-NetIPAddress und sortiert sie nach dem InterfaceIndex-Wert, der jeder in der Computerkonfiguration enthaltenen IP-Adresse zugeordnet ist.
  • FT InterfaceIndexInterfaceAliasAddressFamilyIPAddress verwendet den Befehl Format-Table (FT), um die sortierte Ausgabe des vorherigen Befehls zu formatieren und die angegebenen Werte für jede IP-Adresse anzuzeigen.

Abwärtskompatibilität ist oft ein Ziel, wenn neue Befehlszeilen eingeführt werden, um bestehende Befehlszeilen zu ersetzen, wie zum Beispiel, als Microsoft MS-DOS durch die Windows-Eingabeaufforderung ersetzte. Obwohl einige MS-DOS-Befehle nicht mehr unterstützt werden, funktionieren die meisten in PowerShell noch wie ursprünglich vorgesehen.

Zu den gängigen MS-DOS-Befehlen gehören die folgenden:

Befehl Beispiel Beschreibung
CD C:\> CD \user\programs
C:\user\programs>
Wechselt das aktuelle Verzeichnis in den angegebenen Pfad. Wird kein Pfad angegeben, wird der Name des aktuellen Arbeitsverzeichnisses angezeigt. Wenn der Pfad in der Eingabeaufforderung enthalten ist, ändert sich die Eingabeaufforderung wie im Beispiel (siehe auch PROMPT, unten).
CHKDSK C:\> CHKDSK a: Überprüft die angegebene Diskette – in diesem Fall die Diskette im Laufwerk A: – und gibt einen Statusbericht, der die Größe der Diskette, die Anzahl der verwendeten Dateien und Verzeichnisse sowie die Anzahl der verwendeten Bytes anzeigt.
COPY C:\> COPY autoexec.bat autoexec.BAK Kopiert die angegebene Datei oder Dateien. Kann verwendet werden, um Dateien in Duplikate mit anderen Dateinamen zu kopieren oder um Dateien in ein anderes Verzeichnis zu kopieren, ohne die Namen zu ändern.
DEL C:\> DEL autoexec.BAK
C:\> DEL C:\backups\*.BAK
 Löscht eine Datei oder mehrere Dateien. Kann verwendet werden, um Dateien im aktuellen Arbeitsverzeichnis oder in einem anderen Verzeichnis zu löschen. Kann auch mit Platzhaltern verwendet werden, um Gruppen von Dateien zu löschen.
DIR C:\> DIR
C:\> DIR c:\backups\*.txt
Zeigt alle Inhalte – Dateien und Verzeichnisse – im angegebenen Verzeichnis an. Wenn kein Verzeichnis angegeben ist, wird auf den Inhalt des aktuellen Verzeichnisses verwiesen. Es kann auch mit Platzhalterzeichen verwendet werden, um nur bestimmte Dateien anzuzeigen.
EDLIN C:\> edlin autoexec.bat Startet edlin, einen Zeileneditor, der zum Bearbeiten von Textdateien verwendet werden kann. In diesem Beispiel wird er zur Bearbeitung der Datei autoexec.bat verwendet.
FORMAT C:\> FORMAT a: Formatiert eine Diskette so, dass sie mit MS-DOS verwendet werden kann.
MKDIR C:\> MKDIR c:\NewDIR Erzeugt ein neues Verzeichnis im angegebenen Pfad.
MORE C:\> MORE autoexec.bat  Zeigt den Inhalt einer Datei bildschirmweise an. Es wird hauptsächlich für Textdateien verwendet.
PROMPT C:\> prompt $p $d$g
C:\UTIL Fri 11-05-2021>
Ändert die Standard-Eingabeaufforderung. In diesem Beispiel werden Parameter mit dem Befehl verwendet, um die Anzeige der Eingabeaufforderung auf das aktuelle Laufwerk und den Pfad, den Tag und das Datum sowie das Größer-als-Symbol festzulegen. Die resultierende Eingabeaufforderung ist im Beispiel dargestellt.
RMDIR C:\> rmdir c:\backup Entfernt ein Verzeichnis.
TYPE C:\> type autoexec.bat Zeigt den Inhalt einer Textdatei an, ohne Seitenumbrüche.

CLI und GUI im Vergleich

Die grafische Benutzeroberfläche ist heute die beliebteste Benutzerschnittstelle. Eine GUI verwendet Fenster, Menüs und Symbole, um Befehle auszuführen. Die Maus ist die gängigste Methode, um durch eine GUI zu navigieren, obwohl viele GUIs eine gewisse Navigation und Programmausführung über die Tastatur ermöglichen.

Microsoft Word ist ein Beispiel für eine GUI-basierte Anwendung. Der Benutzer kann die Optionen für das Seitenlayout und die Formatvorlagen ändern, indem er das entsprechende Symbol oder Pulldown-Menü mit der Maus oder der Tastatur auswählt.

Abbildung 1: Das Bild zeigt ein Beispiel für eine Ausgabe aus der PowerShell-Befehlszeile.
Abbildung 1: Das Bild zeigt ein Beispiel für eine Ausgabe aus der PowerShell-Befehlszeile.

Ein Vorteil einer grafischen Benutzeroberfläche ist, dass die verfügbaren Funktionen visuell angezeigt werden können. Da sie sich jedoch auf die grafische Darstellung stützt, verfügt eine grafische Benutzeroberfläche möglicherweise nicht über den gleichen Funktionsumfang und die gleiche Feinsteuerung wie eine Befehlszeilenschnittstelle. So kann es beispielsweise erforderlich sein, zahlreiche Klicks zu tätigen und sich durch mehrere Dialogfelder einer grafischen Benutzeroberfläche zu bewegen, um das gleiche Ergebnis zu erzielen wie mit einer einzigen Befehlszeile.

Außerdem unterstützen grafische Benutzeroberflächen nicht ohne weiteres Skripting oder Automatisierung. Für gängige Aufgaben muss ein Benutzer jeden Klick wiederholen oder jedes Dialogfeld innerhalb der grafischen Benutzeroberfläche manuell durchlaufen.

Systemadministratoren, die Hunderte oder Hunderttausende von Systemen und Konfigurationen verwalten müssen, finden eine grafische Benutzeroberfläche weit weniger effizient als eine Befehlszeile. Mit einem einfachen CLI-Befehl können Konfigurationen für eine große Gruppe von Systemen auf einmal angepasst werden.

Befehle und Argumente können auch kombiniert und gespeichert werden, um dann als Skript jedes Mal ausgeführt zu werden, wenn eine bestimmte Aktion – oder eine umfassende Reihe von Aktionen – erforderlich ist. Die CLI ist das bevorzugte Werkzeug für viele unternehmensweite Systemverwaltungsaufgaben.

Abbildung 2: Windows 11 bietet ein GUI, wo beispielsweise das Startmenü angezeigt wird.
Abbildung 2: Windows 11 bietet ein GUI, wo beispielsweise das Startmenü angezeigt wird.

Die Vor- und Nachteile der CLI

Im Folgenden werden die Vorteile einer Befehlszeilenschnittstelle aufgeführt:

  • Erlaubt granulare Kontrolle eines Betriebssystems oder einer Anwendung.
  • Bietet eine effizientere Verwaltung einer großen Anzahl von Systemen.
  • Die Möglichkeit, Skripte zu speichern, um regelmäßige Aufgaben zu automatisieren.
  • Grundkenntnisse der Befehlszeilenschnittstelle können die Fehlersuche bei Netzwerkverbindungsproblemen oder die Lösung anderer Systemaufgaben ermöglichen.

Die Nachteile einer Befehlszeilenschnittstelle sind die folgenden:

  • Es ist nicht so benutzerfreundlich wie die GUI.
  • Eine steilere Lernkurve ist nötig, die mit dem Auswendiglernen von Befehlen und komplexer Syntax/Argumenten verbunden ist.
  • Unterschiedliche Befehle werden in verschiedenen Shells verwendet.

Diese Definition wurde zuletzt im November 2024 aktualisiert

Erfahren Sie mehr über IT-Berufe und Weiterbildung