Kommandozeile

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 4. Juli 2016 um 15:40 Uhr durch Grixlkraxl (Diskussion | Beiträge) (→‎Einleitung: +Redundanz). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Die Kommandozeile, Befehlszeile oder aus dem Englischen command-line interface, kurz CLI, oft auch als Konsole oder Terminal bezeichnet, ist ein Eingabebereich (interface) für die Steuerung einer Software, der typischerweise (aber nicht zwingend) im Textmodus abläuft. Je nach Betriebssystem wird die Kommandozeile von einer Shell oder einem Kommandozeilen- oder Befehlsinterpreter (im Englischen ebenfalls mit CLI für command-line interpreter abgekürzt; die Abkürzung hat also zwei Bedeutungen) ausgewertet und die entsprechende Funktion ausgeführt.

Die Kommandos oder Befehle werden als Zeichenketten über die Tastatur eingegeben, oftmals sind diese aus dem Englischen entnommen, teilweise als Abkürzung wie etwa bei MS-DOS der Befehl dir für directory oder bei Unix-Systemen der Befehl ls für list directory.

Die Ausführung der Befehle wird meist direkt aus der Zeile durch zusätzlich angegebene Parameter gesteuert (Kommandozeilenparameter). Programme, die den Benutzer interaktiv befragen, sind auf dieser Ebene eher unüblich. Ein Kommandozeilenprogramm läuft somit typischerweise mit den gegebenen Parametern einmal ab, bevor eine erneute Befehlseingabe möglich ist. Ein automatisiertes Abarbeiten mehrerer Kommandos nennt man Stapelverarbeitung (batch).

Erscheinungsformen

KDE-Konsole nach dem Ausführen des Befehls ls -lh

Ein Kommandozeileninterpreter, wie etwa bash, csh, zsh, Windows PowerShell, cmd.exe oder COMMAND.COM, kann typischerweise auch eine Kommandozeile bereitstellen.

Kommandozeilen sind auch in nicht reinen CLI-Anwendungen integriert. Bei der mathematischen Software Matlab ist sie beispielsweise ein wichtiger Teil der ansonsten grafischen Oberfläche. Auch Dateimanager wie der Midnight Commander haben meist eine Shell integriert, gehören aber de facto in die Kategorie der zeichenorientierten Benutzerschnittstellen. Auch Debugger bieten häufig eine Kombination von Kommandozeile und anderen Elementen zu ihrer Steuerung an. Spezielle Varianten der Kommandozeile sind in FTP-Client-Programmen für den Textmodus zu finden. Manche Telnet-Clients bieten neben der eigentlichen Funktionalität zusätzliche eine Kommandozeile zur Steuerung an, die dabei typisch über eine sogenannte Escape-Tastenkombination aufrufbar ist.

Spiele aus dem PC-Bereich, oder genauer, deren zugrundeliegenden Spiel-Engines, bieten oft Kommandozeilen an. Üblicherweise ausgeblendet und für das eigentliche Spielen nicht notwendig, ermöglichen sie eine alternative Konfiguration oder auch tiefgreifendere Beeinflussung des Spiels. Sie vereinfacht in der Entwicklung das Testen von Programmcode und lässt gezielt einzelne Zustände zur Fehlersuche erreichen, wie auch die Eingabe von Cheat-Befehlen durch Spieler. Ein Beispiel für eine solche Konsole ist in der Quake-Engine enthalten.

Für X11 gibt es eine Reihe von grafischen Terminalemulationen wie zum Beispiel xterm, aterm, Eterm oder rxvt. Der Unix-Desktopumgebung Gnome liegt das Gnome Terminal bei, bei KDE gibt es die Konsole. Diese Terminalemulatoren bieten selbst noch keine Kommandozeile an, in ihnen läuft vielmehr einer der oben erwähnten Kommandozeileninterpreter wie bash etc.

Eingabevorgang

