

Eine Kommandozeilenschnittstelle ( CLI ), auch bekannt als Kommandozeilen-Shell [ 1 ] [ 2 ], ermöglicht die Interaktion mit Software über Befehle – jeder Befehl wird als Textzeile formatiert. Das Konzept der textbasierten Computerinteraktion entwickelte sich über zwei Jahrzehnte und vollzog den Übergang von physischer Hardware zu komplexer Software. Vor der CLI wurden Computer mithilfe von physischen Schaltern oder Lochkarten programmiert [ 3 ] . Der Wandel hin zu einer befehlsbasierten Interaktion begann mit der Verwendung von Fernschreibern (Teletypes). Frühe Systeme wie der Whirlwind I (1951) am MIT nutzten schreibmaschinenähnliche Eingaben zur direkten Steuerung und verabschiedeten sich von der Stapelverarbeitung, bei der man einem Bediener einen Stapel Karten aushändigte und stundenlang auf das Ergebnis warten musste [ 4 ] . Geräte wie das 1963 eingeführte Teletype Model 33 ermöglichten es den Bedienern, einen Befehl einzugeben und eine gedruckte Antwort vom Computer zu erhalten [ 5 ] .
Der Kommandozeileninterpreter entstand, als Computer leistungsstark genug wurden, um mehrere Benutzer gleichzeitig zu bedienen (Time-Sharing). Das 1961 am MIT entwickelte Compatible Time-Sharing System (CTSS) führte den ersten echten Kommandozeileninterpreter ein . Erstmals konnte ein Benutzer einen Befehl wie LOGIN oder PRINT eingeben, woraufhin ein spezielles Programm (der Supervisor) diesen Text analysierte und die entsprechende Funktion ausführte. 1964 stellte Louis Pouzin die Software vor, die wir heute als „Shell“ für das Betriebssystem Multics kennen. Sie bot eine programmierbare Umgebung zur Ausführung von Skripten. Viele Betriebssysteme und Softwareentwicklungsprogramme bieten eine Kommandozeilenschnittstelle (CLI) .
Eine Befehlszeilenschnittstelle (CLI) ermöglicht die Automatisierung von Programmen , da Befehle in einer Skriptdatei gespeichert und wiederholt verwendet werden können. Ein Skript erlaubt die Ausführung seiner enthaltenen Befehle als Gruppe (als ein einzelnes Programm).
Alternativen zur CLI sind beispielsweise eine GUI (einschließlich der Desktop-Metapher wie Windows ), textbasierte Menüs (einschließlich DOS Shell und IBM AIX SMIT ) und Tastenkombinationen .
Vergleich mit grafischen Benutzeroberflächen

Im Vergleich zu einer grafischen Benutzeroberfläche benötigt eine Kommandozeilenschnittstelle deutlich weniger Systemressourcen. Da Befehlsoptionen in wenigen Zeichen pro Kommandozeile angegeben werden, finden erfahrene Benutzer sie oft leichter zugänglich. Die Automatisierung wiederkehrender Aufgaben wird durch Bearbeitungs- und Verlaufsfunktionen zum Speichern häufig verwendeter Befehlsfolgen vereinfacht; dies lässt sich auch auf Skriptsprachen mit Parametern und variablen Optionen ausweiten. Ein Kommandozeilenverlauf ermöglicht das Überprüfen oder Wiederholen von Befehlen.
Ein Kommandozeilensystem benötigt unter Umständen gedruckte oder Online-Handbücher als Nachschlagewerk, obwohl eine Hilfefunktion oft eine kurze Übersicht über die Optionen eines Befehls bietet. Die Kommandozeilenumgebung bietet möglicherweise keine grafischen Erweiterungen wie verschiedene Schriftarten oder erweiterte Bearbeitungsfenster, wie sie in einer grafischen Benutzeroberfläche (GUI) üblich sind. Für neue Benutzer kann es ohne Handbücher schwierig sein, sich mit allen verfügbaren Befehlen und Optionen vertraut zu machen, insbesondere im Vergleich zu den Symbolen und Dropdown-Menüs einer grafischen Benutzeroberfläche.
Typen
Befehlszeilenschnittstellen des Betriebssystems
Die Befehlszeilenschnittstellen von Betriebssystemen sind üblicherweise separate Programme, die mit dem Betriebssystem mitgeliefert werden. Ein Programm, das eine solche Textschnittstelle implementiert, wird oft als Befehlszeileninterpreter, Befehlsprozessor oder Shell bezeichnet .
Beispiele für Kommandozeileninterpreter sind Nushell , DECs DIGITAL Command Language (DCL) in OpenVMS und RSX-11 , die verschiedenen Unix-Shells ( sh , ksh , csh , tcsh , zsh , Bash usw.), CP/Ms CCP , DOS ' COMMAND.COM sowie die OS/2- und Windows- CMD.EXE- Programme, wobei letztere stark auf DECs RSX-11- und RSTS- CLIs basieren . Unter den meisten Betriebssystemen lässt sich das Standard-Shell-Programm durch Alternativen ersetzen; Beispiele hierfür sind 4DOS für DOS, 4OS2 für OS/2 und 4NT/Take Command für Windows.
Obwohl der Begriff „Shell“ oft synonym mit einem Kommandozeileninterpreter verwendet wird, ist eine Shell im engeren Sinne ein Kommandozeileninterpreter und -prozessor und somit ein Programm, das eine Schnittstelle (entweder eine Benutzerschnittstelle (Kommandozeilenschnittstelle, GUI usw.) oder eine Programmierschnittstelle) zu einem Kommandozeileninterpreter und -prozessor sowie zu den vielfältigen Funktionen des Betriebssystems bereitstellt. Beispielsweise ist die standardmäßige Windows-GUI eine Shell-GUI namens EXPLORER.EXE , die in der Konfigurationsdatei WIN.INI in der Zeile SHELL=EXPLORER.EXE definiert ist. Streng genommen ist dieses Programm eine Shell-GUI und somit eine Shell (genauer gesagt ist die Windows-Shell shell32.dll und nicht explorer.exe, das eine Shell-GUI für shell32.dll ist), aber es ist weder ein Kommandozeileninterpreter (CLI) noch eine Shell-CLI (Shell-Kommandozeilenschnittstelle).
Anwendungs-Befehlszeilenschnittstellen

Anwendungsprogramme (im Gegensatz zu Betriebssystemen) können auch über Befehlszeilenschnittstellen verfügen.
Ein Anwendungsprogramm kann keinen, einen oder alle dieser drei Haupttypen von Befehlszeilenschnittstellenmechanismen unterstützen:
- Parameter : Die meisten Kommandozeilenschnittstellen bieten die Möglichkeit, beim Start eines Programms zusätzliche Informationen an dieses zu übergeben.
- Interaktive Kommandozeilensitzungen : Nach dem Start kann ein Programm dem Benutzer eine unabhängige Möglichkeit zur Eingabe von Befehlen bieten.
- Interprozesskommunikation : Die meisten Betriebssysteme unterstützen Mechanismen zur Interprozesskommunikation (z. B. Standard-Streams oder Named Pipes ). Befehlszeilen von Clientprozessen können mithilfe einer dieser Methoden an ein CLI-Programm umgeleitet werden.
Manche Anwendungen unterstützen eine Befehlszeilenschnittstelle (CLI), die dem Benutzer eine eigene Eingabeaufforderung anzeigt und Befehlszeilen entgegennimmt. Andere Programme unterstützen sowohl eine CLI als auch eine grafische Benutzeroberfläche (GUI). In manchen Fällen ist die GUI lediglich eine Benutzeroberfläche für eine separate CLI- Datei . In anderen Fällen bietet ein Programm die CLI optional zur GUI an. CLIs und GUIs bieten oft unterschiedliche Funktionen. Beispielsweise sind alle Funktionen von MATLAB , einem Programm für numerische Analysen , über die CLI verfügbar, während die MATLAB-GUI nur eine Teilmenge der Funktionen bereitstellt.
Im Colossal Cave Adventure von 1975 verwendet der Benutzer eine Befehlszeilenschnittstelle (CLI), um ein oder zwei Wörter einzugeben und so ein Höhlensystem zu erkunden.
Geschichte
Die Kommandozeilenschnittstelle entwickelte sich aus einer Kommunikationsform, die von Menschen über Fernschreiber (TTY) genutzt wurde. Manchmal ging es dabei um das Senden von Befehlen oder Bestätigungen per Telex . Frühe Computersysteme verwendeten häufig einen Fernschreiber zur Interaktion mit einem Bediener.
Der mechanische Fernschreiber wurde durch ein „Glas-TTY“ ersetzt , eine Tastatur mit Bildschirm, die den Fernschreiber emulierte. „Intelligente“ Terminals ermöglichten zusätzliche Funktionen, wie die Cursorbewegung über den gesamten Bildschirm oder die lokale Bearbeitung von Daten am Terminal zur Übertragung an den Computer. Mit der Ablösung der traditionellen Architektur aus Minicomputer und Terminals durch die Mikrocomputer - Revolution wurden Hardware-Terminals durch Terminalemulatoren ersetzt – PC-Software, die über die seriellen Schnittstellen des PCs gesendete Terminalsignale interpretierte . Diese wurden typischerweise verwendet, um die neuen PCs eines Unternehmens mit den vorhandenen Mini- oder Großrechnern zu verbinden oder um PCs direkt miteinander zu verknüpfen. Auf einigen dieser PCs lief Bulletin-Board-System -Software.
Frühe Betriebssystem-Befehlszeilenschnittstellen (CLIs) waren in residente Monitorprogramme integriert und ließen sich nicht ohne Weiteres ersetzen. Die erste Implementierung der Shell als austauschbare Komponente war Teil des Time-Sharing -Betriebssystems Multics . [ 6 ] 1964 entwickelte Louis Pouzin , Mitarbeiter des MIT Computation Center , das Tool RUNCOM zur Ausführung von Befehlsskripten mit Argumentsubstitution. [ 7 ] Pouzin prägte den Begriff „Shell“ , um die Technik der Verwendung von Befehlen wie in einer Programmiersprache zu beschreiben, und verfasste eine Abhandlung über die Implementierung dieser Idee im Betriebssystem Multics . [ 8 ] 1965 kehrte Pouzin in sein Heimatland Frankreich zurück, und die erste Multics-Shell wurde von Glenda Schroeder entwickelt . [ 7 ]

