Was ist der Kommandozeileninterpreter oder CLI?

Die Buchstaben CLI stehen für „command line interface“, also für eine Schnittstelle, an der Befehle in Textform eingegeben werden. Auf Deutsch spricht man von einem Kommandozeileninterpreter. Ein CLI ist also zuerst einmal ein Programm, das vom Nutzer eingetippte Befehle entgegennimmt und vom Betriebssystem ausführen lässt. Der Gegensatz zum CLI ist ein GUI oder „graphic user interface“. Dieses ist heute die praktisch universell verwendete Methode zur Kommunikation zwischen Nutzer und Computer.

Verhältnis von CLI zur Shell

Shell bedeutet Schale und bezeichnet bildlich die Außenhaut eines Computers, über die der Nutzer mit dem Kern des Betriebssystems kommunizieren kann. Eine solche Shell kann sich auf ein GUI stützen, aber auch auf ein CLI. Streng genommen ist das CLI nur die Schnittstelle, praktisch lässt sich diese Schnittstelle mit der ganzen Shell identifizieren. Diese Shell steht wie andere Anwendungsprogramme mit dem Kern des Betriebssystems in Verbindung. Technisch ist diese Verbindung durch API oder Application Programming Interfaces umgesetzt. Weil alle Shells sich auf diese API stützen, kann ein Nutzer auf einem Computer verschiedene Shells installieren.

Die Herkunft des CLIs

Ein Kommandozeileninterpreter war die erste Form der Kommunikation mit einem Computer. GUIs stehen erst seit den siebziger Jahren zur Verfügung. Es ist kein Zufall, dass der Computer erst mit GUIs massentauglich geworden ist. In den fünfziger bis siebziger Jahren erfolgte eine Eingabe nur über eine Tastatur. Ergebnisse gab der Computer über einen Bildschirm oder Drucker aus, beide Geräte konnten aber nur Zeilen von Zeichen ausgeben.

Nutzung eines CLIs

CLI

Wie funktioniert die CLI?

Eine Shell zeigt dem Nutzer nach ihrem Start einen Prompt auf dem Bildschirm an. Das bedeutet, dass der Computer bereit ist für das Entgegennehmen von Befehlen des Nutzers. Der Nutzer gibt einen Befehl ein und drückt die Returntaste zur Bestätigung. Nimmt die Ausführung des Befehls etwas Zeit in Anspruch, was durchaus der Fall sein kann, erscheint der Prompt erst nach dem Abschluss der Ausführung. Dazu wird das Ergebnis angezeigt, was aber nicht bei allen Befehlen erforderlich ist. Der Kommandozeileninterpreter wird oft als Fenster in einer grafischen Benutzeroberfläche angezeigt werden. Dann sind Unterschiede bei der Eingabe besonders deutlich erkennbar. In einem Kommandozeileninterpreter ist es beispielsweise nicht möglich, mit der Maus den Cursor an einem beliebigen Punkt zu platzieren. Um den Cursor zu bewegen, können im CLI nur die dafür vorgesehenen Tasten benützt werden.

Mehr zum Thema:
Berühmt, berüchtigt, digital - was sind eigentlich Hacker?

Eigenschaften eines Kommandozeileninterpreters

Der Vorteil einer grafischen Benutzeroberfläche ist selbsterklärend, denn für ihre Benutzung muss der Nutzer keine Befehle kennen. Es reicht aus, den Cursor mit der Maus zu bewegen und die Ausführung von Programmen mit Klicks zu starten oder damit Menüs zu öffnen. Genau diese Eigenschaften ermöglichen eine Computerbenützung durch technische Laien. Im Gegensatz dazu erfordert die Benützung eines Kommandozeileninterpreters die Kenntnis der entsprechenden Befehle. Der Nutzer muss diese schließlich eintippen, damit der Computer seine Anweisungen ausführen kann. Die Syntax dieser Befehle ist allerdings über lange Zeit stabil. Lernt man sie also einmal, kann man erwarten, dass diese Befehle praktisch unbegrenzt verwendbar bleiben werden.