Technisch gesehen ist die Kommandozeile eine durch ein Programm angebotene Eingabezeile, die mit einem gewissen Umfang an Editorfähigkeiten ausgestattet ist. Die Eingabe wird mit dem Betätigen der Eingabetaste beendet. Diese bewirkt das Senden des Carriage-Return- oder Linefeed-Zeichens an das Programm, das die Eingabezeile geöffnet hat. Als Reaktion wird der vom Benutzer eingegebene Kommandozeilentext interpretiert; der Kommandozeileninterpreter führt bei fehlerfreier Erkennung der Eingabe die entsprechenden Kommandos aus, die ihre eventuellen Ausgaben direkt anschließend auf den Bildschirm bringen. Danach erscheint eine erneute Prompt-Sequenz, die signalisiert, dass die Eingabe einer weiteren Kommandozeile möglich ist.

Eingabeaufforderung

Eingabeaufforderung (auch Prompt, engl. ‚abfragen, auffordern‘) ist ein Begriff aus dem IT-Bereich und bezeichnet eine Markierung auf der Kommandozeile, die auf die Stelle verweist, an der man Kommandozeilenbefehle eingeben kann. Dieser Prompt wird typischerweise durch den Kommandozeileninterpreter ausgegeben.

Üblicherweise zeigt der Prompt zusätzlich diverse Informationen an, zum Beispiel den Namen des aktuellen Benutzers oder in welchem Verzeichnis man sich befindet. Ist die Eingabeaufforderung zu sehen, sollte eine Eingabe in den Kommandozeileninterpreter möglich sein. Führt der Rechner einen Befehl bzw. ein Computerprogramm aus, dann erscheint die Eingabeaufforderung des Kommandozeileninterpreters erst wieder, wenn dieses Programm beendet ist (oder das Programm im Hintergrund weiter ausgeführt wird).

Eingabeaufforderung unter Microsoft-Betriebssystemen

NT-Eingabekonsole

Die klassische MS-DOS-Eingabeaufforderung hat folgendes Aussehen:

C:\>

Der erste Buchstabe einschließlich Doppelpunkt ist die Kennung für den aktuellen logischen Datenträger. Darauf folgt der Pfad zum aktuellen Verzeichnis auf diesem Datenträger. Mit diesem Wert werden alle Programme gestartet. Als Abschluss des Prompts wird das Größer-als-Zeichen verwendet.

Der Prompt passt sich an das aktuelle Verzeichnis an: Tippt man an obiger Stelle CD Ordner (CD … change directory), so wechselt der Interpreter in das Unterverzeichnis C:\Ordner, und teilt das mit:

C:\>CD Ordner

C:\Ordner>

Der Prompt lässt sich per DOS-Befehl oder Umgebungsvariable (SET PROMPT=) anpassen, erweitern oder verkürzen. Durch die Angabe von ANSI-Sequenzen und speziellen Steuercodes sind sogar Farbgebungen, Zeitangaben und andere Dinge möglich.[1]

Unter Windows NT und den darauf basierenden aktuellen Windows-Versionen wurde die Eingabeaufforderung mit verschiedenen internen und externen Befehlen erweitert. Diese ermöglichen umfangreichere Batchdateien als unter purem MS-DOS möglich war. Statt des DOS-Kommandozeileninterpreters COMMAND.COM benutzen die nicht mehr auf DOS basierenden Windows-NT-Systeme außerdem die Neuentwicklung cmd.exe, die zwar eine weitgehend zu COMMAND.COM kompatible, aber nicht die gleiche Oberfläche bereitstellt.

Eingabeaufforderung unter Unix-Systemen

Die bash-Shell unter Ubuntu 10.04

Beispiel:

michael@saturn:~$

Die Eingabeaufforderung zeigt zum Beispiel den Benutzernamen (hier: „michael“) und den Hostnamen (hier: „saturn“) an. Die Tilde („~“) zeigt dabei das Heimatverzeichnis des Benutzers an. Als Konvention hat sich unter vielen Unix- und Linux-Varianten etabliert, in der Eingabeaufforderung des Systemadministrators ein # zu verwenden, also z. B. root@saturn:/etc#, als normaler Anwender (z. B. „johanna“) verwendet man ein $, also etwa johanna@saturn:/etc$.