Die erste Unix-Shell , die V6-Shell , wurde 1971 von Ken Thompson bei den Bell Labs entwickelt und basierte auf Schroeders Multics-Shell. [ 9 ] [ 10 ] Die Bourne-Shell wurde 1977 als Nachfolger der V6-Shell eingeführt. Obwohl sie als interaktiver Befehlsinterpreter verwendet wird, war sie auch als Skriptsprache gedacht und enthält die meisten Merkmale, die üblicherweise zur Erstellung strukturierter Programme benötigt werden. Die Bourne-Shell führte zur Entwicklung der KornShell (ksh), der Almquist-Shell (ash) und der populären Bourne-again-Shell (oder Bash). [ 10 ]
Frühe Mikrocomputer basierten auf einer Kommandozeilenschnittstelle wie CP/M , DOS oder AppleSoft BASIC . In den 1980er- und 1990er-Jahren wurde die Kommandozeile mit der Einführung des Apple Macintosh und von Microsoft Windows für PCs als primäre Benutzeroberfläche durch die grafische Benutzeroberfläche (GUI) ersetzt . [ 11 ] Die Kommandozeile blieb jedoch als alternative Benutzeroberfläche verfügbar und wurde häufig von Systemadministratoren und anderen fortgeschrittenen Benutzern für Systemadministration, Programmierung und Stapelverarbeitung genutzt .
Im November 2006 veröffentlichte Microsoft Version 1.0 von Windows PowerShell (ehemals Codename Monad ), die Funktionen traditioneller Unix-Shells mit dem proprietären objektorientierten .NET Framework kombinierte . MinGW und Cygwin sind Open-Source- Pakete für Windows, die eine Unix-ähnliche Befehlszeilenschnittstelle (CLI) bieten. Microsoft stellt die MKS Korn Shell , eine Implementierung von MKS Inc. , für Windows über das Add-on „Services for UNIX“ bereit .
Seit 2001 basiert das Macintosh -Betriebssystem macOS auf einem Unix-ähnlichen Betriebssystem namens Darwin . [ 12 ] Auf diesen Computern können Benutzer über das Terminalemulationsprogramm „ Terminal“ , das sich im Unterordner „Dienstprogramme“ des Ordners „Programme“ befindet, oder per SSH auf eine Unix-ähnliche Befehlszeilenschnittstelle zugreifen . Die Z-Shell ist die Standard-Shell für macOS; Bash, tcsh und die KornShell stehen ebenfalls zur Verfügung. Vor macOS Catalina war Bash die Standard-Shell.
Verwendung
Eine Kommandozeilenschnittstelle (CLI) wird immer dann verwendet, wenn ein großer Befehls- oder Abfragewortschatz zusammen mit einer Vielzahl von Optionen schneller als Text eingegeben werden kann als über eine reine grafische Benutzeroberfläche (GUI). Dies ist typischerweise bei Betriebssystem-Befehlsshells der Fall . CLIs werden auch von Systemen verwendet, deren Ressourcen für eine grafische Benutzeroberfläche nicht ausreichen. Einige Programmiersprachen (wie Python , [ 13 ] Forth , LISP , Rexx und viele BASIC- Dialekte ) bieten einen interaktiven Kommandozeilenmodus zur schnellen Codeauswertung.
Kommandozeilenprogramme (CLIs) werden häufig von Programmierern und Systemadministratoren in technischen und wissenschaftlichen Umgebungen sowie von technisch versierten PC-Nutzern eingesetzt. [ 14 ] CLIs sind auch bei Menschen mit Sehbehinderungen beliebt, da Befehle und Antworten mithilfe von Braillezeilen angezeigt werden können .
Anatomie einer Shell-CLI
Das allgemeine Muster einer Befehlszeile ist: [ 15 ] [ 16 ]
Eingabeaufforderungsbefehl Parameter1 Parameter2 Parameter3 … ParameterN
- Eingabeaufforderung – Ausgabe des Programms, die anzeigt, dass es zur Eingabe bereit ist; eine Eingabeaufforderung kann Kontextinformationen enthalten und endet oft mit einem Symbol, das visuell signalisiert, dass eine Eingabe erwartet wird.
- Befehl – eine Eingabe des Benutzers; ein Befehl gehört üblicherweise zu einer von zwei Klassen:
- Interne Befehle werden vom Kommandozeileninterpreter erkannt und verarbeitet. Interne Befehle werden auch als integrierte Befehle bezeichnet. [ 17 ]
- Externe Befehle führen ausführbare Dateien aus, die sich in separaten ausführbaren Dateien befinden. Der Befehlszeileninterpreter sucht nach ausführbaren Dateien, deren Namen mit dem externen Befehl übereinstimmen. [ 18 ] [ 19 ]
- param1 … paramN – vom Benutzer angegebene Parameter. Format und Bedeutung der Parameter hängen vom jeweiligen Befehl ab. Bei externen Befehlen werden die Parameterwerte beim Programmstart vom Betriebssystem an das Programm übergeben. Parameter können entweder Argumente oder Optionen sein .
In diesem Format werden die Befehlszeilenelemente durch Leerzeichen getrennt , und das Zeilenumbruchzeichen dient als Trennzeichen . Dies ist eine weit verbreitete (aber nicht universelle) Konvention.
Eine Kommandozeilenschnittstelle besteht im Allgemeinen aus Syntax und Semantik . Die Syntax ist die Grammatik, die alle Befehle befolgen müssen. Bei Betriebssystemen definieren DOS und Unix jeweils ihre eigenen Regeln, die für alle Befehle gelten. Bei eingebetteten Systemen definiert jeder Hersteller, wie beispielsweise Nortel , Juniper Networks oder Cisco Systems , seine eigenen proprietären Regeln. Diese Regeln legen auch fest , wie ein Benutzer durch das Befehlssystem navigiert. Die Semantik definiert, welche Operationen möglich sind, auf welche Daten diese Operationen angewendet werden können und wie die Grammatik diese Operationen und Daten repräsentiert – die symbolische Bedeutung in der Syntax.
Zwei verschiedene CLIs können entweder in der Syntax oder in der Semantik übereinstimmen, aber erst wenn sie in beidem übereinstimmen, können sie als ausreichend ähnlich angesehen werden, damit Benutzer beide CLIs verwenden können, ohne etwas lernen zu müssen, und um die Wiederverwendung von Skripten zu ermöglichen.
Eine einfache Befehlszeilenschnittstelle (CLI) zeigt eine Eingabeaufforderung an, akzeptiert die vom Benutzer eingegebene und mit der Eingabetaste abgeschlossene Befehlszeile, führt den angegebenen Befehl aus und gibt Ergebnisse oder Fehlermeldungen als Text aus. Erweiterte CLIs validieren, interpretieren und erweitern die Parameter der Befehlszeile vor der Ausführung und können optional die Ausgabe erfassen oder umleiten.
Im Gegensatz zu Schaltflächen oder Menüpunkten in einer grafischen Benutzeroberfläche (GUI) ist eine Befehlszeile in der Regel selbsterklärend [ 20 ] und gibt genau an, was der Benutzer ausführen möchte. Darüber hinaus enthalten Befehlszeilen üblicherweise viele Standardeinstellungen , die zur Anpassung der Ergebnisse geändert werden können. Nützliche Befehlszeilen lassen sich speichern, indem man ihnen eine Zeichenkette oder einen Alias zuweist , der den vollständigen Befehl repräsentiert. Alternativ können mehrere Befehle zu einer komplexeren Abfolge zusammengefasst werden – beispielsweise zum Kompilieren, Installieren und Ausführen des Programms. Dadurch entsteht eine einzelne Einheit, die als Befehlsprozedur oder Skript bezeichnet wird und selbst als Befehl verwendet werden kann. Dank dieser Vorteile muss ein Benutzer einen komplexen Befehl oder eine Befehlsfolge nur einmal ermitteln, da sie gespeichert und wiederverwendet werden können.
Die Befehle, die einer CLI-Shell übergeben werden, haben oft eine der folgenden Formen:
doSomething how toFilesdoSomething how sourceFile destinationFiledoSomething how < inputFile > outputFiledoSomething how | doSomething how | doSomething how > outputFile
Dabei ist `doSomething` im Prinzip ein Verb , `how` ein Adverb (z. B. ob der Befehl ausführlich oder leise ausgeführt werden soll ) und `toFiles` ein oder mehrere Objekte (typischerweise eine oder mehrere Dateien), auf die der Befehl angewendet werden soll. Das `` >im dritten Beispiel ist ein Umleitungsoperator , der den Befehlszeileninterpreter anweist, die Ausgabe des Befehls nicht an die Standardausgabe (den Bildschirm), sondern an die angegebene Datei zu senden. Dadurch wird die Datei überschrieben. Die Verwendung von `` >>leitet die Ausgabe um und hängt sie an die Datei an. Ein weiterer Umleitungsoperator ist der senkrechte Strich (` `), der eine Pipeline| erzeugt, in der die Ausgabe eines Befehls zur Eingabe des nächsten Befehls wird. [ 21 ]
CLI- und Ressourcenschutz
Auf manchen Systemen, wie beispielsweise Unix-ähnlichen Systemen oder Windows, lässt sich die Menge der verfügbaren Befehle durch Ändern der Pfade in der Umgebungsvariablen PATH (oder einer entsprechenden Variable) anpassen. Auf Unix-ähnlichen Systemen muss der Datei, die die ausführbare Datei oder das Skript für einen Befehl enthält, außerdem die Ausführungsberechtigung erteilt werden . Die Verzeichnisse in der PATH-Variablen werden in der angegebenen Reihenfolge durchsucht. Durch Ändern der Pfadreihenfolge kann man beispielsweise `pip` \OS2\MDOS\E.EXEanstelle von `pip` ausführen \OS2\E.EXE, obwohl die Standardreihenfolge umgekehrt ist. Auch das Umbenennen der ausführbaren Dateien funktioniert: Viele Benutzer benennen ihren bevorzugten Editor beispielsweise in `EDIT` um.
Die Kommandozeile ermöglicht es, die verfügbaren Befehle einzuschränken, beispielsweise den Zugriff auf erweiterte interne Befehle. Die Bourne-Shell und ähnliche Shells wie Bash können als eingeschränkte Shell ausgeführt werden . Dies verhindert unter anderem, dass der Benutzer die Umgebungsvariable PATH ändert. Ist PATH so eingestellt, dass es nur Verzeichnisse mit zulässigen Befehlen enthält, kann der Benutzer nur diese Befehle ausführen. Auch die Windows- Eingabeaufforderung (CMD.EXE) unterstützt die Einschränkung verfügbarer Befehle. Shareware-Programme beschränken häufig den Befehlsumfang und geben beispielsweise die Meldung „Ihr Administrator hat die Ausführung von Batchdateien deaktiviert“ in der Eingabeaufforderung aus.
Manche CLIs, wie beispielsweise die von Netzwerkroutern , verfügen über eine Hierarchie von Modi mit jeweils unterschiedlichen Befehlssätzen. Diese Befehle sind nach ihrer Zugehörigkeit zu Sicherheitsfunktionen, Systemen, Schnittstellen usw. gruppiert. In solchen Systemen kann der Benutzer mehrere Untermodi durchlaufen. Verfügt die CLI beispielsweise über die Modi „ Schnittstelle“ und „System“ , kann der Benutzer mit dem Befehl „ interface “ in den Schnittstellenmodus wechseln. Befehle aus dem Systemmodus sind dann erst verfügbar, nachdem der Benutzer den Schnittstellenmodus verlassen und in den Systemmodus gewechselt hat.
In IBMs Flaggschiff- Betriebssystemen der MVS-Serie ermöglicht die Authorised Program Facility ( APF ) bestimmten autorisierten Programmen die Ausführung mit erweiterten Berechtigungen, analog zu UID(0) in Unix-ähnlichen Systemen. TSO/E unterstützt beispielsweise den Aufruf autorisierter Befehle, jedoch nur für diejenigen Befehle, Programme und Dienste, die in einer installationsgesteuerten Liste aufgeführt sind.
Eingabeaufforderung

