Kommandozeileninterpreter – Wikipedia

Der Bash genannte Befehlsinterpreter – die Standard-Linux-Shell, unter OpenSUSE

Ein Kommandozeileninterpreter, englisch command-line interpreter (CLI) oder command-line shell, sowie kurz Kommandozeile, aber auch Kommandointerpreter und Befehlsinterpreter[1] genannt, ist ein Programm, das Benutzereingaben von einer Kommandozeile einliest und als Anweisung ausführt. Die Anweisung wird interpretiert ausgeführt, und gegebenenfalls wird ihr Ergebnis dem Benutzer angezeigt.

Während Kommandozeilen bei vielen Programmen integriert sein können, ist bei Kommandozeileninterpretern die Kommandozeile die Hauptfunktion, um den integrierten Interpreter zu nutzen. Beispiele sind die Konsole oder Terminal, eine Shell oder eine Terminalemulation.

In seiner ursprünglichen Form macht ein Kommandozeileninterpreter dem Endanwender betriebssystemeigene Funktionen durch eine zeilenorientierte Syntax auf einer Systemkonsole zugänglich. Nach der Entwicklung der ersten Röhrenbildschirme wurden auch die Befehlsinterpreter entsprechend angepasst. Der Cursor wurde erfunden. Es kamen immer komplexere Kommandozeilenparameter und Befehle hinzu, bis hin zu einfachen Elementen aus Programmiersprachen, wie z. B. Schleifen oder Variablen.

Multics und Unix

[Bearbeiten | Quelltext bearbeiten]

Technisch gesehen sind Unix-Shells, die von der Multics-Shell inspiriert waren, ebenfalls Kommandozeileninterpreter, werden jedoch fast ausschließlich mit „Shell“ bezeichnet. In vielen Bereichen gelten daher Shell und Kommandozeileninterpreter als Synonyme.

Das in den 1970er Jahren auf PCs dominierende Betriebssystem CP/M war in drei Ebenen, genannt Schalen, aufgeteilt: Die erste Schale beinhaltete alle hardwarenahen Funktionen, die vom Kernel in der zweiten Schale auf einer Vielzahl unterschiedlicher Computer für die Grundfunktionen des Betriebssystems verwendet wurden. Der Kommandozeileninterpreter war die dritte Schale und wurde CCP genannt, für englisch Console Command Processor.

MS-DOS, OS/2 und Windows

[Bearbeiten | Quelltext bearbeiten]

DOS Eingabeaufforderung

[Bearbeiten | Quelltext bearbeiten]

Die Entwicklung des ersten Befehlsinterpreters in den DOS-Reihen begann mit der Entwicklung von 86-DOS, das sich CP/M als Vorbild nahm. Seattle Computer Products nannte den Befehlsinterpreter von 86-DOS wurde auf der Befehlsebene COMMAND.COM, und diese Bezeichnung wurde in MS-DOS und PC DOS, und danach auch in der Windows-9x-Reihe, übernommen. Die Weiterentwicklung der COMMAND.COM fand in den 80er- und 90er-Jahren statt.

OS/2 DOS-Fenster

[Bearbeiten | Quelltext bearbeiten]

Unter dem Betriebssystem OS/2 liefen DOS-Programme weiterhin in einer kompatiblen Umgebung, während textbasierte OS/2-Programme bereits den Protected Mode nutzen konnten. Mit der Einführung der grafischen Benutzerschnittstelle ab OS/2 1.1 (1988) können DOS-Programme innerhalb eines Fensters, genannt „DOS-Fenster“, ablaufen.[2]

Windows NT Eingabeaufforderung

[Bearbeiten | Quelltext bearbeiten]

Mit der Einführung der Windows-NT-Reihe folgte die cmd.exe, in deren Entwicklung die vorangegangene Entwicklung der COMMAND.COM einfloss und die diese bis zum gegenwärtigen Windows 11 emuliert. Eine bedeutende Weiterentwicklung der cmd.exe wurde nicht vollzogen, weil bei der Entwicklung vorrangig auf Kompatibilität mit MS-DOS geachtet wurde.

Die auch sogenannte Windows PowerShell

Windows NT bot lange keinen den Unix-Shells ebenbürtigen Kommandozeileninterpreter. Dies machte viele administrative Aufgaben unnötig kompliziert. Das Konzept, dem der MS-DOS-Kommandozeileninterpreter und später cmd.exe folgt, ist dem moderner Unix-Shells weit unterlegen. Deshalb wurde im Jahr 2006 die erste Version der PowerShell veröffentlicht, welche sich in vielen Eigenschaften an bekannten Unix-Shells wie Bash oder zsh orientiert. Im Gegensatz zu den Unix-Shells folgt die PowerShell dem Paradigma der objektorientierten Programmierung und basiert auf dem .Net-Framework. Die Abwärtskompatibilität mit MS-DOS spielte dabei eine untergeordnete Rolle.

Der Befehlsinterpreter kapselt das Betriebssystem gegenüber dem Benutzer ab und wird daher auch als Benutzeroberfläche oder auch als Shell (englisch für Schale) bezeichnet.

Für erfahrene Benutzer haben Befehlsinterpreter den Vorteil der schnellen und unmittelbaren Kontrolle sowie der leichten Erreichbarkeit aller Funktionen, nachdem die Syntax, die Befehle und ihre Kommandozeilenparameter einmal erlernt wurden. Zudem lassen sich häufig wiederkehrende Befehlsfolgen durch Stapelverarbeitung, Batchdateien, Makros oder Skripte automatisieren, was bei einer grafischen Oberfläche grundsätzlich nur sehr schwer zu verwirklichen ist.

„Befehlsanfragebereich“ (unten) von AutoCAD 2.6.44 unter DOS
Die AutoCAD-Befehlszeile (unten) von AutoCAD 2014 unter Windows

Im Folgenden wird Software genannt, welche einen Kommandozeileninterpreter (CLI) implementiert. Die Liste ist unvollständig, da sie nur einige Beispiele aufzeigen soll.

Belege und Anmerkungen

[Bearbeiten | Quelltext bearbeiten]
  1. BefehlsinterpreterWissen-digital.de (abgerufen am 14. Juli 2019); auch mit „Kommandointerpreter“
  2. Frank Eckgold: Systemprogrammierung OS/2 2.x. Vieweg Verlag, 1993, ISBN 978-3-322-87234-0, 1.3 Notwendige Vorkenntnisse, S. 5: „Grundsatzlich konnen ›normale‹, auf die Funktionalitat von DOS aufbauende Programme von OS/2 innerhalb eines ›DOS-Fensters‹ – also innerhalb eines textorientierten, auf ein OS/2-Fenster beschrankten Ausgabebereichs – ablaufen;“