Kommandozeileninterpreter

Ein Kommandozeileninterpreter, englisch command-line interpreter 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.

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

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.

GeschichteBearbeiten

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 UnixBearbeiten

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/MBearbeiten

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.

DOS/WindowsBearbeiten

DOS EingabeaufforderungBearbeiten

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 EingabeaufforderungBearbeiten

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.

PowerShellBearbeiten

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

AufgabenBearbeiten

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.

BeispieleBearbeiten

 
„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 AnmerkungenBearbeiten

  1. BefehlsinterpreterWissen-digital.de (abgerufen am 14. Juli 2019); auch mit „Kommandointerpreter“