Eine Eingabeaufforderung (oder kurz Prompt ) ist eine Folge von (einem oder mehreren) Zeichen, die in einer Kommandozeilenschnittstelle verwendet wird, um die Bereitschaft zur Annahme von Befehlen anzuzeigen. Sie fordert den Benutzer direkt zur Ausführung einer Aktion auf. Eine Eingabeaufforderung endet üblicherweise mit einem der Zeichen $, %, #, [ 22 ] [ 23 ]: oder [ 24 ] und enthält oft weitere Informationen, wie den Pfad des aktuellen Arbeitsverzeichnisses und den Hostnamen . >-
Auf vielen Unix- und abgeleiteten Systemen endet die Eingabeaufforderung üblicherweise mit $, %wenn der Benutzer ein normaler Benutzer ist, und mit , #wenn der Benutzer ein Superuser ist (in der Unix-Terminologie als root bezeichnet).
Endbenutzer können die Eingabeaufforderung häufig anpassen. Je nach Umgebung können sie Farben, Sonderzeichen und andere Elemente (wie Variablen und Funktionen für die aktuelle Uhrzeit, den Benutzer, die Shell-Nummer oder das Arbeitsverzeichnis) einfügen, um die Eingabeaufforderung beispielsweise informativer oder optisch ansprechender zu gestalten, Sitzungen auf verschiedenen Rechnern zu unterscheiden oder die aktuelle Verschachtelungsebene von Befehlen anzuzeigen. Auf manchen Systemen können spezielle Token in der Definition der Eingabeaufforderung verwendet werden, um externe Programme vom Kommandozeileninterpreter aufrufen zu lassen, während die Eingabeaufforderung angezeigt wird.
In DOS (COMMAND.COM) und Windows NT ( cmd.exe) können Benutzer die Eingabeaufforderung durch einen PROMPTBefehl oder durch direktes Ändern des Werts der entsprechenden %PROMPT%Umgebungsvariablen anpassen . Der Standardstil der meisten modernen Systeme C:\>wird beispielsweise mit `--no-dependency` erreicht PROMPT $P$G. Der Standardstil älterer DOS-Systeme C>wird mit `--no-dependency` erreicht PROMPT, obwohl dies auf manchen Systemen den neueren C:\>Stil erzeugt, es sei denn, er wird auf Diskettenlaufwerken A: oder B: verwendet. Auf diesen Systemen PROMPT $N$Gkann man mit `--no-dependency` die automatische Standardeinstellung überschreiben und explizit zum älteren Stil wechseln.
Viele Unix-Systeme verwenden die $PS1Variable (Prompt String 1), [ 25 ] wobei auch andere Variablen den Prompt beeinflussen können (abhängig von der verwendeten Shell ). In der Bash-Shell sieht ein Prompt beispielsweise so aus:
[ Zeit ] Benutzer@Host: Arbeitsverzeichnis $ könnte durch Ausführen des Befehls eingestellt werden
export PS1 = '[\t] \u@\H: \W $'In zsh$RPROMPT steuert die Variable eine optionale Eingabeaufforderung auf der rechten Seite des Bildschirms. Es handelt sich dabei nicht um eine echte Eingabeaufforderung, da sich die Position der Texteingabe nicht ändert. Sie dient dazu, Informationen in derselben Zeile wie die Eingabeaufforderung, jedoch rechtsbündig, anzuzeigen.
In RISC OS ist die Eingabeaufforderung ein Symbol, daher werden (OS-)CLI-Befehle oft als Sternbefehle* bezeichnet . [ 26 ] Man kann auch über andere Befehlszeilen (wie die BBC BASIC -Befehlszeile) auf dieselben Befehle zugreifen, indem man dem Befehl ein Sternchen voranstellt . *
In IBMs TSO wird die Eingabeaufforderung nach dem Wort READY als READY-Eingabeaufforderung bezeichnet READY.
Einige Shells, wie Bash, zsh und PowerShell, ermöglichen die Verwendung von Eingabeaufforderungssystemen, die deutlich mehr Informationen in der Befehlszeile anzeigen, beispielsweise die Art der Remote-Verbindung, den Status von Maschinensensoren oder zusätzliche Informationen zu einem Versionskontrollsystem . Sie verwenden häufig mehrere ANSI-Farben , Unicode-Zeichen und erweiterte Shell-Funktionen, um eine ansprechende Darstellung zu ermöglichen.
Argumente