Das Ändern der Eingabeaufforderung ist abhängig vom verwendeten Kommandozeileninterpreter: In der tcsh dient dazu das Kommando set prompt. In der bash setzt man die Eingabeaufforderung, indem man die Kommandozeileninterpretervariable PS1 (bzw. PS2, PS3, PS4) beispielsweise folgendermaßen setzt: PS1="\u@\h\w\$". Diese Eingabeaufforderung zeigt den Benutzernamen (\u), den Hostnamen (\h) und das aktuelle Arbeitsverzeichnis (\w) an. Die manpage des Kommandozeileninterpreters erklärt weitere Möglichkeiten. Abhängig vom verwendeten Terminal ist es auch möglich, einen farbigen Prompt einzustellen. Dies funktioniert beispielsweise in Xterms mit Farbunterstützung, dem KDE-Programm Konsole oder dem Gnome-Terminalprogramm.

Sonstige und Alternativen

Einen Prompt kann man auch bei CP/M-Systemen finden (typischerweise A> etc.), genauso beim Boot-Loader LILO oder im EFI-System. Modems mit dem AT-Befehlssatz haben dagegen typischerweise keinen Prompt. Sie arbeiten als serielles Gerät dennoch zeilenorientiert. Das Ende des vorigen Befehls wird durch die Zeichenfolge OK angezeigt.

Bei Heimcomputern waren die Eingabekonzepte durchweg unterschiedlich, so nutzte beispielsweise der Commodore 64 typischerweise keinen Prompt auf seiner Systemoberfläche, sondern bot eine Art Vollbild-Editor und Interpreter an, der stattdessen die ausgeführten Befehle mit der Zeichenfolge READY. abschloss und den Cursor an den Anfang der darauf folgenden leeren Zeile setzte. Dies schließt natürlich nicht aus, dass bestimmte Anwendungsprogramme oder Systemerweiterungen dennoch eine Eingabeaufforderung verwenden.

Tastenkombinationen

Im Vergleich der Shells dreier wichtiger Betriebssysteme

Aktion Windows (cmd.exe) Unix/Linux/Mac OS X (Bash) Unix/Linux/Mac OS X (POSIX-Shell)
durch bereits ausgeführte Befehle scrollen / / ESC K/ESC J
Signal Ende der Datei Strg+Z Strg+D
Aktuellen Befehl/Eingabe abbrechen Strg+C Strg+C Strg+C
linkes Wort löschen Strg+W
rechtes Wort löschen Alt+D
links vom Cursor löschen Backspace Strg+U
rechts vom Cursor löschen Entf Strg+K
Ein Wort nach links bewegen (rückwärts) Strg+ Alt+B
Ein Wort nach rechts bewegen (vorwärts) Strg+ Alt+F
zum Zeilenanfang springen Pos1 Strg+A
zum Zeilenende springen End Strg+E
Reverse search of history F7 Strg+R
Aktuelle Aufgabe in den Hintergrund setzen Strg+Z
Autovervollständigen des Befehls/Dateinamen Tab ⇆ (sofern aktiviert) Tab ⇆ (normalerweise doppelt) Esc ⇆ (normalerweise doppelt)
Neuerungen

Ab der Version Windows 10 ist es möglich die Tastenkombinationen [strg] + [c] zum Kopieren und [strg] + [v] zum Einfügen zu Nutzen. Vorher war das Einfügen von der Zwischenablage nur mit einem "Rechtsklick" -> "Einfügen" möglich.

Siehe auch

Weblinks

Wiktionary: prompt – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Wikibooks: Wichtige DOS-Kommandos – Lern- und Lehrmaterialien

Einzelnachweise

  1. Rob van der Woude: Enhancing your PROMPT with ANSI sequences. In: Rob van der Woude's Scripting Pages → Batch Files. 7. Februar 2009, abgerufen am 19. März 2009 (engl.).