Befehlszeilenschnittstelle (CLI)
Was ist eine Befehlszeilenschnittstelle?
Eine Befehlszeilenschnittstelle (CLI) ist eine textbasierte Benutzeroberfläche, mit der Programme ausgeführt, Computerdateien verwaltet und mit dem Computer interagiert werden. Befehlszeilenschnittstellen werden auch als Befehlszeilenbenutzerschnittstellen, Konsolenbenutzerschnittstellen und Zeichenbenutzerschnittstellen bezeichnet. CLIs akzeptieren als Eingabebefehle, die über die Tastatur eingegeben werden; Die an der Eingabeaufforderung aufgerufenen Befehle werden dann vom Computer ausgeführt.
Heute bieten die meisten Hersteller standardmäßig die grafische Benutzeroberfläche (GUI) für Betriebssysteme (OSes) wie Windows, Linux und macOS an. Die meisten aktuellen Unix-basierten Systeme bieten sowohl eine Befehlszeilenschnittstelle als auch eine grafische Benutzeroberfläche.
Das MS-DOS-Betriebssystem und die Befehlsshell im Windows-Betriebssystem sind Beispiele für Befehlszeilenschnittstellen. Darüber hinaus können Programmiersprachenentwicklungsplattformen wie Python Befehlszeilenschnittstellen unterstützen.
Nach der Einführung von GUI-basierten PC-Betriebssystemen wie Microsoft Windows und Apples “klassischem” Mac OS in den 1980er Jahren verlor die Befehlszeile an Popularität. Die Befehlszeile bleibt ein wichtiges Werkzeug für IT-Profis, Softwareentwickler, Systemadministratoren, Netzwerkadministratoren und viele andere, die eine präzisere und reproduzierbarere Schnittstelle zu ihren Systemen bevorzugen.
Was ist eine Shell?
In der Informatik bietet ein Shell-Programm Zugriff auf die Komponenten eines Betriebssystems. Die Shell gibt Benutzern (oder anderen Programmen) die Möglichkeit, “in” das System zu gelangen, um Programme auszuführen oder Konfigurationen zu verwalten. Die Schale definiert die Grenze zwischen Innen und außen.
Im Folgenden sind die beiden Arten von Betriebssystem-Shells aufgeführt:
- CLI-basierte Shells bieten Benutzern eine übersichtliche und effiziente Art der Interaktion mit dem Betriebssystem, ohne dass der Overhead einer grafischen Benutzeroberfläche erforderlich ist.
- GUI-basierte Shells gelten als einfacher für Anfänger zu verwenden, aber sie enthalten auch eine CLI-basierte Shell für Systemadministratoren oder Power-User, die es vorziehen, an einer Eingabeaufforderung zu interagieren.
Bash ist die am häufigsten verwendete Befehlszeilenshell für Unix-basierte Betriebssysteme, einschließlich Linux.
Die Software, die die Befehlszeilenschnittstelle handhabt, wird allgemein als Befehlssprachinterpreter, Befehlsprozessor oder Befehlsinterpreter bezeichnet. Zwei bekannte CLI-Shells sind PowerShell für Windows und Bash für Linux und macOS.
Shells sind die äußerste Schicht des Betriebssystems und werden 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 enthält die Eingabeaufforderungs-App sowie die PowerShell-Anwendung, mit denen beide direkt mit dem Computer interagieren können. Das Windows-Subsystem für Linux bietet auch eine CLI mit Zugriff auf das zugrunde liegende System.
- Linux und andere Unix-basierte Betriebssysteme stellen normalerweise die Bourne-Again-Shell (bash) als Standard-Shell bereit. Andere Shells, einschließlich der C-Shell, der Z-Shell und anderer, können als Standardsystem-Shell konfiguriert werden.
Da sich die Shell nur eine Ebene über dem Betriebssystem befindet, können Benutzer Vorgänge ausführen, die in anderen Schnittstellentypen nicht verfügbar sind, z. B. 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 Benutzer eine Skriptsprache lernen. Die meisten Befehlszeilenshells können Befehlssequenzen in einem Skript oder einer Batchdatei speichern, die vollständig programmierbar sein können. Shell-Scripting ist die Grundlage für die grundlegende Automatisierung des Systemmanagements.
Wie funktionieren CLIs?
Sobald ein Computersystem ausgeführt wird, wird seine CLI auf einem leeren Bildschirm mit einer Eingabeaufforderung geöffnet und Befehle können eingegeben werden.
Zu den CLI-Befehlstypen gehören die folgenden:
- systembefehle, die als Teil der Betriebssystemschnittstelle codiert werden;
- ausführbare Programme, die bei erfolgreichem Aufruf textbasierte oder grafische Anwendungen ausführen; und
- Stapelprogramme (oder Stapeldateien oder Shell-Skripte), bei denen es sich um Textdateien handelt, die eine Folge von Befehlen auflisten. Wenn ein Batch-Programm erfolgreich aufgerufen wird, führt es seine Befehle aus, die sowohl Systembefehle als auch ausführbare Programme enthalten können.
CLI ist mehr als ein einfaches Befehls- / Antwortsystem, da die meisten über zusätzliche Funktionen verfügen, die eines dem anderen vorziehen. Einige Funktionen umfassen die folgenden:
- Die Skriptfunktion ermöglicht es Benutzern, Programme zu schreiben, die auf dem System über die Befehlszeile ausgeführt werden können.
- Command Pipes ermöglichen es Benutzern, die Ausgabe eines Programms als Eingabe für ein anderes Programm zu steuern (“Piping” des Datenflusses).
- Systemvariablen können in der Befehlszeile festgelegt oder die Werte dieser Variablen angezeigt werden.
- Befehlsverlaufsfunktionen ermöglichen es dem Benutzer, frühere ausgegebene 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).
Befehle und Syntax für CLIs sind im Laufe der Zeit tendenziell sehr stabil, teilweise um die Abwärtskompatibilität für Skripte zu ermöglichen.
Eingabeaufforderungen und Befehle
Je nach Betriebssystem und CLI stehen möglicherweise Hunderte oder sogar Tausende verschiedener ausführbarer Befehle zur Verfügung. Der Befehlssatz kann zwischen Betriebssystemen oder Anwendungen stark variieren.
Microsoft definiert beispielsweise Hunderte von Cmdlets als “Lightweight Commands”, die in PowerShell verwendet werden sollen; PowerShell-Funktionen sind Listen von Cmdlets, die über die Befehlszeile ausgeführt werden können.
Einige Befehle werden in der Befehlszeile selbst ausgeführt, z. B. der Befehl dir:
C:\> dir
Befehle können auch mit Argumenten (manchmal 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 CLIs verwendet, um das aktuelle Arbeitsverzeichnis zu ändern, wenn der gewünschte neue Verzeichnispfad als Argument angegeben wird – aber in einigen Fällen (wie in MS-DOS oder der Windows-Eingabeaufforderung) gibt der Befehl selbst das aktuelle Arbeitsverzeichnis zurück.
Dieser Befehl setzt das aktuelle Arbeitsverzeichnis zurück:
cd \documents\user\working
Argumenteermöglichen es Befehlszeilenbenutzern, sehr spezifische Ergebnisse zu erhalten, die manchmal nicht über eine grafische Oberfläche verfügbar sind.
Moderne CLIs bieten Pipes oder Mechanismen, um die Ausgabe eines Befehls zu übernehmen und als Eingabe an einen anderen Befehl zu senden. 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 der Befehlszeile wie ein einzelner Befehl eingegeben wird, enthält sie die folgenden aufeinanderfolgenden Befehle:
- Get-NetIPAddress ruft alle IP-Konfigurationsinformationen für den Computer ab, wenn sie ohne Argumente eingegeben werden.
- 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 InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress formatiert mit dem Befehl Format-Table (FT) die sortierte Ausgabe des vorherigen Befehls und zeigt die angegebenen Werte für jede IP-Adresse an.
Abwärtskompatibilität ist häufig ein Ziel, wenn neue CLIs eingeführt werden, um vorhandene CLIs zu ersetzen, z. B. wenn Microsoft MS-DOS durch die Windows-Eingabeaufforderung ersetzt. Obwohl einige MS-DOS-Befehle nicht mehr unterstützt werden, funktionieren die meisten in PowerShell weiterhin wie ursprünglich vorgesehen.
Zu den gängigen MS-DOS-Befehlen gehören die folgenden:
Befehl | Beispiel | Anmerkungen |
CD | C:\> CD \Benutzer\programme C:\user\programs> |
Ändert das aktuelle Verzeichnis in den angegebenen Pfad. Bei Eingabe ohne Pfad wird der Name des aktuellen Arbeitsverzeichnisses angezeigt. Wenn der Pfad in der Eingabeaufforderung enthalten ist, ändert sich die Eingabeaufforderung wie im Beispiel (siehe auch EINGABEAUFFORDERUNG unten). |
CHKDSK | C:\> CHKDSK a: | Überprüft die angegebene Festplatte – in diesem Fall die Diskette im Laufwerk A: – und gibt einen Statusbericht zurück, der die Festplattengröße, die Anzahl der verwendeten Dateien und Verzeichnisse sowie die Anzahl der verwendeten Bytes anzeigt. |
KOPIEREN | C:\> Autoexec KOPIEREN.in: bat autoexec.BAK | Kopiert angegebene Datei(en). Kann zum Kopieren von Dateien in Duplikate mit unterschiedlichen Dateinamen oder zum Kopieren von Dateien in ein anderes Verzeichnis ohne Namensänderung verwendet werden. |
DEL | C:\> DEL automatische Ausführung.BAK C:\> DEL C:\backups\*.BAK |
Löscht eine Datei oder Dateien. Kann verwendet werden, um Dateien im aktuellen Arbeitsverzeichnis oder in einem anderen Verzeichnis zu löschen. Kann auch mit Platzhalterzeichen verwendet werden, um Gruppen von Dateien zu löschen. |
DIR | C:\> DIR C:\> DIR c:\Sicherung\*.txt |
Zeigt alle Inhalte — Dateien und Verzeichnisse — im angegebenen Verzeichnis an. Wenn kein Verzeichnis angegeben ist, bezieht es sich auf den Inhalt des aktuellen Verzeichnisses. Es kann auch mit Platzhalterzeichen verwendet werden, um nur bestimmte Dateien anzuzeigen. |
EDLIN | C:\> edlin autoexec.bat | Startet edlin, einen Zeileneditor, mit dem Textdateien bearbeitet werden können. In diesem Beispiel wird es verwendet, um die Autoexec zu bearbeiten.bat-Datei. |
FORMATIEREN | C:\> FORMATIEREN a: | Formatiert eine Festplatte so, dass sie mit MS-DOS verwendet werden kann. |
MKDIR | C:\> MKDIR c:\NewDIR | Erstellt ein neues Verzeichnis im angegebenen Pfad. |
MEHR | C:\> MEHR autoexec.bat | Zeigt den Inhalt einer Datei Bildschirm für Bildschirm an. Es wird hauptsächlich für Textdateien verwendet. |
EINGABEAUFFORDERUNG | C:\> Eingabeaufforderung $p $d$g C:\UTIL Fr 11-05-2021> |
Ändert die Standard-Eingabeaufforderung. In diesem Beispiel werden Parameter mit dem Befehl verwendet, um die Eingabeaufforderung als aktuelles Laufwerk und Pfad, Tag und Datum sowie als Größer-als-Symbol festzulegen. Die resultierende Eingabeaufforderung wird im Beispiel gezeigt. |
RMDIR | C:\> rmdir c:\backup | Entfernt ein Verzeichnis. |
TYP | C:\> Typ autoexec.bat | Zeigt den Inhalt einer Textdatei ohne Seitenumbrüche an. |
CLI versus GUI
Die grafische Benutzeroberfläche ist heute die beliebteste Benutzeroberfläche. Eine GUI verwendet Fenster, Menüs und Symbole, um Befehle auszuführen. Die Verwendung einer Maus ist die gebräuchlichste Methode zum Navigieren durch eine GUI, obwohl viele GUIs eine gewisse Navigation und Programmausführung über eine Tastatur ermöglichen.
Microsoft Word ist ein Beispiel für eine GUI-basierte Anwendung. Ein Benutzer kann Optionen für Seitenlayouts und -stile ändern, indem er das entsprechende Symbol oder Pulldown-Menü mit einer Maus oder Tastatur auswählt.
Ein Vorteil einer GUI ist, dass die Schnittstelle verfügbare Funktionen visuell anzeigen kann. Da eine GUI jedoch auf einer grafischen Anzeige basiert, verfügt sie möglicherweise nicht über dieselbe Funktionalität und granulare Steuerung wie eine Befehlszeilenschnittstelle. Beispielsweise können zahlreiche Klicks und Bewegungen durch mehrere Dialogfelder in einer GUI erforderlich sein, um dasselbe Ergebnis wie eine einzelne Befehlszeile zu erzielen.
Darüber hinaus unterstützen GUIs Scripting oder Automatisierung nicht ohne weiteres. Bei allgemeinen Aufgaben muss ein Benutzer jeden Klick wiederholen oder in jedem Dialogfeld innerhalb der GUI manuell navigieren.
Systemadministratoren, die möglicherweise Hunderte – oder Hunderttausende – von Systemen und Konfigurationen verwalten müssen, werden eine GUI weitaus weniger effizient finden als eine CLI. Mit einem einfachen CLI-Befehl können Konfigurationen für eine große Gruppe von Systemen gleichzeitig angepasst werden.
Befehle und Argumente können auch kombiniert und gespeichert und dann jedes Mal als Skript ausgeführt werden, wenn eine bestimmte Aktion – oder ein umfassender Satz von Aktionen – erforderlich ist. Die CLI ist das bevorzugte Werkzeug für viele unternehmensweite Systemmanagementaufgaben.
CLI Vor- und Nachteile
Die folgenden Vorteile einer Befehlszeilenschnittstelle:
- granulare Steuerung eines Betriebssystems oder einer Anwendung;
- effizientere Verwaltung einer großen Anzahl von Systemen;
- Möglichkeit zum Speichern von Skripten zur Automatisierung regulärer Aufgaben; und
- Grundlegende Kenntnisse der Befehlszeilenschnittstelle können die Fehlerbehebung bei Netzwerkverbindungsproblemen oder die Lösung anderer Systemaufgaben ermöglichen.
Die Nachteile einer Befehlszeilenschnittstelle sind die folgenden:
- GUI ist benutzerfreundlicher;
- steilere Lernkurve, die mit dem Speichern von Befehlen und komplexen Syntax / Argumenten verbunden ist; und
- verschiedene Befehle, die in verschiedenen Shells verwendet werden.
Die Befehlszeile ist ein großartiger Ort, um ein Experte für die Verwendung eines Computers zu werden. Sobald Sie bereit sind, ist es auch der einzige Ort, um zu lernen, wie man Shell-Skripte schreibt.
Leave a Reply