Kommandozeileninterpreter

Ein Kommandozeileninterpreter,  oder , sowie kurz Kommandozeile, aber auch Kommandointerpreter und Befehlsinterpreter 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.

Geschichte 
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 
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.

CP/M 
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 .

DOS/Windows

DOS Eingabeaufforderung 

Die Entwicklung des ersten Befehlsinterpreters in den DOS-Reihen begann mit der Entwicklung von 86-DOS, das sich CP/M als Vorbild nahm. Der Befehlsinterpreter von 86-DOS wurde auf der Befehlsebene command.com genannt und später in MS-DOS und danach in die Windows-9x-Reihe übernommen sowie dafür weiterentwickelt. Die Hauptentwicklung der command.com fand in den 80er- und 90er-Jahren statt.

Windows NT Eingabeaufforderung 

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 10 emuliert. Eine bedeutende Weiterentwicklung der cmd.exe wurde nicht vollzogen, weil bei der Entwicklung vorrangig auf die Kompatibilität mit dem ehemaligen MS-DOS geachtet wurde.

PowerShell 

Windows NT bot lange keinen den Unix-Shells ebenbürtigen Kommandozeileninterpreter. Dies machte viele administrative Aufgaben unnötig kompliziert. Das Konzept, dem cmd.exe folgt, war dem der modernen 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.

Aufgaben 
Der Befehlsinterpreter kapselt das Betriebssystem gegenüber dem Benutzer ab und wird daher auch als Benutzeroberfläche oder auch als Shell (engl. 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.

Beispiele 

Im Folgenden wird Software genannt, welche einen Kommandozeileninterpreter () implementiert. Die Liste ist unvollständig, da sie nur einige Beispiele aufzeigen soll.
 Betriebssystem-Shells
 4DOS für PC-kompatibles DOS, 4OS2 für OS/2 und 4NT für Windows NT
 CL von OS/400
 CCP von CP/M
 CLI/Amiga Shell von AmigaOS
 cmd.exe von OS/2, der Windows-NT-Linie und Windows CE
 COMMAND.COM von OS/2, einigen PC-kompatiblen DOS wie MS-DOS, PC DOS, DR-DOS, sowie der Windows-9x-Linie
 Commodore DOS Wedge für den Commodore 64
 DCL von VMS/OpenVMS
 DDT von ITS
 FreeCOM von FreeDOS
 iSeries QSHELL von OS/400
 JCL von OS/360 und z/OS
 PowerShell für Windows (ab Windows XP)
 rc Shell von Plan 9
 SDF von BS2000
 TSO von MVS und z/OS
 Unix-Shells nach dem Vorbild der Bourne-Shell; bekannte Unix-Shells sind u. a. Bash (Bourne-Again-Shell), Korn-Shell, C-Shell und Z shell
 Programmiersprachen mit interaktiven Shells
 BASIC, wie z. B. GW-BASIC
 Lisp
 Perl
 Python, auch mit IPython
 Ruby, auch mit Interactive Ruby Shell
 Programme mit Kommandozeile
 AutoCAD CLI
 Emacs

Belege und Anmerkungen 

Programmierwerkzeug