Befehlszeilenschnittstelle
A Befehlszeilen-Interpreter oder Befehlszeilenprozessor verwendet a Befehlszeilenschnittstelle (Cli) bekommen Befehle von einem Benutzer in Form von Textzeilen. Dies bietet ein Mittel, um Parameter für die Umgebung festzulegen, ausführbare Bereiche aufzurufen und ihnen Informationen darüber zu geben, welche Aktionen sie ausführen sollen. In einigen Fällen ist der Aufruf auf der Grundlage der vom Benutzer oder vorherigen ausführbaren Bedingungen bedingt. Ein solcher Zugang wurde zuerst von bereitgestellt von Computerterminals Ab Mitte der 1960er Jahre. Dies lieferte eine interaktive Umgebung, die nicht verfügbar ist mit geschlagene Karten oder andere Eingabemethoden.
Heute verlassen sich viele Benutzer auf Grafische Benutzeroberflächen und Menügesteuerte Interaktionen. Einige Programmier- und Wartungsaufgaben haben jedoch möglicherweise keine grafische Benutzeroberfläche und verwenden eine Befehlszeile.
Zu den Alternativen zur Befehlszeilenschnittstelle gehören Textbasierte Benutzeroberfläche Menüs (zum Beispiel, IBM AIX SMIT), Tastatürkürzelund verschiedene Desktop -Metaphern zentriert auf der Zeiger (normalerweise mit a kontrolliert Maus). Beispiele hierfür sind die Microsoft Windows, Dos Shellund Maussysteme Powerpanel. Befehlszeilenschnittstellen werden häufig in Terminalgeräten implementiert, die auch in der Lage sind, textbasierte Benutzeroberflächen mit Cursor-Adressierung zu senken, um Symbole auf einem Anzeigebildschirm zu platzieren.
Programme mit Befehlszeilenschnittstellen sind im Allgemeinen einfacher zu automatisieren über Scripting.
Viele Softwaresysteme implementieren Befehlszeilenschnittstellen für Steuerung und Betrieb. Dies umfasst Programmierumgebungen und Dienstprogramme.
Vergleich mit grafischen Benutzeroberflächen
Im Vergleich zu einer grafischen Benutzeroberfläche erfordert eine Befehlszeilenschnittstelle weniger Systemressourcen zum Implementieren. Da Optionen zu Befehlen in einigen Zeichen in jeder Befehlszeile angegeben sind, findet ein erfahrener Benutzer häufig die zugreiften Optionen. Die Automatisierung von sich wiederholenden Aufgaben wird durch Linienbearbeitung und Verlaufsmechanismen für die Speicherung häufig verwendeter Sequenzen vereinfacht. Dies kann sich auf a erstrecken Skriptsprache Dies kann Parameter und variable Optionen erfolgen. Ein Befehlszeilenverlauf kann aufbewahrt werden, das die Überprüfung oder Wiederholung von Befehlen ermöglicht.
Für ein Befehlszeilensystem ist möglicherweise Papier- oder Online-Handbücher für die Referenz des Benutzers erforderlich, aber häufig eine "Hilfe" -Option bietet eine präzise Überprüfung der Optionen eines Befehls. Die Befehlszeilenumgebung bietet möglicherweise keine grafischen Verbesserungen wie verschiedene Schriftarten oder erweitert Fenster bearbeiten gefunden in einer GUI. Es kann für einen neuen Benutzer schwierig sein, sich mit allen verfügbaren Befehlen und Optionen im Vergleich zur verfügbaren Befehle und Optionen vertraut zu machen Ikonen und Dropdown-Menüs einer grafischen Benutzeroberfläche ohne Bezug auf Handbücher.
Typen
Betriebssystem-Befehlszeilenschnittstellen
Befehlszeilenschnittstellen des Betriebssystems (OS) sind in der Regel unterschiedliche Programme, die mit dem Betriebssystem geliefert werden. Ein Programm, das eine solche Textschnittstelle implementiert Hülse.
Beispiele für Befehlszeileninterpreten sind einzuziehen Dez Digitale Befehlssprache (DCL) in OpenVMS und RSX-11, die verschiedenen Unix -Muscheln (Sch, ksh, CSH, TCSH, ZSH, Verprügeln, etc.), CP/m's CCP, DOS' Command.com, ebenso wie OS/2 und die Fenster Cmd.exe Programme, die letzteren Gruppen basieren stark auf RSX-11 von DEC und RSTS Clis. Unter den meisten Betriebssystemen ist es möglich, das Standard -Shell -Programm durch Alternativen zu ersetzen. Beispiele beinhalten 4dos für dos, 4OS2 für os/2 und und 4NT / Befehl übernehmen für Windows.
Obwohl der Begriff "Shell" häufig verwendet wird, um einen Befehlszeilen-Interpreter zu beschreiben, kann ein "Shell" streng genommen ein Programm sein, das die Benutzeroberfläche darstellt, einschließlich vollständig grafisch orientierter. Zum Beispiel ist die Standard -Windows -GUI ein Shell -Programm mit dem Namen Explorer.exe, wie in der Shell = explorer.exe -Zeile in der Konfigurationsdatei win.ini definiert. Diese Programme sind Muscheln, aber nicht CLIS.
Anwendungsbefehlszeilenschnittstellen
Anwendungsprogramme (im Gegensatz zu Betriebssystemen) können auch Befehlszeilenschnittstellen enthalten.
Ein Anwendungsprogramm kann keine, keine oder alle dieser drei Haupttypen von Befehlszeilen-Schnittstellenmechanismen unterstützen:
- Parameter: Die meisten Befehlszeilenschnittstellen unterstützen ein Mittel, um zusätzliche Informationen an ein Programm zu übergeben, wenn es gestartet wird.
- Interaktive Befehlszeilensitzungen: Nach dem Start kann ein Programm einem Betreiber ein unabhängiges Mittel zur Eingabe von Befehlen bieten.
- Interprozesskommunikation: Die meisten Betriebssysteme unterstützen Mittel von Interprozesskommunikation (zum Beispiel, Standardströme oder benannte Pfeifen). Befehlszeilen von Client -Prozessen können von einer dieser Methoden in ein CLI -Programm umgeleitet werden.
Einige Anwendungen unterstützen eine CLI, präsentieren dem Benutzer ihre eigene Eingabeaufforderung und akzeptieren Befehlszeilen. Andere Programme unterstützen sowohl eine CLI als auch eine GUI. In einigen Fällen ist eine GUI einfach eine Verpackung rund um eine separate CLI ausführbare Datei. In anderen Fällen kann ein Programm eine CLI als optionale Alternative zu seiner GUI bereitstellen. CLIS und GUIS unterstützen oft unterschiedliche Funktionen. Zum Beispiel alle Funktionen von Matlab, a numerische Analyse Das Computerprogramm ist über die CLI erhältlich, während die MATLAB -GUI nur eine Teilmenge von Funktionen enthüllt.
Im Kolossaler Höhlenabenteuer Ab 1975 verwendet der Benutzer eine CLI, um ein oder zwei Wörter einzugeben, um ein Höhlensystem zu erkunden.
Geschichte
Die Befehlszeilenschnittstelle entwickelte sich aus einer Form der Kommunikation, die von Menschen über durchgeführt wurde Fernschreiber (Tty) Maschinen. Manchmal betrafen diese eine Bestellung oder eine Bestätigung mit Verwendung Telex. Frühe Computersysteme verwendeten häufig Teleprinter als Interaktionsmittel mit einem Bediener.
Der mechanische Teleprinter wurde durch a ersetzt "Glas tty", eine Tastatur und ein Bildschirm, der den Teleprinter nachahmt. "Intelligente" Terminals Ermöglichte zusätzliche Funktionen, wie z. B. Cursorbewegung über den gesamten Bildschirm oder die lokale Bearbeitung von Daten am Terminal zur Übertragung auf den Computer. Als die Mikrocomputer Revolution ersetzte den traditionellen - Minicomputer + Terminals - - Zeitteilung Architektur, Hardware -Terminals wurden durch ersetzt durch Terminalemulatoren- PC -Software, die Terminalsignale interpretierte, die über die PCs gesendet wurden serielle Ports. Diese wurden in der Regel verwendet, um die neuen PCs einer Organisation mit ihren vorhandenen Mini- oder Mainframe-Computern zu verknüpfen oder den PC mit dem PC zu verbinden. Einige dieser PCs wurden ausgeführt Bulletin -Board -System Software.
Das frühe Betriebssystem CLIs wurden als Teil von implementiert Resident Monitor Programme und konnten nicht leicht ersetzt werden. Die erste Implementierung der Schale als austauschbare Komponente war Teil der Mehrheit Zeitteilung Betriebssystem.[1] Im Jahr 1964, MIT -Berechnungszentrum Mitarbeiter Louis Pouzin entwickelte die Runcom Werkzeug zum Ausführen von Befehlskripten und gleichzeitig die Ersetzung von Argumenten.[2] Pouzin prägte den Begriff "Hülse"Um die Technik der Verwendung von Befehlen wie eine Programmiersprache zu beschreiben, und ein Papier über die Implementierung der Idee in der Mehrheit Betriebssystem.[3] Pouzin kehrte 1965 in seine Heimat Frankreich zurück, und die erste Multics -Shell wurde von entwickelt von Glenda Schroeder.[2]
Der Erste Unix Shell, das V6 Shellwurde entwickelt von Ken Thompson 1971 at Bell Labs und wurde nach Schroeders Multics -Shell modelliert.[4][5] Das Bourne Shell wurde 1977 als Ersatz für die V6 -Schale eingeführt. Obwohl es als interaktiver Befehlskolineter verwendet wird, war es auch als Skriptsprache gedacht und enthält die meisten Merkmale, die allgemein als Produktion strukturierter Programme betrachtet werden. Die Bourne Shell führte zur Entwicklung der Kornshell (KSH), Almquist Shell (Asche) und die Bevölkerung BOURNE-AND-SCHRAUB (oder Bash).[5]
Frühe Mikrocomputer selbst basierten auf einer Befehlszeilenschnittstelle wie z. CP/m, DOS oder Apfelsoft Basic. In den 1980er und 1990er Jahren die Einführung der Apple Macintosh und von Microsoft Windows Auf PCs sahen die Befehlszeilenschnittstelle als primäre Benutzeroberfläche, die durch die ersetzt wurde Grafische Benutzeroberfläche. Die Befehlszeile blieb als alternative Benutzeroberfläche verfügbar, häufig verwendet von Systemadministratoren und andere fortschrittliche Benutzer für die Systemverwaltung, Computerprogrammierung und Stapelverarbeitung.
Im November 2006, Microsoft Veröffentlichung Version 1.0 von Windows PowerShell (ehemals Codenamen Monad), die Merkmale traditioneller Unix-Shells mit ihrem proprietären objektorientierten kombinierten Objekt kombinierten .NET Framework. Mingw und Cygwin sind Open Source Pakete für Fenster, die eine Unix-ähnliche CLI bieten. Microsoft bietet Mks Inc.'s ksh Implementierung Mks Korn Shell für Fenster durch ihre Dienstleistungen für Unix hinzufügen Auf.
Seit 2001 die Macintosh Betriebssystem Mac OS hat auf einem basiert Unix-artig Betriebssystem aufgerufen Darwin. Auf diesen Computern können Benutzer durch Ausführen des Terminal-Emulator Programm genannt Terminal, der im Unterordner des Anwendungsordners des Dienstprogramms oder durch Fernanmelde in der Maschine zu finden ist ssh. Z Shell ist die Standardhülle für macOS; Verprügeln, TCSH, und die Kornshell sind auch bereitgestellt. Vor MacOS CatalinaBash war der Standard.
Verwendungszweck
Eine CLI wird immer dann verwendet, wenn ein großes Vokabular von Befehlen oder Abfragen, gekoppelt mit einem breiten (oder willkürlichen) Bereich von Optionen, schneller als Text als Text eingegeben werden kann als mit einer reinen GUI. Dies ist normalerweise der Fall mit Befehlsschalen des Betriebssystems. CLIs werden auch von Systemen mit unzureichenden Ressourcen verwendet, um eine grafische Benutzeroberfläche zu unterstützen. Einige Computersprachsysteme (wie z. Python, Weiter, LISPELN, Rexxund viele Dialekte von BASIC) Geben Sie einen interaktiven Befehlszeilenmodus an, um eine schnelle Bewertung des Codes zu ermöglichen.
CLIs werden häufig von Programmierern und Systemadministratoren, in technischen und wissenschaftlichen Umgebungen sowie von technisch fortgeschrittenen Personalcomputernutzern verwendet. CLIs sind auch bei Menschen mit visuellen Behinderungen beliebt, da die Befehle und Antworten mithilfe der Verwendung angezeigt werden können Erfrischbare Braille -Displays.
Anatomie einer Shell -Cli
Das allgemeine Muster einer Befehlszeilenschnittstelle[6][7] ist:
Prompt Befehl param1 param2 param3… paramn
- Prompt - vom Programm generiert, um dem Benutzer einen Kontext bereitzustellen.
- Befehl - vom Benutzer bereitgestellt. Befehle sind normalerweise eine von drei Klassen:
- Intern Befehle werden vom Befehlszeilen -Interpreter erkannt und verarbeitet.
- Inbegriffen Befehle führen separate ausführbare Funktionen aus.
- Extern Befehle führen ausführbare Dateien aus, die von anderen Parteien enthalten sein können.
- Param1… Paramn - vom Benutzer bereitgestellte Parameter. Das Format und die Bedeutung der Parameter hängen vom Befehl ab. Bei eingeschlossenen oder externen Befehlen werden die Werte der Parameter an das Programm geliefert, wie es vom Betriebssystem gestartet wird. Parameter können entweder sein Argumente oder Optionen.
In diesem Format sind die Grenzen zwischen Befehlszeilenelementen Whitespace -Charaktere und der Abschluss des Endes ist der Neue Zeile Abgrenzer. Dies ist eine weit verbreitete (aber nicht universelle) Konvention.
Eine CLI kann im Allgemeinen als bestehen angesehen werden aus Syntax und Semantik. Das Syntax ist die Grammatik, der alle Befehle folgen müssen. Im Falle des Betriebssysteme, DOS und Unix Jeder definiert seine eigenen Regeln, die alle Befehle befolgen müssen. Im Falle des eingebettete Systeme, jeder Verkäufer, wie z. Nortel, Juniper -Netzwerke oder Cisco -Systemedefiniert ihre eigenen proprietären Regeln. Diese Regeln bestimmen auch, wie ein Benutzer durch das Befehlssystem navigiert. Das Semantik Definieren Sie, welche Art von Operationen möglich sind, auf welche Art von Daten diese Operationen ausgeführt werden können und wie die Grammatik diese Operationen und Daten darstellt - die symbolische Bedeutung in der Syntax.
Zwei verschiedene CLIs können sich entweder auf Syntax oder Semantik einigen .
Eine einfache CLI zeigt eine Eingabeaufforderung an. Akzeptieren Sie eine vom Benutzer eingegebene "Befehlszeile", die vom Benutzer eingegeben wird, der vom vom Kündigten beendet wird Enter-TasteFühren Sie dann den angegebenen Befehl aus und geben Sie eine Textanzeige von Ergebnissen oder Fehlermeldungen an. Advanced CLIS validiert, interpretiert und parameter-expand die Befehlszeile, bevor er den angegebenen Befehl ausführt, und erfassen oder leiten optional seine Ausgabe um.
Im Gegensatz zu einer Schaltfläche oder einem Menüelement in einer GUI ist eine Befehlszeile in der Regel selbstdokumentiert, in der genau das ausgelegt wird, was der Benutzer erledigen möchte. Darüber hinaus enthalten Befehlszeilen normalerweise viele Standardeinstellungen Dies kann geändert werden, um die Ergebnisse anzupassen. Nützliche Befehlszeilen können gespeichert werden, indem a zugewiesen werden Zeichenkette oder alias Um den vollständigen Befehl oder mehrere Befehle darzustellen, können man gruppiert werden, um eine komplexere Sequenz auszuführen - zum Beispiel das Programm zu kompilieren, zu installieren und auszuführen - eine einzelne Entität erstellen, die als Befehlsprozedur oder Skript bezeichnet wird, die selbst behandelt werden kann Ein Kommando. Diese Vorteile bedeuten, dass ein Benutzer nur einmal einen komplexen Befehl oder eine Reihe von Befehlen herausfinden muss, da er gespeichert werden kann, um erneut verwendet zu werden.
Die Befehle einer CLI -Shell befinden sich häufig in einer der folgenden Formen:
- Dosen wie Tofile
- DOSOME WIE SOURCEDILE Destination Datei
- Dosen wie <PedsFile> outputFile
- Dosen wie | Dosen wie | Dosen wie> outputfile
wo etwas tun ist in der Tat a Verb, wie ein Adverb (Sollte der Befehl "ausführlich" oder "leise" ausgeführt werden) und Tofile Ein Objekt oder Objekte (normalerweise eine oder mehrere Dateien), auf die der Befehl wirken soll. Das >
Im dritten Beispiel ist a Umleitungsoperator, mit dem Befehlszeilen-Interpreter mitzuteilen, dass er die Ausgabe des Befehls nicht an seine eigene Standardausgabe (den Bildschirm), sondern an die benannte Datei senden soll. Dies wird die Datei überschreiben. Verwendung >>
wird die Ausgabe umleiten und an die Datei anhängen. Ein weiterer Umleitungsoperator ist der vertikale Balken (|
), was a schafft a Pipeline wobei die Ausgabe eines Befehls zur Eingabe zum nächsten Befehl wird.
CLI und Ressourcenschutz
Man kann den Satz der verfügbaren Befehle ändern, indem sie geändert werden, welche Pfade in der angezeigt werden WEG Umgebungsvariable. Unter Unix müssen auch Befehle als markiert werden als ausführbar Dateien. Die Verzeichnisse in der Pfadvariablen werden in der Reihenfolge durchsucht, die sie erhalten. Durch Neubestehen des Pfades kann man z. \ Os2 \ mdos \ e.exe anstelle von \ os2 \ e.exe, wenn die Standardeinstellung das Gegenteil ist. Das Umbenennen der ausführbaren Funktionen funktioniert auch: Die Leute benennen beispielsweise ihren bevorzugten Editor in der Bearbeitung oft um.
Mit der Befehlszeile können die verfügbaren Befehle einschränken, z. B. Zugriff auf erweiterte interne Befehle. Die Fenster Cmd.exe macht dies. Häufig begrenzt Shareware -Programme den Befehlsbereich, einschließlich des Druckens eines Befehls "Ihr Administrator hat aus der Eingabeaufforderung ausgeführte Stapeldateien deaktiviert.[Klarstellung erforderlich]
Einige Clis, wie z. B. die in Netzwerkrouter, haben eine Hierarchie von Modi, mit einem anderen Satz von Befehlen, die in jedem Modus unterstützt werden. Die Befehle wird durch Assoziation mit Sicherheit, System, Schnittstelle usw. gruppiert. In diesen Systemen kann der Benutzer möglicherweise eine Reihe von Untermodien durchqueren. Zum Beispiel, wenn die CLI zwei Modi aufgerufen hat Schnittstelle und SystemDer Benutzer kann den Befehl verwenden Schnittstelle Um den Schnittstellenmodus einzugeben. Zu diesem Zeitpunkt sind Befehle aus dem Systemmodus möglicherweise erst zugänglich, wenn der Benutzer den Schnittstellenmodus verlässt und in den Systemmodus eingeht.
Eingabeaufforderung
Eine Eingabeaufforderung (oder gerecht prompt) ist eine Folge von (einem oder mehreren) Zeichen, die in einer Befehlszeilenschnittstelle verwendet werden, um die Bereitschaft zur Akzeptanz von Befehlen anzuzeigen. Es fordert den Benutzer buchstäblich auf, Maßnahmen zu ergreifen. Eine Eingabeaufforderung endet normalerweise mit einem der Charaktere $
, %
, #
,[8][9] :
, >
oder -
[10] und enthält oft andere Informationen, wie den Weg des Stroms Arbeitsverzeichnis und die Hostname.
Auf viele Unix und Ableitungssysteme, die Eingabeaufforderung endet normalerweise in $
oder %
Wenn der Benutzer ein normaler Benutzer ist, aber in #
Wenn der Benutzer a ist Superuser ("Wurzel" in der Unix -Terminologie).
Endbenutzer können häufig Eingabeaufforderungen ändern. Abhängig von der Umgebung können sie Farben, Sonderzeichen und andere Elemente (z. Unterscheidung von Sitzungen auf verschiedenen Maschinen oder um das aktuelle Nesting von Befehlen anzuzeigen. Auf einigen Systemen können spezielle Token in der Definition der Eingabeaufforderung verwendet werden, um externe Programme zu bewirken, dass der Befehlszeilen-Interpreter beim Anzeigen der Eingabeaufforderung aufgerufen wird.
In dos 'command.com und in Windows NTs cmd.exe Benutzer können die Eingabeaufforderung durch Ausgabe a ändern PROMPT
Befehl oder durch direktes Ändern des Wertes der entsprechenden %PROMPT%
Umgebungsvariable. Der Standard der modernen Systeme, die C: \>
Stil wird zum Beispiel mit erhalten Prompt $ p $ g
. Der Standard älterer DOS -Systeme, C>
wird von gerecht erhalten PROMPT
, obwohl dies auf einigen Systemen das neuere erzeugt C: \>
Stil, es sei denn, auf Diskettenlaufwerken a: oder b:; auf diesen Systemen Prompt $ n $ g
Kann verwendet werden, um die automatische Standardeinstellung zu überschreiben und explizit zum älteren Stil zu wechseln.
Viele Unix -Systeme zeigen die $ PS1
Variable (Eingabeaufforderung Zeichenfolge 1),[11] Obwohl andere Variablen auch die Eingabeaufforderung beeinflussen können (abhängig von der Hülse Gebraucht). In der Bash -Hülle eine Aufforderung des Formulars:
[Zeit] Benutzer@host: Work_dir $
könnte durch Ausgabe des Befehls festgelegt werden
Export PS1='[\ t] \ u@\ h: \ w $'
Im ZSH das $ Rprompt
Variable steuert eine optionale "Eingabeaufforderung" auf der rechten Seite des Displays. Es ist keine wirkliche Aufforderung, dass sich der Standort des Texteintrags nicht ändert. Es wird verwendet, um Informationen auf derselben Zeile wie die Eingabeaufforderung anzuzeigen, jedoch rechtsneuhandlich.
Im RISC OS Die Eingabeaufforderung ist a *
Symbol und damit (os) CLI -Befehle werden oft als "Sternbefehle" bezeichnet.[12] Man kann auch auf dieselben Befehle aus anderen Befehlszeilen zugreifen (wie die BBC Basic Befehlszeile), indem der Befehl mit a vorgegangen ist *
.
Argumente
A Befehlszeilenargument oder Parameter ist ein Informationen, das ein Programm zur Verfügung gestellt wird, wenn es gestartet wird. Ein Programm kann viele Befehlszeilenargumente haben, die Quellen oder Informationsziele identifizieren oder den Betrieb des Programms ändern.
Wenn ein Befehlsprozessor aktiv ist, wird ein Programm normalerweise aufgerufen, indem sein Name gefolgt von Befehlszeilenargumenten (falls vorhanden) eingegeben wird. Zum Beispiel in Unix und Unix-artig Umgebungen, ein Beispiel für ein Befehlszeilenargument ist:
RM -Datei.s
"Datei.s" ist ein Befehlszeilenargument, das dem Programm mitteilt rm So entfernen Sie die Datei "Datei.s".
Einige Programmiersprachen, wie z. C, C ++ und JavaErlauben Sie einem Programm, die Befehlszeilenargumente zu interpretieren, indem Sie sie als String-Parameter in der abwickeln Hauptfunktion. Andere Sprachen, wie z. Pythonenthüllen Sie das Betriebssystemspezifisch API (Funktionalität) durch sys
Modul, und besonders sys.argv
für "Befehlszeilenargumente".
Im UNIX-ähnliche Betriebssysteme, ein einzelner Bindestrich, der anstelle eines Dateinamens verwendet wird, ist ein besonderer Wert, der angibt Standardeingabe oder Daten an die Standardausgabe.
Befehlszeilenoption
A Befehlszeilenoption oder einfach Möglichkeit (auch bekannt als a Flagge oder Schalter) ändert den Betrieb eines Befehls; Der Effekt wird durch das Programm des Befehls bestimmt. Optionen folgen dem Befehlsnamen in der Befehlszeile, getrennt durch Leerzeichen. Ein Platz vor der ersten Option ist nicht immer erforderlich, wie z. Dir/?
und DIR /?
In DOS, die den gleichen Effekt haben[10] Auflistung der verfügbaren Optionen des DIR -Befehls, während Dir -Help
(in vielen Versionen von UNIX) tut Erfordern die Option, mindestens einen Raum vorauszusehen (und ist fallempfindlich).
Das Format der Optionen variiert stark zwischen Betriebssystemen. In den meisten Fällen ist die Syntax eher nach Konventionen als nach einem Betriebssystemanforderungen; Die gesamte Befehlszeile ist einfach eine Zeichenfolge, die an ein Programm übergeben wird, das sie so verarbeiten kann, wie der Programmierer will, solange der Interpreter erkennen kann, wo der Befehlsname endet und seine Argumente und Optionen beginnen.
Einige repräsentative Beispiele für Befehlszeilenoptionen, die alle auf die Auflistung von Dateien in einem Verzeichnis beziehen, um einige Konventionen zu veranschaulichen:
Betriebssystem | Befehl | Gültige Alternative | Anmerkungen |
---|---|---|---|
OpenVMS | Verzeichnis/Eigentümer | Dir /Besitzer | unterweisen die Verzeichnis Befehl, um auch den Eigentum an den Dateien anzuzeigen. Beachten Sie, dass der Name des Verzeichnisbefehls nicht sensibel ist und auf so wenige Buchstaben abgekürzt werden kann, wie dies erforderlich ist, um einzigartig zu bleiben. |
Fenster | DIR/Q/O: S D* | Dir /q d* /o: s | Zeigen Sie das Eigentum an Dateien an, deren Namen mit "D" beginnen, sortiert nach Größe, kleinste zuerst. Hinweis Räume rund um das Argument d* sind erforderlich. |
Unix-artig Systeme | ls -ls d* | ls -s -l d* | Anzeigen in Langformatdateien und Verzeichnissen, die mit "D" (aber nicht "D") beginnt, sortiert nach Größe (größte zuerst). Hinweis Leerzeichen sind für alle Argumente und Optionen erforderlich, einige können jedoch zusammen ausgeführt werden, z. -ls ist das gleiche wie -l -S. |
Daten General RDOs Cli | Liste/E/S 04-26-80/B | Liste/S/E 4-26-80/B | Listen Sie jedes Attribut für Dateien auf, die vor dem 26. April 1980 erstellt wurden. Beachten Sie das /B am Ende des Datumsarguments a Lokaler Schalter, das ändert die Bedeutung dieses Arguments, während /s und /e sind Globale schalter, d.h. |
Befehle abkürzen
Im Mehrheit, Befehlszeilenoptionen und Subsystem-Schlüsselwörter können abgekürzt werden. Diese Idee scheint aus dem abzuleiten PL/I Programmiersprachemit seinen verkürzten Schlüsselwörtern (z. B. strg für StringRange und DCL für Declare). Zum Beispiel im Multics -Subsystem "Forum", das -long_subject Parameter kann abgekürzt werden -lgsj. Es ist auch üblich, dass mehrere Befehle abgekürzt werden, was typischerweise den Anfangsbuchstaben der Wörter entspricht, die zusammen mit Unterstrichen zur Bildung von Befehlsnamen wie der Verwendung von angespannt sind tat zum delete_iacl_dir.
In einigen anderen Systemen sind Abkürzungen automatisch, z. Su
als Abkürzung für Superuser
) während andere einige spezifische Abkürzungen vorprogrammiert haben (z. Md
zum Mkdir
in command.com) oder benutzerdefiniert über Batch-Skripte und Aliase (z. alias md mkdir
in TCSH).
Optionskonventionen in DOS, Windows, OS/2
Unter DOS, OS/2 und Windows können verschiedene Programme, die aus ihrem Befehl oder cmd.exe (oder intern deren Befehle) aufgerufen werden, unterschiedliche Syntax innerhalb desselben Betriebssystems verwenden. Zum Beispiel:
- Optionen können durch eines der "Switch -Zeichen" angezeigt werden:
/
,-
, oder entweder kann zulässig sein. Siehe unten. - Sie können sein oder nicht sein Fallempfindlichkeit.
- Manchmal werden Optionen und ihre Argumente zusammengeführt, manchmal durch Whitespace und manchmal durch einen Charakter typischerweise getrennt
:
oder=
; daherProg -Fffilename
,Prog -f -Dateiname
,Prog -f: Dateiname
,Prog -f = Dateiname
. - In einigen Programmen können Einzelcharakteroptionen kombiniert werden.[10] andere nicht. Der Schalter
-Fa
kann das gleiche bedeuten wie-f -a
,[10] oder es kann falsch sein oder es kann sogar ein gültiger, aber unterschiedlicher Parameter sein.
Im DOS, OS/2 und Fenster, der Vorwärtsstrahl (/
) ist am häufigsten, obwohl der Bindestrich auch manchmal auch verwendet wird. In vielen Versionen von DOS (MS-DOS/PC DOS 2.xx und höher, alle Versionen von DR-DOS seit 5.0 ebenso wie PTS-DOS, Eingebettete dos, Freedos und Rxdos) das Charakter ändern (manchmal abgekürzt Switchar oder SwitchChar) zu verwenden wird durch einen von a zurückgegebenen Wert definiert Systemanruf (Int 21h/Ax = 3700h). Das von dieser API zurückgegebene Standardcharakter ist /
, kann aber in einen Bindestrich in den oben genannten Systemen in einen Bindestrich-Minus geändert werden, mit Ausnahme von Datalight ROM-DOS und MS-DOS/PC DOS 5.0 und höher, die immer zurückkehren /
aus diesem Anruf (es sei denn, einer von vielen verfügbaren TSRs Um neu zu verhindern, ist die Switchar -Funktion geladen). In einigen dieser Systeme (MS-DOS/PC DOS 2.xx, DOS plus 2.1, DR-DOS 7.02 und höher, PTS-DOS, eingebettete DOS, Freedos und RXDOS) kann die Einstellung auch durch a vorkonfiguriert werden Switchar Richtlinie in Config.sys. Eingebettete DOS der allgemeinen Software bietet einen Switch -Befehl für den gleichen Zweck, während 4dos Ermöglicht die Einstellung durch die Änderung durch Setdos /w: n
.[13] Unter DR-DOS, wenn die Einstellung aus geändert wurde /
, das erste Verzeichnisabscheider \
in der Anzeige der PROMPT Parameter $ G
wird zu einem Stürmerstrich wechseln /
(Dies ist auch ein gültiges Verzeichnistrennzeichen in DOS, Flexos, 4680 OS, 4690 OS, OS/2 und Windows) und dient damit als visueller Hinweis, um die Änderung anzuzeigen.[10] Außerdem wird die aktuelle Einstellung auch in den integrierten Hilfsschirmen reflektiert.[10] Einige Versionen von DR-DOS Command.com Unterstützen Sie auch ein schnelles Token $/
So zeigen Sie die aktuelle Einstellung an. Command.com Da Dr-dos 7.02 auch a Pseudo-Umweltvariable genannt %/%
So schriftlich tragbare Batchjobs zu ermöglichen.[14][15] Mehrere externe DR-DOS-Befehle unterstützen zusätzlich eine Umgebungsvariable %Switchar%
Um die Systemeinstellung zu überschreiben.
Viele Programme sind jedoch fest verdrahtet, um sie zu verwenden /
Nur anstatt die Switch-Einstellung vor dem Parsen von Befehlszeilenargumenten abzurufen. Eine sehr kleine Zahl, hauptsächlich Ports von Unix-ähnlichen Systemen, ist so programmiert, dass sie akzeptieren "-" auch wenn der Schaltercharakter nicht darauf eingestellt ist (zum Beispiel Netstat
und Klingeln
, geliefert mit Microsoft Windows, wird das /? Option zur Auflistung der verfügbaren Optionen, und doch wird die Liste die Konvention "-" angeben.
Optionskonventionen in unixähnlichen Systemen
Im Unix-artig Systeme, die ASCII Bindestrich-Minus beginnt Optionen; das neue (und GNU) Die Konvention ist zu verwenden zwei Bindestriche dann ein Wort (z. --schaffen
) Um die Verwendung der Option zu identifizieren, während die alte Konvention (und dennoch als Option für häufig verwendete Optionen verfügbar ist) ist die Verwendung eines Bindestrichs, dann einen Buchstaben (z. B.,, -c
); Wenn ein Bindestrich von zwei oder mehr Buchstaben folgt, kann dies bedeuten, dass zwei Optionen angegeben werden, oder es kann die zweite und nachfolgende Buchstaben ein Parameter (z. B. Dateiname oder Datum) für die erste Option sind.[16]
Zwei Hyphen-Minus-Zeichen ohne Briefe (Briefe (--
) kann darauf hinweisen, dass die verbleibenden Argumente nicht als Optionen behandelt werden sollten, was beispielsweise nützlich ist, wenn ein Dateiname selbst mit einem Bindestrich beginnt oder wenn weitere Argumente für einen inneren Befehl bestimmt sind (z. B.. sudo). Doppelte Bindestrate werden manchmal auch zum Präfix "langen Optionen" verwendet, bei denen mehr beschreibende Optionsnamen verwendet werden. Dies ist ein gemeinsames Merkmal von GNU Software. Das Getopt Funktion und Programm und die Getopts Der Befehl wird normalerweise für die Parsen-Befehlszeilenoptionen verwendet.
UNIX-Befehlsnamen, Argumente und Optionen sind Fallempfindungen (außer in einigen Beispielen, hauptsächlich wenn beliebte Befehle anderer Betriebssysteme auf UNIX portiert wurden).
Optionskonventionen in anderen Systemen
Flexos, 4680 os und 4690 os verwenden -
.
CP/m Typisch verwendet [
.
Konversationsmonitorsystem (CMS) verwendet eine einzelne linke Klammern Optionen am Ende des Befehls von den anderen Argumenten zu trennen. Im folgenden Befehl zeigen die Optionen beispielsweise, dass die Zieldatei ersetzt werden sollte, wenn sie vorhanden ist, und das Datum und die Uhrzeit der Quelldatei auf der Kopie beibehalten werden sollten:Kopieren Sie die Quelldatei eine Zieldatei B (Ersetzen Sie OldDate
Daten allgemeinCLI unter ihren RDOs, Aosusw. Betriebssysteme sowie die Version von CLI, die mit ihren geliefert wurde Business Basic, nur verwendet /
Als Switch-Charakter ist es unempfindlich und ermöglicht "lokale Switches" auf einigen Argumenten, die Art und Weise zu steuern, wie sie interpretiert werden, wie z. MAC/U lib/s a b c $ lpt/l
Hat die globale Option "u" zum Befehl macro Assembler, um Benutzersymbole anzuhängen, aber zwei lokale Switches, eine zum Angeben von LIB sollte auf Pass 2 übersprungen werden, und das andere, um die Auflistung auf den Drucker $ LPT zu lenken.
Eingebaute Nutzungshilfe
Einer der Kritikpunkte einer CLI ist der Mangel an Hinweisen an den Benutzer hinsichtlich der verfügbaren Aktionen. Im Gegensatz dazu informieren die GUIs den Benutzer normalerweise über verfügbare Aktionen mit Menüs, Symbolen oder anderen visuellen Hinweisen. Um diese Einschränkung zu überwinden, zeigen viele CLI -Programme a Nutzungsnachrichtnormalerweise, wenn er ohne Argumente oder eines von aufgerufen wird ?
, -?
, -h
, -H
, /?
, /h
, /H
, /Hilfe
, -Hilfe
, oder --Hilfe
.[10][17][18]
Wenn Sie jedoch einen Programmnamen ohne Parameter in der Hoffnung eingeben, kann die Verwendung von Verwendung von Nutzungshilfen gefährlich sein, da Programme und Skripte, für die die Befehlszeilenargumente optional sind, ohne weiteres ausgeführt werden.
Obwohl die Programme zumindest für den Hilfsparameter zumindest wünschenswert sind, unterstützen sie möglicherweise nicht alle oben genannten Optionen. Unter dos, wo der standardmäßig Befehlszeilenoption Zeichen kann von geändert werden von /
zu -
, Programme können die nachfragen Switchar API Um die aktuelle Einstellung zu bestimmen. Wenn also ein Programm nicht fest verdrahtet ist, um sie alle zu unterstützen, muss ein Benutzer möglicherweise auch die aktuelle Einstellung kennen, um die Hilfe zuverlässig anzufordern. Wenn der Switchar in geändert wurde -
und damit die /
Der Charakter wird als alternativer Pfad -Grenzwerter auch in der DOS -Befehlszeile akzeptiert. Programme können Optionen wie falsch interpretieren wie falsch /h
oder /H
als Pfade anstelle von Parametern.[10] Wenn sie jedoch als erster oder einziger Parameter angegeben sind, werden die meisten DOS -Programme unabhängig von der aktuellen Switchar -Einstellung als Hilfsanfrage angenommen.[10][13]
In einigen Fällen können für ein Programm unterschiedliche Hilfeniveaus ausgewählt werden. Einige Programme, die dies unterstützen /H: 1
, /H: 2
usw.) oder sie bieten nur eine kurze Hilfe bei den Hilfsparametern mit Fragezeichen und einem längeren Hilfsbildschirm für die anderen Hilfeoptionen.[19]
Abhängig vom Programm sind manchmal zusätzliche oder spezifischere Hilfe bei akzeptierten Parametern verfügbar /H: w
oder in /W :?
(Annahme /W
wäre ein weiterer Parameter, der vom Programm unterstützt wird).[20][21][18][17][19][NB 1]
In ähnlicher Weise wie beim Hilfsparameter, aber viel weniger häufig, liefern einige Programme zusätzliche Informationen über sich selbst (z. -!
, /!
, -um
, oder --um
.[17]
Seit der ?
und !
Charaktere dienen normalerweise auch anderen Zwecken in der Befehlszeile, sie sind möglicherweise nicht in allen Szenarien verfügbar. Daher sollten sie nicht die einzigen Optionen sein, um auf die entsprechenden Hilfeinformationen zuzugreifen.
Wenn detailliertere Hilfe erforderlich ist als die integrierte interne Hilfe eines Programms, unterstützen viele Systeme ein dediziertes externes. "HILFE -Befehl
"Befehl (oder ähnliches), das einen Befehlsnamen als Anrufparameter akzeptiert und ein externes Hilfesystem aufruft.
In der DR-DOS-Familie tippen /?
oder /H
Bei der Command.com Eingabeaufforderung anstelle eines Befehls selbst zeigt eine dynamisch generierte Liste der verfügbaren internen Befehle an.[10] 4dos und Ndos Unterstützen Sie die gleiche Funktion durch Eingabe ?
an der Eingabeaufforderung[13] (was auch von neueren Versionen von DR-DOS command.com akzeptiert wird); Interne Befehle können individuell deaktiviert oder übernachtelt werden Setdos /i
.[13] Darüber hinaus akzeptieren einige neuere Versionen von DR-DOS Command.com auch a ?%
Befehl zum Anzeigen einer Liste der verfügbaren integrierten Integration Pseudo-Umweltvariablen. Neben ihrem Zweck als Schnellhilfe kann dies in Batchjobs verwendet werden, um die Einrichtungen des zugrunde liegenden Befehlszeilenprozessors abzufragen.[10]
Befehlsbeschreibung Syntax
Integrierte Nutzungshilfe und Mannseiten Verwenden Sie häufig eine kleine Syntax, um das gültige Befehlsformular zu beschreiben:[22][23][24][NB 2]
- Winkelklammern für erforderlich Parameter:
Klingeln
- Quadratklammern für Optional Parameter:
mkdir [-p]
- Ellipsen für wiederholt Artikel:
CP
[Quelle2…] - vertikale Balken für Auswahl von Gegenständen:
netstat {-t | -u}
Beachten Sie, dass diese Zeichen unterschiedliche Bedeutungen haben als bei direkter Verwendung in der Schale. Winkelklammern können weggelassen werden, wenn der Parametername mit einer wörtlichen Saite verwechselt wird.
Der Raumschiff
In vielen Bereichen des Computers, aber insbesondere in der Befehlszeile, die Weltraumcharakter kann Probleme verursachen, da es zwei unterschiedliche und unvergleichliche Funktionen hat: als Teil eines Befehls oder Parameters oder als Parameter oder Name Separator. Mehrdeutigkeit kann entweder durch Verbot eingebetteter Räume in Datei- und Verzeichnisnamen in erster Linie verhindert werden (zum Beispiel durch Ersetzen durch sie durch unterstreicht _
) oder durch Einschließen eines Namens mit eingebetteten Räumen zwischen Zitatzeichen oder Verwendung eines Escape-Zeichen vor dem Raum normalerweise a Backslash (\
). Zum Beispiel
-
Langer Pfad/langer Programmname Parameter 1 Parameter Zwei
…
Ist mehrdeutig (ist der "Programmname" Teil des Programmnamens oder zwei Parameter?); jedoch
-
Long_path/long_program_name parameter_one parameter_two
…, -
LongPath/LongProgramname Parameteron Parametertwo
…, -
"Long Path/Long Program Name" "Parameter eins" "Parameter zwei"
…
und
-
Long \ Path/Long \ Programm \ Name Parameter \ ein Parameter \ Two
…
sind nicht mehrdeutig. Unix-Basierte Betriebssysteme minimieren die Verwendung eingebetteter Räume, um die Notwendigkeit von Zitaten zu minimieren. Im Microsoft WindowsMan muss oft Zitate verwenden, da eingebettete Räume (z. B. in Verzeichnisnamen) üblich sind.
Befehlszeilen-Interpreter
Obwohl die meisten Benutzer die Shell als interaktiven Befehlsinterpreter betrachten, handelt es sich wirklich um eine Programmiersprache, in der jede Aussage einen Befehl ausführt. Da es sowohl die interaktiven als auch die Programmieraspekte der Befehlsausführung befriedigen muss, ist es eine seltsame Sprache, die nach der Geschichte ebenso geprägt ist wie nach Design.
Der Begriff Befehlszeilen-Interpreter (Cli) wird angewendet auf Computerprogramme Entworfen um interpretieren Eine Abfolge von Textzeilen, die von einem Benutzer eingegeben werden können, lesen Sie aus a Datei oder eine andere Art von Datenstrom. Der Kontext der Interpretation ist normalerweise einer von einem gegebenen Betriebssystem oder Programmiersprache.
Mit Befehlszeileninterpretern können Benutzer verschiedene Befehle auf sehr effiziente (und häufig knappe) Weise ausstellen. Dies erfordert, dass der Benutzer die Namen der Befehle und deren Parameter sowie die Syntax der Sprache das wird interpretiert.
Die Unix #!
Der Befehl Mechanismus und OS/2 EXTPROC erleichtert die Übergabe von Stapeldateien an externe Prozessoren. Man kann diese Mechanismen verwenden, um bestimmte Befehlsprozessoren für dedizierte Verwendungen zu schreiben und externe Datendateien zu verarbeiten, die sich in Stapeldateien befinden.
Viele grafische Schnittstellen wie das Betriebssystem/2 Präsentationsmanager und frühe Versionen von Microsoft Windows verwenden Befehlslinien, um Helferprogramme aufzurufen, um Dokumente und Programme zu öffnen. Die Befehle werden in der grafischen Hülle gespeichert[Klarstellung erforderlich] oder in Dateien wie die Registrierung oder die OS/2 OS2USER.ini
Datei.
Frühe Geschichte
Die frühesten Computer unterstützten keine interaktiven Eingangs-/Ausgabegeräte, die sich häufig darauf verlassen Sinnesschalter und Lichter, um mit dem zu kommunizieren Computer-Operator. Dies war angemessen für Charge Systeme, die jeweils ein Programm ausführten, oft mit dem Programmierer, der als Operator fungierte. Dies hatte auch den Vorteil eines niedrigen Overheads, da Lichter und Schalter getestet und mit einer Maschinenanweisung eingestellt werden konnten. Später eine Single Systemkonsole wurde hinzugefügt, um dem Bediener mit dem System zu kommunizieren.
Ab den 1960er Jahren wurde die Benutzerinteraktion mit Computern in erster Linie mit Befehlszeilenschnittstellen, zunächst auf Maschinen wie der Teletyp -Modell 33 ASR, aber dann früh Crt-basierend Computerterminals so wie die VT52.
Alle diese Geräte waren rein textbasiert, ohne Grafik oder Bilder anzuzeigen.[NB 3] Für das Geschäft Anwendungsprogramme, textbasiert Menüs wurden verwendet, aber für eine allgemeinere Interaktion war die Befehlszeile die Schnittstelle.
Um 1964 Louis Pouzin stellte das Konzept und den Namen vor Hülse in Mehrheitauf früheren, einfacheren Einrichtungen in der Kompatibler Zeitaustauschsystem (CTSS).[26]
Ab den frühen 1970er Jahren die Unix Das Betriebssystem passte das Konzept einer leistungsstarken Befehlszeilenumgebung an und führte die Fähigkeit ein Rohr Die Ausgabe eines Befehls als Eingabe für einen anderen. UNIX hatte auch die Fähigkeit, Befehle von Befehlen zu speichern und neu zu erledigen, als "Shell -Skripte"Das wirkte wie benutzerdefinierte Befehle.
Die Befehlszeile war auch die Hauptschnittstelle für die frühen Heimcomputer wie die Commodore Pet, Apple II und BBC Micro- fast immer in Form von a BASIC Dolmetscher. Als leistungsstärkere geschäftsorientierte Mikrocomputer mit kamen CP/m und später DOS Computer wie die IBM PCDie Befehlszeile lieh einige der Syntax und Merkmale der UNIX-Shells wie z. Kugeln und Rohrleitungen Ausgang.
Die Kommandozeile wurde zuerst von der ernsthaft herausgefordert Parc GUI Ansatz in der 1983 verwendeten Ansatz Apple Lisa und die 1984 Apple Macintosh. Einige Computerbenutzer verwendeten GUIs wie z. Geos und Windows 3.1 aber die meisten von IBM PC Benutzer haben ihre nicht ersetzt Command.com Muschel mit einer GUI bis Windows 95 wurde 1995 veröffentlicht.[27][28]
Moderne Nutzung als Betriebssystem -Shell
Während die meisten nicht experten Computerbenutzer jetzt fast ausschließlich eine GUI verwenden, haben fortgeschrittenere Benutzer Zugriff auf leistungsstarke Befehlszeilenumgebungen:
- Die Standard -VAX/VMS -Befehlsschale verwendet die Verwendung der DCL Die Sprache wurde mindestens dreimal auf Windows-Systeme portiert, einschließlich PC-DCL und Acceler8 DCL Lite. UNIX -Befehlsschalen wurden auf VMS- und DOS/Windows 95- und Windows -NT -Betriebssysteme portiert.
- Command.com ist der Befehlszeilen-Interpreter von MS-DOS, IBM PC DOSund Klone wie z. DR-DOS, Sisne Plus, PTS-DOS, Rom-Dos, und Freedos.
- Fenster Ressourcen -Kit und Windows -Dienste für UNIX Hören Sie Korn und die Bourne -Shells zusammen mit einem Perl -Dolmetscher ein (Dienste für Unix enthält Aktivität ActivePerl in späteren Versionen und Interix Für Versionen 1 und 2 und eine von Microsoft zusammengestellte Shell)
- IBM OS/2 (und Derivate wie z. ECOMSTATION und Arcaos) hat die cmd.exe Prozessor. Dies kopiert die Command.com Befehle mit Erweiterungen zu Rexx.
- cmd.exe ist Teil der Windows NT Strom von Betriebssystemen.
- Ein weiterer CMD.exe ist eine abgespeckte Hülle für Windows CE 3.0.
- Ein Dolmetscher vom Typ MS-DOS namens PocketDos wurde auf Windows CE-Maschinen portiert. Die jüngste Version ist fast identisch mit MS-DOS 6.22 und kann auch Windows 1, 2 und 3.0 ausführen. Qbasic und andere Entwicklungstools, 4NT und 4DOs. Die neueste Version umfasst mehrere Shells, nämlich MS-DOS 6.22, PC DOS 7, DR DOS 3.xx und andere.
- Windows -Benutzer verwenden möglicherweise die Cscript Schnittstelle zu alternativen Programmen aus der Befehlszeile. Power Shell Bietet eine Befehlszeilenschnittstelle, aber seine Applets sind nicht in geschrieben Shell-Skript. Implementierungen der Unix Shell sind auch als Teil der erhältlich POSIX-Subsystem,[29] Cygwin, MKS Toolkit, DU GEWINNST, Hamilton C Shell und andere Softwarepakete. Zu den verfügbaren Shells für diese Interoperabilitätstools gehören CSH, ksh, Sch, Bash, rsh, tclsh und weniger häufig ZSH, psh
- Implementierungen von Php Haben Sie eine Shell für die interaktive Verwendung als PHP-CLI.
- Standard Tcl/tk hat zwei interaktive Muscheln, Tclsh und Wunsch, wobei letztere die GUI -Version ist.
- Python, Rubin, Lua, Xlntund andere Dolmetscher haben auch Befehlsschalen für die interaktive Verwendung.
- Freebsd Verwendet TCSH als standardmäßige interaktive Shell für die Superuser, und Asche als Standard -Skriptschale.
- Viele Linux -Verteilungen haben die Bash -Implementierung der Unix Shell.
- Apfel Mac OS und einige Linux -Verteilungen verwenden ZSH. Zuvor wurde MacOS verwendet TCSH und verprügeln.
- Eingebettete Linux (und andere eingebettete Unix-artig) Geräte verwenden häufig die Asche Implementierung der Unix -Shell als Teil von Busybox.
- Android verwendet die Mksh Hülse,[30][31] was eine Hülle ersetzt aus Asche[32] Das wurde in älteren Android -Versionen verwendet, ergänzt mit Befehlen aus dem separaten Werkzeugkasten[33] binär.
- Router mit Cisco iOS,[34] Junos[35] und viele andere sind üblicherweise aus der Befehlszeile konfiguriert.
- Das Plan 9 Das Betriebssystem verwendet die RC -Shell, die im Design ähnlich ist wie Bourne Hülse.
Scripting
Die meisten Befehlszeilen-Dolmetscher unterstützen Unterstützung Scripting, in verschiedenen Ausgriffen. (Sie sind schließlich Dolmetscher von einem Interpretierte Programmiersprache, wenn auch in vielen Fällen, die Sprache ist nur für den jeweiligen Befehlszeilen-Interpreter.) Sie werden Skripte interpretieren (unterschiedlich bezeichnet Shell -Skripte oder Stapeldateien) geschrieben in der Sprache dass sie interpretieren. Einige Befehlszeilen-Dolmetscher enthalten auch die Interpreter-Motoren anderer Sprachen, wie z. RexxZusätzlich zu ihren eigenen, die Ausführung von Skripten in diesen Sprachen direkt im Befehlszeilen-Interpreter selbst zulassen.
Umgekehrt, Scripting -Programmiersprachen, insbesondere diejenigen mit einem bewerten Funktion (wie Rexx, Perl, Python, Rubin oder Jython), kann verwendet werden, um Befehlszeileninterpreten und -Filter zu implementieren. Für ein paar Betriebssysteme, vor allem DOSEin solcher Befehlsinterpreter bietet eine flexiblere Befehlszeilenschnittstelle als die mitgelieferte. In anderen Fällen kann ein solcher Befehlsinterpreter eine hoch angepasste Benutzeroberfläche mit der Benutzeroberfläche und Eingabe-/Ausgabeeinrichtungen der Sprache darstellen.
Andere Befehlszeilenschnittstellen
Die Befehlszeile bietet eine Schnittstelle zwischen Programmen und dem Benutzer. In diesem Sinne ist eine Befehlszeile eine Alternative zu a Dialogbox. Editoren und Datenbanken präsentieren eine Befehlszeile, in der alternative Befehlsprozessoren ausgeführt werden können. Andererseits kann man Optionen in der Befehlszeile haben, die ein Dialogfeld öffnet. Die neueste Version von 'Take Command' hat diese Funktion. DBase verwendete ein Dialogfeld, um Befehlszeilen zu konstruieren, die vor der Verwendung weiter bearbeitet werden konnten.
Programme wie grundlegend, Scheibe, Edlinund QBasic bieten alle Befehlszeilenschnittstellen, von denen einige die Systemschale verwenden. Basic wird auf der Standardschnittstelle für 8-Bit-Intel-Computer modelliert. Taschenrechner können als Befehlszeilen- oder Dialogschnittstellen ausgeführt werden.
EMACs Bietet eine Befehlszeilenschnittstelle in Form seines Minibuffer. Befehle und Argumente können mithilfe von EMACS -Standard -Textbearbeitung eingegeben werden, und die Ausgabe wird in einem anderen Puffer angezeigt.
Es gibt eine Reihe von Textmodusspielen wie Abenteuer oder King's Quest 1-3, die sich auf die Befehle des Benutzer -Tipps am unteren Bildschirmrand stützte. Man steuert den Charakter, indem es Befehle wie 'Get Ring' oder 'Look' eingreift. Das Programm gibt einen Text zurück, der beschreibt, wie der Charakter ihn sieht oder die Aktion erfolgt. Das Textabenteuer Per Anhalter durch die Galaxis, ein Stück von Interaktive Fiktion bezogen auf Douglas Adams Das gleichnamige Buch ist ein Befehlszeilenspiel im Teletypstil.
Das bemerkenswerteste dieser Schnittstellen ist die Standardströme Schnittstelle, mit der die Ausgabe eines Befehls an die Eingabe eines anderen übergeben werden kann. Textdateien können auch den beiden Zweck erfüllen. Dies liefert die Schnittstellen von Rohrleitungen, Filtern und Umleitung. Unter unix, Geräte sind Dateien Auch die normale Dateityp für die für stdin, stdout und stderr verwendete Shell ist also a tty Gerätedatei.
Eine andere Befehlszeilenschnittstelle ermöglicht es einem Shell-Programm, Helferprogramme zu starten, entweder Dokumente zu starten oder ein Programm zu starten. Der Befehl wird intern von der Shell verarbeitet und dann an ein anderes Programm weitergegeben, um das Dokument zu starten. Die grafische Schnittstelle von Windows und OS/2 basiert stark auf Befehlslinien, die an andere Programme übergeben wurden-Konsole oder grafisch, die dann die Befehlszeile normalerweise verarbeiten, ohne eine Benutzerkonsole zu präsentieren.
Programme wie das Betriebssystem/2 E Editor Und ein anderer IBM Redakteure, können Befehlslinien verarbeiten, die normalerweise für die Shell bestimmt sind, wobei die Ausgabe direkt im Dokumentfenster platziert wird.
Das URL -Eingangsfeld eines Webbrowsers kann als Befehlszeile verwendet werden. Es kann verwendet werden, um "zu starten" werden Web -Apps, Zugriff auf Browserkonfigurationsowie eine Suche durchführen. Google, die als "Befehlszeile des Internets" bezeichnet wurde, führt eine domänenspezifische Suche durch, wenn sie Suchparameter in einem bekannten Format erkennt.[36] Diese Funktionalität ist vorhanden, ob die Suche aus einem Browserfeld oder auf der Google -Website ausgelöst wird.
Es gibt JavaScript Bibliotheken, mit denen Befehlszeilenanwendungen in Browser als eigenständige Web -Apps oder als Teil der größeren Anwendung schreiben können.[37] Ein Beispiel für eine solche Website ist die CLI -Schnittstelle zu Duckduckgo.[38] Es gibt auch Webbasierte SSH Anwendungen, mit denen der Zugriff auf die Befehlszeilenschnittstelle auf Server von einem Browser zugänglich gemacht werden kann.
Viele Videospiele Auf der PC -Funktion eine Befehlszeilenschnittstelle, die häufig als Konsole bezeichnet wird. Es wird in der Regel von den Spielentwicklern während der Entwicklung und von Mod -Entwicklern zum Debugging -Zweck sowie zum Betrug oder Überspringen von Teilen des Spiels verwendet.
Siehe auch
- Vergleich von Befehlsschalen
- Liste der Befehlszeileninterpreten
- Konsolenanwendung
- Interpreter -Richtlinie
- Read-Eval-Print-Schleife
- Shell-Skript
- Führen Sie den Befehl aus
- Grafische Benutzeroberfläche § Vergleich mit anderen Schnittstellen
- Am Anfang ... war die Befehlszeile
Anmerkungen
- ^ Ein Beispiel ist das umfassende interne Hilfesystem der DR-DOS 7.03 DEBUGGEN Befehl, der über durchgerufen werden kann
?
bei der Debug -Eingabeaufforderung (anstelle der Standardeinstellung?
Überblick). Spezifische Hilfebeseiten können über?n
(won
ist die Nummer der Seite). Zusätzlich können Hilfe für bestimmte Befehle angezeigt werden, indem der Befehlsname danach angegeben wird?
F.E.?D
wird Hilfe für die verschiedenen Dump -Befehle aufrufen (wie wieD
etc.). Einige dieser Merkmale wurden bereits von der unterstützt Dr. DOS 3.41 SID86 und Gemsid. - ^ Bemerkenswerter Unterschied zur Beschreibung der Befehlssyntax von DOS-Blike Betriebssysteme: Windows Server 2003 R2 -Dokumentation verwendet kursive Buchstaben für "Informationen, die der Benutzer liefern muss", aber Windows Server 2008 -Dokumentation verwendet Angle -Klammern. Die Kursivschrift kann nicht vom internen "Hilfe" angezeigt werden, während es kein Problem gibt mit Winkelklammern.
- ^ Mit Ausnahme von ASCII Art.
Verweise
- ^ "Unix Shells". Archiviert von das Original Am 2007-11-08.
Die Vorstellung, eine austauschbare "Befehlshell" zu haben, anstatt eine "Überwachung", die eng in den OS -Kernel integriert ist, wird in der Regel auf Multics zurückgeführt.
- ^ a b "Der Ursprung der Hülle". www.multicians.org. Abgerufen 2017-04-12.
- ^ Metz, Cade (2013-01-03). "Sag Bonjour zum lang verlorenen französischen Onkel des Internets". Verdrahtet. Abgerufen 2017-07-31.
- ^ Mazières, David (Herbst 2004). "Multics - die ersten sieben Jahre". Fortgeschrittene Betriebssysteme. Stanford Informatikabteilung. Abgerufen 2017-08-01.
- ^ a b Jones, M. (2011-12-06). "Evolution von Shells in Linux". Entwicklerworks. IBM. Abgerufen 2017-08-01.
- ^ "Gnu Bash Referenz".
- ^ "Microsoft Windows -Befehls -Shellübersicht".
- ^ SID -Benutzerhandbuch (PDF). Digitale Forschung. 1978. 595-2549. Archiviert (PDF) vom Original am 2019-10-20. Abgerufen 2020-02-06. (4+69 Seiten)
- ^ SID-86 Benutzerhandbuch für CP/M-86 (2 ed.). Digitale Forschung. August 1982 [März 1982]. SID86UG.WS4. Archiviert vom Original am 2019-10-20. Abgerufen 2020-02-06. [1] (NB. Eine retypisierte Version des Handbuchs von Emmanuel Roche mit den Befehlen Q, SR und Z hinzugefügt.)
- ^ a b c d e f g h i j k Paul, Matthias R. (1997-07-30). NWDOS-TIPS-TIPS & Tricks Rund Um Novell Dos 7, MIT Blick Auf undokumentierte Details, Fehler und Problemumgehungen. Mpdostip. Release 157 (in Deutsch) (3 ed.). Archiviert vom Original am 2017-09-10. Abgerufen 2014-09-06. (Nb. Nwdostip.txt ist eine umfassende Arbeit an Novell DOS 7 und Opendos 7.01, einschließlich der Beschreibung vieler undokumentierter Merkmale und Interna. Es ist Teil der noch größeren mpdostip.zip -Sammlung des Autors bis 2001 und verteilt zu dieser Zeit auf vielen Standorten. Der bereitgestellte Link zeigt auf eine HTML-konvertierte ältere Version der Datei nWdostip.txt.)
- ^ Parker, Steve (2011). "Kapitel 11: Auswahl und Verwendung von Shells". Shell Scripting: Expertenrezepte für Linux, Bash und mehr. Programmierer zum Programmierer. Indianapolis, USA: John Wiley & Sons. p. 262. ISBN 978-111816632-1.
Die Shell verfügt über vier verschiedene Eingabeaufforderungen, die PS1, p52, p53 und PS4 bezeichnen. PS steht für die schnelle Zeichenfolge.
- ^ RISC OS 3 Benutzerhandbuch (PDF). Acorn Computers Limited. 1992-03-01. p. 125.
- ^ a b c d Brüder 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. (1998-01-09). DELTREE.BAT R1.01 Erweiterte Datei und Verzeichnis löschen. Caldera, Inc. Archiviert von das Original Am 2019-04-08. Abgerufen 2019-04-08.
- ^ DR-DOS 7.03 WhatsNew.txt-Änderungen von DR-DOS 7.02 zu DR-DOS 7.03. Caldera, Inc. 1998-12-24. Archiviert von das Original Am 2019-04-08. Abgerufen 2019-04-08.
- ^ "Argumentsyntax (die GNU C -Bibliothek)". www.gnu.org. Abgerufen 2021-07-09.
- ^ a b c Paul, Matthias R. (2002-05-13). "[fd-dev] meyb". Freedos-dev. Archiviert vom Original am 2018-09-10. Abgerufen 2018-09-10.
[…] Cpi/h […] cpi [@] [@] [/? |/Help [: topic]] [/! |/Über] […] [? | &] []/?,/Hilfe Zeigen Sie diesen Hilfebildschirm oder eine spezifische Hilfe für ein Thema an (+) […] /!, /Über die Anzeige des Bildschirms 'About' Info […] /cpiFile (+) .cpi /.cp Dateiname <ega.cpi>; Erweiterung: <.cpi>; Cpi.exe = stdin […] /Berichtsdateiname <'
'= 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 über die Nutzung der Codepage-Datei Parameter verwendet: [ …] CPI /H: S […] Übersicht über /Stilparameter: […]?, & Online -Bearbeitungsmodus (Eingabeaufforderungen für zusätzliche Parametereingabe) […] - ^ a b Paul, Matthias R. (2002-01-09). "SID86". Newsgroup:comp.os.cpm. Abgerufen 2018-04-08.
[…] Seit der DR-DOS 7.03 DEBUGGEN basiert immer noch auf dem alten SID86.exe, ich schlage vor, Debug 1.51 auszuführen und das erweiterte Hilfesystem mit zu betreten? Aus der Debug -Eingabeaufforderung. Dadurch erhalten Sie acht Bildschirme voller Syntax- und Funktionshilfe. Einige dieser Funktionen wurden auch durch ältere Probleme unterstützt. […]
- ^ a b Paul, Matthias R.; Frinke, Axel C. (2006-01-16). FreeKeyB - Advanced International DOS -Tastatur und Konsolenfahrer (Benutzerhandbuch) (vorläufige Ausgabe).
- ^ CCI Multiuser DOS 7.22 Gold Online -Dokumentation. Concurrent Controls, Inc. (CCI). 1997-02-10. Hilfe.HLP. (NB. Der symbolische Debugger SID86 bietet einen kurzen Hilfebildschirm auf
?
und umfassende Hilfe auf?
.)) - ^ Paul, Matthias R. (1997-05-24) [1991]. Drdostip.txt - Tipps und Tricks für Dr. DOS 3.41 - 5.0. Mpdostip (auf Deutsch) (47 ed.). Archiviert vom Original am 2016-11-07. Abgerufen 2016-11-07.
- ^ "Die offenen Gruppenbasisspezifikationen Ausgabe 7, Kapitel 12.1 Nützlichkeitsargumentsyntax". Die offene Gruppe. 2008. Abgerufen 2013-04-07. - -Linux Konventionen und Miscellany Handbuch (NB. Konventionen zur Beschreibung von Befehlen zu Unix-ähnlichen Betriebssystemen.)
- ^ "Befehlsschalenübersicht". Windows Server 2003 Produkthilfe. Microsoft. 2005-01-21. Abgerufen 2013-04-07.
- ^ "Befehlszeilensyntaxschlüssel". Windows Server 2008 R2 Technet Library. Microsoft. 2010-01-25. Abgerufen 2013-04-07.
- ^ Kernighan, Brian W.; Pike, Rob (1984). Die UNIX -Programmierumgebung. Englewood Cliffs: Prentice-Hall. ISBN 0-13-937699-2.
- ^ Pouzin, Louis. "Der Ursprung der Hülle". Multiders.org. Abgerufen 2013-09-22.
- ^ "Erinnern Sie sich 15 Jahre später an Windows 95". 2010-08-24.
- ^ "Eine Geschichte der Fenster". windows.microsoft.com. Archiviert von das Original Am 2015-03-01.
- ^ "Windows -Possix -Shell -Kompatibilität".
- ^ "Master - Plattform/extern/mksh - Git bei Google". android.googlesource.com. Abgerufen 2018-03-18.
- ^ "Android ADB Shell - Asche oder Ksh?". stackoverflow.com. Abgerufen 2018-03-14.
- ^ "Android SH Quelle". GitHub. Archiviert von das Original Am 2012-12-17.
- ^ "Android Toolbox Source". GitHub.
- ^ "Konfigurationskonfigurationshandbuch, Cisco IOS Release 15m & t". Cisco. 2013-10-30. Verwenden der Befehlszeilenschnittstelle.
Die Cisco IOS-Befehlszeilenschnittstelle (CLI) ist die primäre Benutzeroberfläche…
- ^ "Befehlszeilenschnittstellenübersicht". www.juniper.net. Abgerufen 2018-03-14.
- ^ "Google Strange Güte".
- ^ JQuery Terminal Emulator
- ^ Duckduckgo tty
Externe Links
- Die Wurzeln von dos David Hunter, Softalk für den IBM -Personalcomputer März 1983. Archiviert bei Patersontech.com seitdem archiviert 2000.
- Befehlszeilenreferenz: Microsoft TechNet-Datenbank "Befehlszeilenreferenz"