Es besteht kein Grund für die Entwickler, diese Syntax zu ändern, sie wird höchstens für neue Befehle erweitert. Die Benützung eines CLI besitzt aber auch zahlreiche Vorteile. In dieser Form der Befehlseingabe stehen viel mehr Parameter zur Verfügung, die sich in einem GUI nicht anzeigen lassen. Ist ein Kommandozeileninterpreter nur etwas für fortgeschrittene Computerbenutzer? An sich nicht, denn schon die ersten Schritte mit einem CLI lassen sich relativ schnell lernen und sind keineswegs besonders schwierig oder abstrakt. Einen Punkt sollte man aber nicht ausser Acht lassen. Der Vorteil der viel größeren Flexibilität bringt auch eine größere Verantwortung des Nutzers mit sich.

CLI

Welche Fehler sind möglich?

Eine GUI ist gerade so gestaltet, dass ein Nutzer kaum Schaden an seinem System anrichten kann. Mit einem CLI ist es hingegen sehr einfach, unabsichtlich Dateien zu löschen. Diese befinden sich dann auch nicht in einem Trash, aus dem sie wiederhergestellt werden können. Sie sind endgültig verloren. Auch unerfahrene Nutzer müssen sich dieser Möglichkeiten bewusst sein und die Eingaben in einen Kommandozeileninterpreter entsprechend sorgfältig tätigen. Um Daten entsprechend sichern zu können, bietet sich natürlich auch ein virtueller Datenraum an.

Beispiele für CLIs

In Microsoft Windows war längere Zeit kein guter Kommandozeileninterpreter verfügbar. Das ist auch nachvollziehbar, denn schon die Bezeichnung Windows lässt erkennen, dass es bei diesem Betriebssystem eben besonders darum ging, dem Nutzer ein GUI bereitzustellen. Seit Windows XP gibt es aber mit dem Powershell einen CLI. In MacOS ist mit dem Programm Terminal ein Kommandozeileninterpreter enthalten und im Verzeichnis Utilities abrufbar. Von Anbeginn spielten CLIs in unixoiden Systemen eine zentrale Rolle. Frühe Shells sind der Bourne-Shell und der Korn-Shell, beide nach ihren Programmierern benannt. Später kam der heute sehr weit verbreitete bash hinzu. Diese vier Buchstaben stehen für „Bourne-again shell“ als sprachlichen Witz. Der bash kombiniert die Fähigkeiten des Bourne-Shells und Korn-Shells.

Mehr zum Thema:
Was ist GUI?

Anwendungen für CLIs

CLI

Welche Befehle lassen sich zusammenfassen?

Mit einem Kommandozeileninterpreter kann man Programme im Hintergrund starten und ablaufen lassen. Mehrere Befehle lassen sich auf einer Zeile mit einer sogenannten Pipeline verbinden und nacheinander ausführen. In einem CLI ist es auch möglich, Befehle in ganze Programme zusammenzufassen. Manche Funktionen sind nur über den CLI überhaupt zugänglich. Es gibt versteckte Dateien, die ein GUI nicht anzeigt. Über den CLI kann man Befehle für alle Dateien mit bestimmten Eigenschaften ausführen lassen, also zum Beispiel für alle mit einer bestimmten Dateiendung. Nicht zuletzt muss ein CLI zum Einsatz kommen, wenn sich die GUI aufgrund technischer Probleme nicht starten lässt. Für Systemadministratoren ist ein CLI praktisch unabdingbar.

Beispiele für Befehle im CLI bash

whoami gibt den Namen des eingeloggten Benutzers aus

  • ls listet alle Dateien im Verzeichnis
  • ls -a listet alle Dateien inklusive der üblicherweise versteckten auf.