Ein Kommandozeilenargument oder -parameter ist eine Information, die einem Programm beim Start übergeben wird. [ 27 ] Ein Programm kann mehrere Kommandozeilenargumente haben, die Quellen oder Ziele von Informationen angeben oder die Funktionsweise des Programms verändern.
Wenn ein Befehlsprozessor aktiv ist, wird ein Programm typischerweise durch Eingabe seines Namens gefolgt von Befehlszeilenargumenten (falls vorhanden) aufgerufen. In Unix- und Unix-ähnlichen Umgebungen ist beispielsweise folgendes ein Befehlszeilenargument:
rm file.s file.sist ein Kommandozeilenargument, das dem Programm rm mitteilt , die Datei mit dem Namen zu löschen file.s.
Einige Programmiersprachen, wie C , C++ und Java , erlauben es einem Programm, die Kommandozeilenargumente zu interpretieren, indem sie diese als String-Parameter in der Hauptfunktion behandeln . [ 28 ] [ 29 ] Andere Sprachen, wie Python , stellen betriebssystemspezifische APIs (Funktionalitäten) über das sysModul bereit , [ 30 ] insbesondere sys.argvfür Kommandozeilenargumente .
In Unix-ähnlichen Betriebssystemen ist ein einzelner Bindestrich anstelle eines Dateinamens ein spezieller Wert, der angibt, dass ein Programm Daten von der Standardeingabe verarbeiten oder Daten an die Standardausgabe senden soll .
Befehlszeilenoption
Eine Befehlszeilenoption ( auch Flag oder Schalter genannt ) modifiziert die Ausführung eines Befehls; die Wirkung hängt vom jeweiligen Programm des Befehls ab. Optionen folgen dem Befehlsnamen in der Befehlszeile, getrennt z. B. durch Kommas oder Leerzeichen. Trennzeichen sind nicht immer erforderlich, wie beispielsweise bei `DIR` und ` DIR` in DOS, die dieselbe Wirkung haben [ 24 ] und die verfügbaren Optionen des Befehls `DIR` auflisten. Im Gegensatz dazu erfordert `DIR` (in vielen Unix-Versionen) , dass der Option mindestens ein Leerzeichen vorangestellt wird (und die Groß-/Kleinschreibung beachtet wird). Dir/?DIR /?dir --help
Das Format der Optionen variiert stark zwischen den Betriebssystemen. In den meisten Fällen basiert die Syntax eher auf Konventionen als auf Betriebssystemvorgaben; die gesamte Befehlszeile ist lediglich eine Zeichenkette, die an ein Programm übergeben wird. Dieses kann sie beliebig verarbeiten, solange der Interpreter erkennt, wo der Befehlsname endet und seine Argumente und Optionen beginnen.
Einige repräsentative Beispiele für Befehlszeilenoptionen, die sich größtenteils auf das Auflisten von Dateien in einem Verzeichnis beziehen, um einige Konventionen zu veranschaulichen:
| Betriebssystem | Befehl | Gültige Alternative | Anmerkungen |
|---|---|---|---|
| OpenVMS | directory/owner | Dir /Owner | Weisen Sie den Befehl `directory` an , auch die Dateibesitzer anzuzeigen. Beachten Sie, dass der Befehlsname `directory` nicht zwischen Groß- und Kleinschreibung unterscheidet und beliebig abgekürzt werden kann, solange er eindeutig bleibt. |
| Windows | DIR/Q/O:S d* | dir /q d* /o:s | Zeigt die Besitzverhältnisse von Dateien an, deren Namen mit d (oder D) beginnen, sortiert nach Größe, die kleinste zuerst. Beachten Sie, dass Leerzeichen um das Argument d* erforderlich sind. |
| Unix-ähnliche Systeme | ls -lS D* | ls -S -l D* | Dateien und Verzeichnisse, deren Namen mit D (aber nicht mit d) beginnen, werden im Langformat angezeigt und nach Größe sortiert (größte zuerst). Beachten Sie, dass Leerzeichen um alle Argumente und Optionen erforderlich sind, einige jedoch kombiniert werden können, z. B. ist -lS dasselbe wie -l -S . |
| Allgemeine Daten RDOS CLI | list/e/s 04-26-80/b | List /S/E 4-26-80/B | Listet alle Attribute für Dateien auf, die vor dem 26. April 1980 erstellt wurden. Beachten Sie, dass der Parameter /B am Ende des Datumsarguments ein lokaler Schalter ist , der die Bedeutung dieses Arguments ändert, während /S und /E globale Schalter sind , d. h. sie gelten für den gesamten Befehl. |
| VM/CMS CLI | LISTFILE (FULLDATE) | l(ful | Enthält das Datum, an dem die Datei zuletzt in die Liste aufgenommen wurde. Beachten Sie, dass der Befehlsname LISTFILE nicht zwischen Groß- und Kleinschreibung unterscheidet und beliebig abgekürzt werden kann, solange er eindeutig bleibt. |
| OS/360 -Bedienerbefehle | START TAPERDR,DSNAME=FOO.BAR | S TAPERDR,DSN=FOO.BAR | Starten Sie die Prozedur mit dem Namen TAPERDR und dem angegebenen Datensatznamen. |
| TSO | LISTCAT LEVEL(FOO) MEMBERS | LISTC L(FOO) M | Listen Sie Datensätze auf der angegebenen Indexebene auf und listen Sie die Elemente für jedes PDS auf . |
SEND 'text' USER(FOO) | SE 'text' U(FOO) | Nachricht an den angegebenen Benutzer senden |
Die Analyse von Kommandozeilenargumenten dient dazu, die Argumente eines Programms zu parsen. Diese Funktionalität wird in verschiedenen Programmiersprachen angeboten. Beispielsweise ist die Funktion `getopt()` in der C-POSIX-Bibliothek zur Argumentanalyse enthalten.
Befehle abkürzen
In Multics können Befehlszeilenoptionen und Subsystem-Schlüsselwörter abgekürzt werden. Diese Idee scheint von der Programmiersprache PL/I mit ihren Kurzformen (z. B. STRG für STRINGRANGE und DCL für DECLARE) übernommen zu sein. Beispielsweise kann im Multics- Forum- Subsystem der Parameter `-long_subject` mit `-lgsj` abgekürzt werden . Auch Multics-Befehle werden häufig abgekürzt, typischerweise durch die Anfangsbuchstaben der Wörter, die mit Unterstrichen zu Befehlsnamen verbunden werden, wie etwa ` did` für `delete_iacl_dir` .
In einigen anderen Systemen erfolgen Abkürzungen automatisch, beispielsweise indem genügend der ersten Zeichen eines Befehlsnamens verwendet werden, um diesen eindeutig zu identifizieren (z. B. als SUAbkürzung für SUPERUSER), während in anderen Systemen bestimmte Abkürzungen vorprogrammiert sind (z. B. MDfür MKDIRin COMMAND.COM) oder benutzerdefiniert über Batch-Skripte und Aliase (z. B. alias md mkdirin tcsh ) erfolgen.
Optionskonventionen in DOS, Windows, OS/2
Unter DOS, OS/2 und Windows können verschiedene Programme, die über COMMAND.COM oder CMD.EXE (oder intern über ihre Befehle) aufgerufen werden, innerhalb desselben Betriebssystems unterschiedliche Syntax verwenden. Zum Beispiel:
- Optionen können durch eines der beiden Schalterzeichen :
/,-, angegeben werden, oder beides ist zulässig. Siehe unten. - Sie können zwischen Groß- und Kleinschreibung unterscheiden oder auch nicht .
- Manchmal werden Optionen und ihre Argumente zusammengeschrieben, manchmal durch Leerzeichen getrennt und manchmal durch ein Zeichen, typischerweise
:oder=; alsoProg -fFilename,Prog -f Filename,Prog -f:Filename,Prog -f=Filename. - Manche Programme erlauben die Kombination von Einzelzeichenoptionen; [ 24 ] andere nicht. Der Schalter
-fAkann dieselbe Bedeutung wie haben-f -A, [ 24 ] oder falsch sein, oder er kann sogar ein gültiger, aber anderer Parameter sein.
Unter DOS , OS/2 und Windows ist der Schrägstrich (/ /) am gebräuchlichsten, obwohl auch der Bindestrich gelegentlich verwendet wird. In vielen DOS-Versionen (MS-DOS/PC DOS 2.xx und höher, alle DR-DOS- Versionen ab 5.0 sowie PTS-DOS , Embedded DOS , FreeDOS und RxDOS ) wird das zu verwendende Umschaltzeichen (manchmal abgekürzt switchar oder switchchar ) durch einen Wert definiert, der von einem Systemaufruf ( INT 21h /AX=3700h) zurückgegeben wird. Das von dieser API standardmäßig zurückgegebene Zeichen ist ein Schrägstrich /, kann aber auf den oben genannten Systemen in einen Bindestrich geändert werden, außer unter Datalight ROM-DOS und MS-DOS/PC DOS 5.0 und höher, die /von diesem Aufruf immer einen Schrägstrich zurückgeben (es sei denn, eine der vielen verfügbaren TSRs zum Reaktivieren der SwitChar-Funktion ist geladen). In einigen dieser Systeme (MS-DOS/PC DOS 2.xx, DOS Plus 2.1, DR-DOS 7.02 und höher, PTS-DOS, Embedded DOS, FreeDOS und RxDOS) kann die Einstellung auch über eine SWITCHAR- Anweisung in der CONFIG.SYS vorkonfiguriert werden . General Softwares Embedded DOS bietet einen SWITCH-Befehl für denselben Zweck, während 4DOS die Änderung der Einstellung über [ 31 ]SETDOS /W:n ermöglicht . Unter DR-DOS ändert sich, wenn die Einstellung geändert wurde , das erste Verzeichnistrennzeichen in der Anzeige des PROMPT- Parameters in einen Schrägstrich (der auch in DOS, FlexOS, 4680 OS, 4690 OS, OS/2 und Windows ein gültiges Verzeichnistrennzeichen ist). Dies dient als visueller Hinweis auf die Änderung. [ 24 ] Die aktuelle Einstellung wird auch in den integrierten Hilfebildschirmen angezeigt. [ 24 ] Einige Versionen von DR-DOS COMMAND.COM unterstützen auch ein PROMPT-Token zur Anzeige der aktuellen Einstellung. Seit DR-DOS 7.02 bietet COMMAND.COM zudem eine Pseudo-Umgebungsvariable , um das Schreiben portabler Batch-Jobs zu ermöglichen. [ 32 ] [ 33 ] Mehrere externe DR-DOS-Befehle unterstützen zusätzlich eine Umgebungsvariable , um die Systemeinstellung zu überschreiben. /\$G/$/%/%%SWITCHAR%
Viele Programme sind jedoch so programmiert, dass sie ausschließlich `/` verwenden /, anstatt die Schaltereinstellung vor dem Parsen der Befehlszeilenargumente abzurufen. Nur wenige Programme, hauptsächlich Portierungen von Unix-ähnlichen Systemen, sind so programmiert, dass sie -auch dann funktionieren, wenn das Schalterzeichen nicht explizit gesetzt ist (beispielsweise akzeptieren ` netstat/` und `/` ping, die mit Microsoft Windows- mitgeliefert werden, die Option `/?`, um die verfügbaren Optionen aufzulisten, wobei die Liste die Konvention angibt ).
Optionskonventionen in Unix-ähnlichen Systemen
In Unix-ähnlichen Systemen beginnen Optionen mit einem ASCII- Bindestrich-Minuszeichen . Die neue (und GNU- )Konvention sieht zwei Bindestriche gefolgt von einem Wort vor (z. B. `--option` --create), um die Verwendung der Option zu kennzeichnen. Die alte Konvention (die für häufig verwendete Optionen weiterhin verfügbar ist) verwendet einen Bindestrich gefolgt -cvon einem Buchstaben (z. B. `--option`). Folgen einem Bindestrich zwei oder mehr Buchstaben, kann dies bedeuten, dass zwei Optionen angegeben werden, oder dass der zweite und die folgenden Buchstaben einen Parameter (wie Dateiname oder Datum) für die erste Option darstellen. [ 34 ]
Zwei Bindestriche ohne nachfolgende Buchstaben ( --) können darauf hinweisen, dass die verbleibenden Argumente nicht als Optionen behandelt werden sollen. Dies ist beispielsweise nützlich, wenn ein Dateiname selbst mit einem Bindestrich beginnt oder wenn weitere Argumente für einen inneren Befehl (z. B. sudo ) bestimmt sind. Doppelte Bindestriche werden auch manchmal verwendet, um langen Optionen einen aussagekräftigeren Namen voranzustellen. Dies ist ein gängiges Merkmal von GNU -Software. Die Funktion und das Programm getopt sowie der Befehl getopts werden üblicherweise zum Parsen von Befehlszeilenoptionen verwendet.
Bei Unix-Befehlsnamen, Argumenten und Optionen wird zwischen Groß- und Kleinschreibung unterschieden (außer in wenigen Ausnahmefällen, hauptsächlich wenn gängige Befehle aus anderen Betriebssystemen nach Unix portiert wurden).
Optionskonventionen in anderen Systemen
FlexOS , 4680 OS und 4690 OS verwenden -.
CP/M wird üblicherweise verwendet [.
Das Conversational Monitor System (CMS) verwendet eine einzelne öffnende Klammer , um die Optionen am Ende des Befehls von den anderen Argumenten zu trennen. Beispielsweise geben die Optionen im folgenden Befehl an, dass die Zieldatei ersetzt werden soll, falls sie existiert, und dass Datum und Uhrzeit der Quelldatei in der Kopie beibehalten werden sollen: COPY source file a target file b (REPLACE OLDDATE)
OS/360- Operatorbefehle verwenden eine durch Kommas getrennte Liste von Positions- und Schlüsselwortparametern; nur dokumentierte Befehls- und Schlüsselwortabkürzungen sind gültig. Schlüsselwortwerte werden durch Gleichheitszeichen von den Schlüsselwörtern getrennt.
TSO -Befehle verwenden eine durch Leerzeichen getrennte Liste von Positions- und Schlüsselwortparametern; Schlüsselwörter können auf eine beliebige eindeutige Teilzeichenkette gekürzt werden. Nur dokumentierte Befehlsabkürzungen sind gültig. Schlüsselwortwerte stehen in Klammern.
Die CLI von Data General unter ihren Betriebssystemen RDOS , AOS usw. sowie die mit Business Basic mitgelieferte CLI-Version verwendet ausschließlich /das Leerzeichen als Schalterzeichen, unterscheidet nicht zwischen Groß- und Kleinschreibung und ermöglicht lokale Schalter für einige Argumente, um deren Interpretation zu steuern. So MAC/U LIB/S A B C $LPT/Lverfügt sie beispielsweise über die globale Option Ufür den Makroassembler-Befehl zum Anhängen von Benutzersymbolen, aber auch über zwei lokale Schalter: einen, um anzugeben, dass LIB im zweiten Durchlauf übersprungen werden soll, und einen weiteren, um die Ausgabe direkt an den Drucker zu senden, $LPT.
Integrierte Nutzungshilfe
Ein Kritikpunkt an Kommandozeilenprogrammen (CLI) ist das Fehlen von Hinweisen für den Benutzer hinsichtlich der verfügbaren Aktionen. [ 35 ] Im Gegensatz dazu informieren grafische Benutzeroberflächen (GUIs) den Benutzer üblicherweise über verfügbare Aktionen mithilfe von Menüs, Symbolen oder anderen visuellen Hinweisen. [ 36 ] Um diese Einschränkung zu überwinden, zeigen viele CLI-Programme eine Nutzungsmeldung an , typischerweise beim Aufruf ohne Argumente oder mit einem der folgenden Argumente ?: , -?, -h, -H, /?, /h, /H, /Help, -help, oder --help. [ 24 ] [ 37 ] [ 38 ]
Allerdings kann die Eingabe eines Programmnamens ohne Parameter in der Hoffnung, dass daraufhin eine Nutzungshilfe angezeigt wird, gefährlich sein, da Programme und Skripte, bei denen Befehlszeilenargumente optional sind, ohne weitere Benachrichtigung ausgeführt werden.
Obwohl dies zumindest für den Hilfeparameter wünschenswert ist, unterstützen Programme möglicherweise nicht alle oben genannten Optionszeichen. Unter DOS, wo das Standardzeichen für Befehlszeilenoptionen von `\` auf `\`/ geändert werden kann , können Programme die SwitChar- -API abfragen , um die aktuelle Einstellung zu ermitteln. Wenn ein Programm also nicht standardmäßig alle Zeichen unterstützt, muss der Benutzer die aktuelle Einstellung kennen, um zuverlässig Hilfe anfordern zu können. Wenn SwitChar auf `\` geändert wurde und das Zeichen daher als alternatives Pfadtrennzeichen in der DOS-Befehlszeile akzeptiert wird, könnten Programme Optionen wie `\` oder ` \` fälschlicherweise als Pfade anstatt als Hilfeparameter interpretieren. [ 24 ] Wird `\` jedoch als erster oder einziger Parameter angegeben, akzeptieren die meisten DOS-Programme dies konventionsgemäß als Hilfeanfrage, unabhängig von der aktuellen SwitChar-Einstellung. [ 24 ] [ 31 ]-//h/H
In einigen Fällen können für ein Programm verschiedene Hilfestufen ausgewählt werden. Einige Programme, die dies unterstützen, ermöglichen die Angabe des Ausführlichkeitsgrades als optionales Argument des Hilfeparameters (z. B. `--ausführlich` /H:1, /H:2`--ausführlich` usw.) oder bieten lediglich eine Kurzhilfe zu den Hilfeparametern mit einem Fragezeichen und eine ausführlichere Hilfeseite für die übrigen Hilfeoptionen. [ 39 ]
Je nach Programm ist zusätzliche oder spezifischere Hilfe zu den akzeptierten Parametern manchmal verfügbar, indem entweder der betreffende Parameter als Argument an den Hilfeparameter übergeben wird oder umgekehrt (wie in /H:Woder in /W:?(vorausgesetzt, /Wes handelt sich um einen weiteren vom Programm unterstützten Parameter)). [ 40 ] [ 41 ] [ 38 ] [ 37 ] [ 39 ] [ nb 1 ]
Ähnlich wie beim Hilfeparameter, jedoch viel seltener, liefern einige Programme zusätzliche Informationen über sich selbst (wie Modus, Status, Version, Autor, Lizenz oder Kontaktinformationen), wenn sie mit einem About- Parameter wie -!, /!, -about, oder aufgerufen werden --about. [ 37 ]
Da die Zeichen ?und !in der Befehlszeile typischerweise auch anderen Zwecken dienen, sind sie möglicherweise nicht in allen Szenarien verfügbar. Daher sollten sie nicht die einzigen Optionen sein, um auf die entsprechenden Hilfeinformationen zuzugreifen.

Falls eine detailliertere Hilfe erforderlich ist, als die im Programm integrierte interne Hilfe bietet, unterstützen viele Systeme einen speziellen externen Befehl (oder einen ähnlichen), der einen Befehlsnamen als Aufrufparameter akzeptiert und ein externes Hilfesystem aufruft. helpcommand
In der DR-DOS-Familie zeigt die Eingabe von `--cd` /?oder `--cd` /Han der COMMAND.COM- Eingabeaufforderung anstelle eines Befehls selbst eine dynamisch generierte Liste der verfügbaren internen Befehle an. [ 24 ] 4DOS und NDOS unterstützen dieselbe Funktion durch Eingabe von `--cd` ?an der Eingabeaufforderung [ 31 ] (was auch von neueren Versionen von DR-DOS COMMAND.COM akzeptiert wird). Interne Befehle können einzeln über `--cd` deaktiviert oder wieder aktiviert werden SETDOS /I. [ 31 ] Darüber hinaus akzeptieren einige neuere Versionen von DR-DOS COMMAND.COM auch den ?%Befehl `--cd`, um eine Liste der verfügbaren integrierten Pseudo-Umgebungsvariablen anzuzeigen . Neben ihrer Funktion als Kurzhilfe können diese in Batch-Jobs verwendet werden, um die Funktionen des zugrunde liegenden Kommandozeilenprozessors abzufragen. [ 24 ]
Befehlsbeschreibungssyntax
Die integrierte Benutzerhilfe und die Manpages verwenden üblicherweise eine kurze Syntax, um die gültige Befehlsform zu beschreiben: [ 42 ] [ 43 ] [ 44 ] [ nb 2 ]
- Winkelklammern für erforderliche Parameter:
ping <hostname> - Eckige Klammern für optionale Parameter:
mkdir [-p] <dirname> - Auslassungspunkte für wiederholte Elemente:
cp <source1> [source2…] <dest> - vertikale Balken zur Auswahl der Artikel:
netstat {-t|-u}
Beachten Sie, dass diese Zeichen in der Shell eine andere Bedeutung haben als bei direkter Verwendung. Spitze Klammern können weggelassen werden, wenn eine Verwechslung des Parameternamens mit einer Zeichenkette unwahrscheinlich ist.
Der Weltraumcharakter
In vielen Bereichen der Informatik, insbesondere in der Kommandozeile, kann das Leerzeichen Probleme verursachen, da es zwei unterschiedliche und unvereinbare Funktionen hat: als Teil eines Befehls oder Parameters oder als Trennzeichen für Parameter oder Namen . Mehrdeutigkeiten lassen sich vermeiden, indem man eingebettete Leerzeichen in Datei- und Verzeichnisnamen von vornherein unterbindet (z. B. durch Ersetzen durch Unterstriche_ ) oder indem man einen Namen mit eingebetteten Leerzeichen in Anführungszeichen setzt oder vor dem Leerzeichen ein Escape-Zeichen , üblicherweise einen Backslash (\ \), verwendet. Zum Beispiel
Long path/Long program name Parameter one Parameter two…
ist mehrdeutig (ist der Programmname Teil des Programmnamens oder zwei Parameter?); jedoch
Long_path/Long_program_name Parameter_one Parameter_two…,LongPath/LongProgramName ParameterOne ParameterTwo…,"Long path/Long program name" "Parameter one" "Parameter two"…
Und
Long\ path/Long\ program\ name Parameter\ one Parameter\ two…
sind nicht mehrdeutig. Unix -basierte Betriebssysteme minimieren die Verwendung von Leerzeichen in Verzeichnisnamen, um die Notwendigkeit von Anführungszeichen zu verringern. Unter Microsoft Windows sind Anführungszeichen hingegen häufig erforderlich, da Leerzeichen in Verzeichnisnamen üblich sind.
Kommandozeileninterpreter
Obwohl die meisten Benutzer die Shell als interaktiven Befehlsinterpreter betrachten, handelt es sich eigentlich um eine Programmiersprache, in der jede Anweisung einen Befehl ausführt. Da sie sowohl die interaktiven als auch die programmiertechnischen Aspekte der Befehlsausführung erfüllen muss, ist sie eine eigentümliche Sprache, die ebenso sehr von ihrer Geschichte wie von ihrer Konzeption geprägt ist.
Der Begriff Kommandozeileninterpreter bezeichnet Computerprogramme, die eine Folge von Textzeilen interpretieren , welche vom Benutzer eingegeben, aus einer Datei gelesen oder als anderer Datenstrom bereitgestellt werden . Der Interpretationskontext ist üblicherweise der eines bestimmten Betriebssystems oder einer Programmiersprache .
Kommandozeileninterpreter ermöglichen es Benutzern, verschiedene Befehle sehr effizient (und oft prägnant) auszuführen. Dies setzt voraus, dass der Benutzer die Namen der Befehle und ihrer Parameter sowie die Syntax der interpretierten Sprache kennt.
Der Unix- #!Mechanismus und der OS/2-Befehl EXTPROC ermöglichen die Übergabe von Batchdateien an externe Prozessoren. Mithilfe dieser Mechanismen lassen sich spezifische Befehlsprozessoren für spezielle Anwendungsfälle schreiben und externe Datendateien verarbeiten, die in Batchdateien enthalten sind.
Viele grafische Benutzeroberflächen, wie beispielsweise der OS/2 Presentation Manager und frühe Versionen von Microsoft Windows, verwenden Befehlszeilen, um Hilfsprogramme zum Öffnen von Dokumenten und Programmen aufzurufen. Die Befehle werden in der grafischen Oberfläche oder in Dateien wie der Registrierung oder der OS/2OS2USER.INI -Datei gespeichert.
Frühgeschichte


Die ersten Computer unterstützten keine interaktiven Ein-/Ausgabegeräte und kommunizierten stattdessen über Schalter und Leuchten mit dem Bediener . Dies war ausreichend für Stapelverarbeitungssysteme , die jeweils ein Programm ausführten, wobei der Programmierer oft auch als Bediener fungierte. Ein weiterer Vorteil war der geringe Verwaltungsaufwand, da Leuchten und Schalter mit einem einzigen Maschinenbefehl getestet und eingestellt werden konnten. Später wurde eine zentrale Systemkonsole hinzugefügt, um die Kommunikation zwischen Bediener und System zu ermöglichen.
Ab den 1960er Jahren erfolgte die Interaktion der Benutzer mit Computern hauptsächlich über Kommandozeilenschnittstellen, zunächst auf Maschinen wie dem Teletype Model 33 ASR, später dann auf frühen CRT -basierten Computerterminals wie dem VT52 .
Alle diese Geräte waren rein textbasiert und konnten keine Grafiken oder Bilder darstellen. [ Anm. 3 ] Für Geschäftsanwendungen wurden textbasierte Menüs verwendet, für die allgemeine Interaktion diente jedoch die Kommandozeile als Schnittstelle.
Um 1964 führte Louis Pouzin das Konzept und den Namen Shell in Multics ein und baute dabei auf früheren, einfacheren Funktionen des Compatible Time-Sharing System (CTSS) auf. [ 46 ]
Ab den frühen 1970er Jahren übernahm das Unix -Betriebssystem das Konzept einer leistungsstarken Kommandozeilenumgebung und führte die Möglichkeit ein, die Ausgabe eines Befehls als Eingabe für einen anderen zu verwenden . Unix bot außerdem die Möglichkeit, Befehlsfolgen als Shell-Skripte zu speichern und erneut auszuführen, die wie benutzerdefinierte Befehle funktionierten.
Die Kommandozeile diente auch als Hauptschnittstelle für frühe Heimcomputer wie den Commodore PET , Apple II und BBC Micro – fast immer in Form eines BASIC- Interpreters. Mit dem Aufkommen leistungsstärkerer, geschäftsorientierter Mikrocomputer wie CP/M und später DOS- Computern wie dem IBM PC übernahm die Kommandozeile nach und nach Syntax und Funktionen der Unix-Shells, beispielsweise Globbing und die Weiterleitung von Ausgaben.
Die Kommandozeile wurde erstmals durch den PARC -GUI -Ansatz des Apple Lisa (1983) und des Apple Macintosh (1984) ernsthaft infrage gestellt . Einige Computerbenutzer nutzten GUIs wie GEOS und Windows 3.1 , doch die Mehrheit der IBM-PC- Nutzer ersetzte ihre COMMAND.COM- Shell erst mit der Veröffentlichung von Windows 95 im Jahr 1995 durch eine GUI. [ 47 ] [ 48 ]
Moderne Verwendung als Betriebssystem-Shell
Während die meisten Computerbenutzer ohne Expertenkenntnisse heutzutage fast ausschließlich eine grafische Benutzeroberfläche (GUI) verwenden, haben fortgeschrittene Benutzer Zugriff auf leistungsstarke Kommandozeilenumgebungen:
- Zu den Unix-ähnlichen Systemen gehören die Bourne-Shell und kompatible Shells wie Bash sowie andere Unix-Shells .
- FreeBSD verwendet tcsh als standardmäßige interaktive Shell für den Superuser und ash als standardmäßige Skript-Shell.
- Viele Linux-Distributionen haben Bash.
- Apple macOS und einige Linux-Distributionen verwenden zsh . Zuvor verwendete macOS tcsh und Bash.
- Eingebettete Linux- Systeme (und andere eingebettete Unix-ähnliche Systeme) verwenden häufig ash als Teil von Busybox .
- Android verwendet die mksh- Shell, [ 49 ] [ 50 ] die eine von ash abgeleitete Shell [ 51 ] ersetzt , die in älteren Android-Versionen verwendet wurde und durch Befehle aus der separaten Toolbox- Binärdatei [ 52 ] ergänzt wurde .
- OpenVMS verwendet die DIGITAL Command Language (DCL).
- Unix-Befehlsshells wurden auf OpenVMS portiert.
- DOS und Windows verfügen über mehrere Befehlszeilenumgebungen.
- COMMAND.COM ist der Kommandozeileninterpreter von MS-DOS , IBM PC DOS und Windows 9x sowie von Klonen wie DR-DOS , SISNE plus , PTS-DOS , ROM-DOS und FreeDOS .
- Windows NT verfügt über cmd.exe , spätere Versionen über PowerShell.
- Das Windows Resource Kit und die Windows Services für UNIX enthalten die Korn- und die Bourne-Shell sowie einen Perl-Interpreter (Services für UNIX enthält in späteren Versionen ActiveState ActivePerl und in den Versionen 1 und 2 Interix sowie eine von Microsoft kompilierte Shell).
- Windows-Nutzer können die CScript- Schnittstelle verwenden, um Programme über die Kommandozeile zu steuern. Implementierungen der Unix-Shell sind auch als Teil des POSIX-Subsystems [ 53 ] , Cygwin , MKS Toolkit , UWIN , Hamilton C Shell und anderer Softwarepakete verfügbar. Zu den für diese Interoperabilitätswerkzeuge verfügbaren Shells gehören csh , ksh , sh , Bash, rsh , tclsh und seltener zsh und psh.
- DCL wurde mindestens dreimal auf Windows-Systeme portiert, unter anderem als PC-DCL und Acceler8 DCL Lite.
- Yet another cmd.exe is a racked shell for Windows CE 3.0.
- Ein MS-DOS-ähnlicher Interpreter namens PocketDOS wurde für Windows-CE-Rechner portiert. Die neueste Version ist nahezu identisch mit MS-DOS 6.22 und kann außerdem Windows 1, 2 und 3.0, QBasic und andere Entwicklungswerkzeuge sowie 4NT und 4DOS ausführen. Die aktuelle Version enthält mehrere Shells, darunter MS-DOS 6.22, PC DOS 7, DR DOS 3.xx und weitere.
- IBM OS/2 (und Derivate wie eComStation und ArcaOS ) verfügt über den cmd.exe- Prozessor. Dieser kopiert die COMMAND.COM -Befehle mit Erweiterungen zu REXX .
- Implementierungen von PHP verfügen über eine Shell zur interaktiven Nutzung namens php-cli.
- Standard Tcl/Tk verfügt über zwei interaktive Shells, Tclsh und Wish, wobei letztere die GUI-Version ist.
- Python , Ruby , Lua , XLNT und andere Interpreter verfügen ebenfalls über Befehlsshells zur interaktiven Nutzung.
- HarmonyOS , OpenHarmony und Oniro nutzen die Befehle des Drittanbieter -Toolbox -Kompatibilitätssystems, das an den Linux-Kernel des KAL-Subsystems und die POSIX-Bibliothek ( musl-libc ) mit der Linux-ABI des HongMeng-Kernels angebunden ist , zusammen mit der Standard-Shell und ihren eigenen nativen exec-Befehlen. [ 54 ] [ 55 ]
- Router mit Cisco IOS , [ 56 ] Junos [ 57 ] und vielen anderen werden üblicherweise über die Kommandozeile konfiguriert.
- Das Betriebssystem Plan 9 verwendet die rc- Shell, die in ihrer Architektur der Bourne-Shell ähnelt.
Skripterstellung
Die meisten Kommandozeileninterpreter unterstützen Skripte in unterschiedlichem Umfang. Schließlich sind sie Interpreter einer interpretierten Programmiersprache , wobei die Sprache in vielen Fällen spezifisch für den jeweiligen Kommandozeileninterpreter ist. Sie interpretieren Skripte, die auch als Shell-Skripte oder Batch-Dateien bezeichnet werden und in der von ihnen interpretierten Sprache geschrieben sind . Einige Kommandozeileninterpreter integrieren zusätzlich zu ihrer eigenen auch die Interpreter-Engines anderer Sprachen, wie beispielsweise REXX , wodurch die Ausführung von Skripten in diesen Sprachen direkt im Kommandozeileninterpreter selbst ermöglicht wird.
Umgekehrt können Skriptsprachen , insbesondere solche mit einer `eval`- Funktion (wie REXX, Perl , Python , Ruby oder Jython ), zur Implementierung von Kommandozeileninterpretern und Filtern verwendet werden. Bei einigen Betriebssystemen , allen voran DOS , bietet ein solcher Kommandozeileninterpreter eine flexiblere Schnittstelle als die mitgelieferte. In anderen Fällen kann er eine hochgradig individualisierte Benutzeroberfläche bereitstellen, die die Benutzerschnittstelle und die Ein-/Ausgabefunktionen der jeweiligen Sprache nutzt.
Andere Kommandozeilenschnittstellen
Die Kommandozeile dient als Schnittstelle zwischen Programmen und dem Benutzer. Sie stellt somit eine Alternative zum Dialogfeld dar. Editoren und Datenbanken bieten eine Kommandozeile, über die alternative Befehlsprozessoren ausgeführt werden können. Alternativ können in der Kommandozeile Optionen angegeben werden, die ein Dialogfeld öffnen. Die neueste Version von „Take Command“ verfügt über diese Funktion. DBase verwendete ein Dialogfeld zum Erstellen von Kommandozeilen, die vor der Verwendung weiter bearbeitet werden konnten.
Programme wie BASIC, diskpart , Edlin und QBASIC bieten allesamt Kommandozeilenschnittstellen, von denen einige die System-Shell nutzen. Basic ist der Standardschnittstelle von 8-Bit-Intel-Computern nachempfunden. Taschenrechner können über die Kommandozeile oder per Dialogschnittstelle ausgeführt werden.
Emacs bietet eine Kommandozeilenschnittstelle in Form seines Minibuffers. Befehle und Argumente können mithilfe der standardmäßigen Textbearbeitungsfunktionen von Emacs eingegeben werden, und die Ausgabe wird in einem anderen Puffer angezeigt.
Es gibt einige textbasierte Spiele wie Adventure oder King's Quest 1-3 , bei denen der Benutzer Befehle am unteren Bildschirmrand eingibt. Man steuert die Spielfigur durch Befehle wie „Ring holen“ oder „Schau“. Das Programm gibt daraufhin einen Text aus, der beschreibt, wie die Spielfigur die Situation wahrnimmt oder die entsprechende Aktion auslöst. Das Textadventure Per Anhalter durch die Galaxis , eine interaktive Fiktion basierend auf Douglas Adams' gleichnamigem Buch, ist ein Kommandozeilenspiel im Stil eines Fernschreibers.
Die wichtigste dieser Schnittstellen ist die Standard-Streams -Schnittstelle, die es ermöglicht, die Ausgabe eines Befehls als Eingabe eines anderen zu verwenden. Textdateien können beide Zwecke erfüllen. Dies ermöglicht die Schnittstellen für Pipes, Filter und Umleitungen. Unter Unix sind Geräte ebenfalls Dateien , daher ist der übliche Dateityp für die Shell, die für stdin, stdout und stderr verwendet wird, eine TTY -Gerätedatei.
Eine weitere Befehlszeilenschnittstelle ermöglicht es einem Shell-Programm, Hilfsprogramme zu starten, beispielsweise zum Öffnen von Dokumenten oder zum Starten eines Programms. Der Befehl wird intern von der Shell verarbeitet und anschließend an ein anderes Programm weitergeleitet, das das Dokument öffnet. Die grafische Benutzeroberfläche von Windows und OS/2 basiert maßgeblich auf Befehlszeilen, die an andere Programme – ob Konsolen- oder Grafikprogramme – übergeben werden. Diese verarbeiten die Befehlszeile üblicherweise, ohne eine Benutzerkonsole anzuzeigen.
Programme wie der OS/2 E-Editor und einige andere IBM- Editoren können Befehlszeilen verarbeiten, die normalerweise für die Shell bestimmt sind, wobei die Ausgabe direkt im Dokumentfenster angezeigt wird.
Das URL-Eingabefeld eines Webbrowsers kann als Kommandozeile verwendet werden. Damit lassen sich Webanwendungen starten , Browsereinstellungen ändern und Suchanfragen durchführen. Google , das oft als „Kommandozeile des Internets“ bezeichnet wird, führt eine domänenspezifische Suche durch, sobald Suchparameter in einem bekannten Format erkannt werden. [ 58 ] Diese Funktionalität steht unabhängig davon zur Verfügung, ob die Suche über ein Browserfeld oder auf der Google-Website gestartet wird.
Es gibt JavaScript- Bibliotheken, die Entwicklern helfen, Kommandozeilenanwendungen für den Browser zu schreiben – entweder als eigenständige Webanwendungen oder als Teil größerer Anwendungen. [ 59 ] Ein Beispiel für eine solche Website ist die Kommandozeilenschnittstelle von DuckDuckGo . [ 60 ] Außerdem existieren webbasierte SSH- Anwendungen, die den Zugriff auf die Kommandozeilenschnittstelle eines Servers über einen Browser ermöglichen.
Viele PC- Videospiele verfügen über eine Kommandozeilenschnittstelle, die oft auch als Konsole bezeichnet wird. Sie wird typischerweise von den Spieleentwicklern während der Entwicklung und von Mod-Entwicklern zu Debugging-Zwecken sowie zum Cheaten oder Überspringen von Spielabschnitten verwendet.
Siehe auch
- Vergleich von Befehlsshells
- Liste der Kommandozeileninterpreter
- Konsolenanwendung
- Dolmetscheranweisung
- Read-Eval-Print-Schleife
- Shell-Skript
- Befehl ausführen
- Grafische Benutzeroberfläche § Vergleich mit anderen Benutzeroberflächen
- Am Anfang... war die Kommandozeile
Anmerkungen
- Ein Beispiel hierfür ist das umfassende interne Hilfesystem des DR-DOS 7.03 DEBUG- Befehls, das über
??die Debug-Eingabeaufforderung (anstatt nur der Standardübersicht?) aufgerufen werden kann. Spezifische Hilfeseiten lassen sich über die Seitennummer auswählen?n.nZusätzlich kann die Hilfe für bestimmte Befehle angezeigt werden, indem der Befehlsname nach der Seitennummer angegeben wird. Beispielsweiseruft?`fe``def`). Einige dieser Funktionen wurden bereits von DR-DOS 3.41 SID86 und GEMSID unterstützt .?DD - Ein wesentlicher Unterschied besteht in der Beschreibung der Befehlssyntax von DOS -ähnlichen Betriebssystemen: Die Dokumentation von Windows Server 2003 R2 verwendet Kursivschrift für „vom Benutzer anzugebende Informationen“, während die Dokumentation von Windows Server 2008 spitze Klammern verwendet. Kursivschrift kann von der internen Hilfe nicht angezeigt werden , spitze Klammern hingegen schon.
- ^ Mit Ausnahme von ASCII-Art .
Referenzen
- ^ „Command Line Shell For SQLite“ . Archiviert vom Original am 06.10.2022 . Abgerufen am 09.07.2025 .
- ^ "CAS - Konfigurieren der Befehlszeilen-Shell" .
- ^ „Die Entwicklung der Kommandozeilenschnittstelle (CLI): Ein historischer Einblick | Contentstack“ . www.contentstack.com . Archiviert vom Original am 12.02.2025 . Abgerufen am 28.01.2025 .
- ^ „4. Juli: MITs Whirlwind ermöglicht Tastatureingaben am Computer | Dieser Tag in der Geschichte | Computer History Museum“ . www.computerhistory.org . Abgerufen am 21.05.2026 .
- ^ Edwards, Benj (17.05.2021). „Was sind Fernschreiber und warum wurden sie zusammen mit Computern verwendet?“ How-To Geek . Abgerufen am 21.05.2026 .
- ^ "Unix Shells" . Archiviert vom Original am 08.11.2007.
Die Idee, eine austauschbare "Befehlsshell" anstelle eines eng mit dem Betriebssystemkernel integrierten "Monitors" zu haben, wird tendenziell Multics zugeschrieben.
- ^ a b „Der Ursprung der Muschel“ . www.multicians.org . Archiviert vom Original am 21.12.2017 . Abgerufen am 12.04.2017 .
- ^ Metz, Cade (03.01.2013). „Sag Bonjour zu dem lange verschollenen französischen Onkel des Internets“ . Wired . Archiviert vom Original am 11.02.2017 . Abgerufen am 31.07.2017 .
- ^ Mazières, David (Herbst 2004). „MULTICS – Die ersten sieben Jahre“ . Advanced Operating Systems . Stanford Computer Science Department. Archiviert vom Original am 23.11.2014 . Abgerufen am 1.8.2017 .
- ^ a b Jones, M. (06.12.2011). „Evolution of shells in Linux“ . developerWorks . IBM . Archiviert vom Original am 08.07.2017 . Abgerufen am 01.08.2017 .
- ^ „Geschichte der grafischen Benutzeroberfläche“ . KASS . Abgerufen am 24.03.2024 .
- ^ Singh, Amit (19.06.2006). Mac OS X Internals: A Systems Approach . Addison-Wesley Professional. ISBN 978-0-13-270226-3Die
- ^ „1. Befehlszeile und Umgebung“ . Python-Dokumentation . Archiviert vom Original am 05.08.2024 . Abgerufen am 05.08.2024 .
- ^ „Was ist eine CLI? – Erklärung der Befehlszeilenschnittstelle – AWS“ . Amazon Web Services, Inc. Archiviert vom Original am 14.01.2025 . Abgerufen am 28.01.2025 .
- ^ „GNU BASH-Referenz“ . Archiviert vom Original am 03.12.2010 . Abgerufen am 20.12.2015 .
- ^ „Übersicht über die Microsoft Windows-Befehlsshell“ . 11.09.2009. Archiviert vom Original am 05.09.2015 . Abgerufen am 12.07.2015 .
- ^ „Liste der in der Shell integrierten Befehle“ . Linux-Handbuch . 05.07.2023 . Abgerufen am 05.08.2024 .
- ^ B, Jason. „So setzen Sie Ihre $PATH-Variable in Linux | Opensource.com“ . opensource.com . Abgerufen am 05.08.2024 .
- ^ JasonGerend (03.02.2023). „Pfad“ . learn.microsoft.com . Archiviert vom Original am 27.06.2024 . Abgerufen am 05.08.2024 .
- ^ „Befehlszeilenschnittstelle (CLI)“ . tutorials.cloudfoundry.org . Archiviert vom Original am 11.02.2025 . Abgerufen am 28.01.2025 .
- ^ Die Bash-Shell lernen . UNIX Shell-Programmierung (Zweite Auflage). O'Reilly Media . Januar 1998. ISBN 978-1-56592-347-8Archiviert vom Original am 05.08.2024 . Abgerufen am 05.08.2024 .
- ^ SID-Benutzerhandbuch (PDF) . Digital Research . 1978. S. 595-2549. Archiviert (PDF) vom Original am 20.10.2019 . Abgerufen am 06.02.2020 .(4+69 Seiten)
- ^ SID-86 Benutzerhandbuch für CP/M-86 (2. Aufl.). Digital Research . August 1982 [März 1982]. SID86UG.WS4. Archiviert vom Original am 20.10.2019 . Abgerufen am 06.02.2020 .[1] (Anmerkung: Eine von Emmanuel Roche neu abgetippte Fassung des Handbuchs mit den Befehlen Q, SR und Z.)
- ^ a b c d e f g h i j k Paul, Matthias R. (30.07.1997). „NWDOS-TIPs – Tipps & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds“ . MPDOSTIP . Version 157 (in Deutsch) (3. Aufl.). Archiviert vom Original am 10.09.2017 . Abgerufen am 06.09.2014 .(Anmerkung: NWDOSTIP.TXT ist ein umfassendes Werk über Novell DOS 7 und OpenDOS 7.01 , einschließlich der Beschreibung vieler undokumentierter Funktionen und Interna. Es ist Teil der noch größeren MPDOSTIP.ZIP-Sammlung des Autors, die bis 2001 gepflegt und damals auf vielen Websites verbreitet wurde. Der angegebene Link verweist auf eine ältere, in HTML konvertierte Version der NWDOSTIP.TXT-Datei.)
- ^ Parker, Steve (2011). „Kapitel 11: Auswahl und Verwendung von Shells“. Shell-Skripting: Expertenrezepte für Linux, Bash und mehr . Von Programmierern für Programmierer. Indianapolis, USA: John Wiley & Sons . S. 262. ISBN 978-111816632-1
Die Shell verfügt über vier verschiedene Eingabeaufforderungen, genannt PS1, P52, P53 und PS4. PS steht für Prompt String (Eingabeaufforderungszeichenfolge)
. - ^ RISC OS 3 Benutzerhandbuch (PDF) . Acorn Computers Limited . 1992-03-01. S. 125. Archiviert (PDF) vom Original am 2017-01-09 . Abgerufen am 2017-04-12 .
- ^ nguyen-dows (29.05.2024). „Windows Terminal-Befehlszeilenargumente“ . learn.microsoft.com . Archiviert vom Original am 05.08.2024 . Abgerufen am 05.08.2024 .
- ^ „Befehlszeilenargumente in C“ . www.w3schools.in . Archiviert vom Original am 05.08.2024 . Abgerufen am 05.08.2024 .
- ^ „Befehlszeilenargumente in Java“ . GeeksforGeeks . 16.08.2016. Archiviert vom Original am 05.08.2024 . Abgerufen am 05.08.2024 .
- ^ „sys – Systemspezifische Parameter und Funktionen“ . Python-Dokumentation . Abgerufen am 27.03.2026 .
- ^ a b c d Brothers, Hardin; Rawson, Tom ; Conn, Rex C. ; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 Online-Hilfe .
- ^ Paul, Matthias R. (09.01.1998). DELTREE.BAT R1.01 Erweiterte Datei- und Verzeichnislöschung . Caldera, Inc. Archiviert vom Original am 08.04.2019 . Abgerufen am 08.04.2019 .
- ^ DR-DOS 7.03 WHATSNEW.TXT – Änderungen von DR-DOS 7.02 zu DR-DOS 7.03 . Caldera, Inc. 24.12.1998. Archiviert vom Original am 08.04.2019 . Abgerufen am 08.04.2019 .
- ^ „Argument Syntax (The GNU C Library)“ . gnu.org . Archiviert vom Original am 18.06.2021 . Abgerufen am 09.07.2021 .
- ^ Kasibatla, Saketh Ram; Medleri Hiremath, Kiran; Rothkopf, Raven; Lerner, Sorin; Xia, Haijun; Hempel, Brian (1. Oktober 2025). The Command Line GUIde: Graphical Interfaces from Man Pages via AI . University of California San Diego . Abgerufen am 15. Juni 2026 .
- ^ Kasibatla, Saketh Ram; Medleri Hiremath, Kiran; Rothkopf, Raven; Lerner, Sorin; Xia, Haijun; Hempel, Brian (1. Oktober 2025). The Command Line GUIde: Graphical Interfaces from Man Pages via AI . University of California San Diego . Abgerufen am 15. Juni 2026 .
- ^ a b c Paul, Matthias R. (13.05.2002). "[fd-dev] mkeyb" . freedos-dev . Abgerufen am 10.09.2018 .
[…] CPI /H […] CPI [@] [@] [/?|/Help[:topic]) [/!|/About] […] [?|&] […] /?, /Help Zeigt diese Hilfeseite oder spezifische Hilfe zu einem Thema an (+) […] /!, /About Zeigt die Informationsseite „Über“ an […] /Cpifile (+) .CPI/.CP-Dateiname <EGA.CPI>; Erweiterung: <.CPI>; CPI.EXE=StdIn […] /Report Berichtdateiname <'
'=StdOut>; Erweiterung: <.RPT> […] /Style (+) Export <0>-6=BIN-raw/ROM/RAM/PSF0/1/SH/CHED; 7-12/13-18/19-24=ASM-hex/dec/bin/ip/il/p/l/mp/ml […] CPI /H:C […] Übersicht zur Verwendung von Codepage-Dateiparametern: […] CPI /H:S […] Übersicht zu den /Style-Parametern: […] ?, & Online-Bearbeitungsmodus (fordert zusätzliche Parametereingaben) […]{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ a b Paul, Matthias R. (09.01.2002). „SID86“ . Newsgroup : comp.os.cpm . Abgerufen am 08.04.2018 .
[…] Da der
DR-DOS 7.03
DEBUG noch auf der alten
SID86.EXE
basiert
, empfehle ich, DEBUG 1.51 auszuführen und die erweiterte Hilfe über die Debug-Eingabeaufforderung mit „?“ aufzurufen. Dadurch erhalten Sie acht Seiten mit Syntax- und Funktionshilfe. Einige dieser Funktionen wurden auch von älteren Versionen unterstützt. […]
{{cite newsgroup}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ a b Paul, Matthias R.; Frinke, Axel C. (2006-01-16). FreeKEYB - Erweiterter internationaler DOS-Tastatur- und Konsolentreiber (Benutzerhandbuch) (v7 vorläufige Ausgabe).
- ^ CCI Multiuser DOS 7.22 GOLD Online-Dokumentation . Concurrent Controls, Inc. (CCI). 10.02.1997. HELP.HLP.(Anmerkung: Der symbolische Befehlsdebugger SID86 bietet eine Kurzhilfe
?und eine ausführliche Hilfe zu [hier fehlende Information einfügen??].) - ^ Paul, Matthias R. (24.05.1997) [1991]. „DRDOSTIP.TXT – Tipps und Tricks für DR DOS 3.41 - 5.0“ . MPDOSTIP (in Deutsch) (47. Ausgabe). Archiviert vom Original am 07.11.2016 . Abgerufen am 07.11.2016 .
- ^ „The Open Group Base Specifications Issue 7, Chapter 12.1 Utility Argument Syntax“ . The Open Group . 2008. Archiviert vom Original am 30.04.2013 . Abgerufen am 07.04.2013 . – Linux Conventions and Miscellany Manual (Anmerkung: Konventionen zur Beschreibung von Befehlen auf Unix-ähnlichen Betriebssystemen.)
- ^ „Übersicht der Befehlsshell“ . Windows Server 2003-Produkthilfe . Microsoft . 21.01.2005. Archiviert vom Original am 12.07.2012 . Abgerufen am 07.04.2013 .
- ^ „Befehlszeilen-Syntaxschlüssel“ . Windows Server 2008 R2 TechNet-Bibliothek . Microsoft . 25.01.2010. Archiviert vom Original am 04.05.2013 . Abgerufen am 07.04.2013 .
- ^ Kernighan, Brian W.; Pike , Rob (1984). Die UNIX-Programmierumgebung . Englewood Cliffs: Prentice-Hall . ISBN 0-13-937699-2Die
- ^ Pouzin, Louis. „Der Ursprung der Muschel“ . Multicians.org . Archiviert vom Original am 21.12.2017 . Abgerufen am 22.09.2013 .
- ^ Wilcox, Joe (24.08.2010). „Erinnerungen an den Start von Windows 95 15 Jahre später“ . BetaNews . Archiviert vom Original am 18.02.2015 . Abgerufen am 18.02.2015 .
- ^ „Eine Geschichte von Windows“ . windows.microsoft.com . Archiviert vom Original am 1. März 2015.
- ^ "master - platform/external/mksh - Git at Google" . android.googlesource.com . Archiviert vom Original am 21.01.2016 . Abgerufen am 18.03.2018 .
- ^ „Android adb shell – ash oder ksh?“ . stackoverflow.com . Archiviert vom Original am 02.07.2017 . Abgerufen am 14.03.2018 .
- ^ "Android sh source" . GitHub .
{{cite web}}CS1-Wartung: Veralteter Archivierungsdienst ( Link ) - ^ „Android Toolbox-Quellcode“ . GitHub .
- ^ „Windows POSIX Shell-Kompatibilität“ . 22.02.2013. Archiviert vom Original am 03.07.2017 . Abgerufen am 26.08.2017 .
- ^ openharmony/third_party_toybox , OpenHarmony, 14.10.2021, archiviert vom Original am 07.07.2024 , abgerufen am 07.07.2024
- ^ „调测 – Shell介绍 – 《华为鸿蒙操作系统(OpenHarmony) v1.0 开发者文档》 – 书栈网 · BookStack“ . www.bookstack.cn . Archiviert vom Original am 07.07.2024 . Abgerufen am 07.07.2024 .
- ^ „Konfigurationsgrundlagen – Konfigurationsleitfaden, Cisco IOS Release 15M&T“ . Cisco . 30.10.2013. Verwendung der Befehlszeilenschnittstelle. Archiviert vom Original am 18.11.2016 . Abgerufen am 28.11.2016 .
Die Cisco IOS-Befehlszeilenschnittstelle (CLI) ist die primäre Benutzerschnittstelle…
- ^ „Übersicht der Befehlszeilenschnittstelle“ . www.juniper.net . Archiviert vom Original am 08.09.2003 . Abgerufen am 14.03.2018 .
- ^ „Google Strange Goodness“ . Archiviert vom Original am 04.03.2014 . Abgerufen am 27.02.2014 .
- ^ „jQuery Terminal Emulator“ . Archiviert vom Original am 20.04.2021 . Abgerufen am 20.04.2021 .
- ^ „DuckDuckGo TTY“ . Archiviert vom Original am 7. Mai 2021. Abgerufen am 20. April 2021 .
Externe Links
- Die Wurzeln von DOS David Hunter, Softalk für den IBM Personal Computer März 1983. Archiviert bei Patersontech.com seit 2000 .
- Windows-Befehle : Microsoft TechNet-Datenbank „Befehlszeilenreferenz“