Kommandozeile: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 33: Zeile 33:
=== Exit-Status ===
=== Exit-Status ===
== Anwendungen ==
== Anwendungen ==
=== Betriebssysteme ===
Kommandozeilen waren historisch die ersten Methoden zur Interaktion mit Betriebssystemen.<ref name="Kumar-HCI" /> Sie finden sich daher auch auf [[Terminal (Computer)|Terminals]] oder [[Terminalemulation]]en.
* Bei vielen [[Betriebssystem]]en wird die Kommandozeile von einer [[Shell (Betriebssystem)|Shell]] oder einem [[Kommandozeileninterpreter]] (auch ''Befehlsinterpreter'') ausgewertet und die entsprechende Funktion ausgeführt.
* Kommandozeilen benötigen lediglich den [[Textmodus]], sind bei modernen Betriebssystemen jedoch auch im Grafikmodus verfügbar, etwa als Terminalemulation.
Die Ausführung der Befehle wird meist direkt aus der Zeile durch zusätzlich angegebene [[Parameter (Informatik)|Parameter]] gesteuert (''[[Kommandozeilenparameter]]'').
* Programme, die den Benutzer [[interaktiv]] befragen, sind auf dieser Ebene eher unüblich, aber möglich (im Textmodus beispielsweise über eine [[zeichenorientierte Benutzerschnittstelle]]).
* Ein Kommandozeilenprogramm läuft somit typischerweise mit den gegebenen Parametern einmal ab, bevor eine erneute Befehlseingabe möglich ist.
* Ein automatisiertes Abarbeiten mehrerer Kommandos wird auf [[Unixoides System|Unix-artigen]] Betriebssystemen als {{lang|en|[[Unix-Shell|Shell]]-[[script (Unix)|Script]]}} bezeichnet.
* Unter [[CP/M]] und unter [[Disk Operating System|DOS]] ist die Bezeichnung dafür [[Stapelverarbeitung]] (''{{lang|en|batch}}'').
* Die Dateien, die die Kommandos enthalten, heißen entsprechend [[Stapelverarbeitungsdatei]]en.
=== Interpretersprachen ===
Bei vielen [[Skriptsprache]]n (Skripte verarbeitende [[Programmiersprache]]n) gibt es neben dem Skriptmodus (vgl. [[Shellskript]]) auch einen interaktiven Modus.
* Wird der [[Interpreter]] ohne einen Skript als Eingabe gestartet, so stellt dieser eine Kommandozeile (meist mit [[Prompt]]), in der Eingaben unmittelbar Zeile für Zeile verarbeitet werden.
Interpreter mit interaktivem Modus sind z.
* B. [[BASIC]], [[Perl (Programmiersprache)|Perl]], [[PHP]], [[Python (Programmiersprache)|Python]].
=== Anwendungsprogramme ===
Einige [[Anwendungssoftware|Anwendungsprogramme]] bieten Kommandozeilen, teilweise alternativ zu einer [[Grafische Benutzeroberfläche|grafischen Benutzeroberfläche]].
* Bei der mathematischen Software [[Matlab]] ist sie beispielsweise ein wichtiger Teil der ansonsten grafischen Oberfläche.
* Auch bei [[CAD]]-Programmen wie [[AutoCAD]] ist dies der Fall.
* Einige [[Dateimanager]] (die de facto [[Zeichenorientierte Benutzerschnittstelle|zeichenorientierten Benutzerschnittstellen]] darstellen), beispielsweise der [[Norton Commander]] und dessen zahlreiche Clones wie der [[Midnight Commander]], bieten Zugriff auf die Shell, in der sie laufen.
* 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-Sequenz|Escape]]-Tastenkombination aufrufbar ist.
=== Computerspiele ===
[[Computerspiel]]e aus dem PC-Bereich, genauergesagt deren zugrundeliegenden [[Spiel-Engine]]s, 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 (Computerspiel)|Cheat]]-Befehlen durch Spieler.
* Ein Beispiel für eine solche ''Konsole'' ist die [[Quake-Engine]].
Bei [[Textadventure]]s ist die Kommandozeile die alleinige Schnittstelle zwischen Spieler und Spiel.
* Um sich im Spiel zu bewegen und Aktionen auszulösen, müssen entsprechende Befehle eingegeben werden, wie z. B. <code>öffne tür</code>, <code>norden</code>, <code>nimm fackel</code>.
<!--
!!! ALT:
!!! Überarbeiten, auslagern, kürzen, löschen
!!!
== Erscheinungsformen ==
[[Datei:Konsole kl.png|mini|KDE-Konsole nach dem Ausführen des Befehls <code>ls -lh</code>]]
Ein Kommandozeileninterpreter, wie etwa [[Unix-Shell#Die Bourne-Again-Shell|bash]], [[C-Shell|csh]], [[zsh]], [[Windows PowerShell]], [[cmd.exe]] oder [[COMMAND.COM]], kann typischerweise auch eine Kommandozeile bereitstellen.
Kommandozeilen sind auch in nicht reinen CLI-Anwendungen integriert.
Für [[X11]] gibt es eine Reihe von grafischen [[Terminalemulation]]en wie zum Beispiel [[xterm]], aterm, Eterm oder [[rxvt]].
* Der Unix-[[Desktop (grafische Benutzeroberfläche)|Desktopumgebung]] [[Gnome]] liegt das [[Gnome Terminal]] bei, bei [[KDE]] gibt es die [[Konsole (KDE)|Konsole]].
* Diese Terminalemulatoren bieten selbst noch keine Kommandozeile an, in ihnen läuft vielmehr einer der oben erwähnten Kommandozeileninterpreter wie bash etc.
== Eingabeaufforderung ==
'''Eingabeaufforderung''' (auch '''Prompt''', engl. ‚abfragen, auffordern‘) ist ein Begriff aus dem [[Informationstechnik|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 [[Information]]en an, zum Beispiel den Namen des aktuellen [[Benutzer]]s 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 ===
[[Datei:Command Prompt on Windows XP (German).gif|mini|NT-[[Eingabekonsole]]]]
Die klassische [[MS-DOS]]-Eingabeaufforderung nutzt einen [[Prompt]] und 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 <code>CD Ordner</code> (CD … ''change directory''), so wechselt der Interpreter in das Unterverzeichnis <code>C:\Ordner</code>, und teilt das mit:
<span style="color:#A0A0A0;">C:\></span><span style="color:#A000A0;">CD Ordner</span>
C:\Ordner>
Der Prompt lässt sich per [[DOS]]-Befehl oder [[Umgebungsvariable]] (<kbd>SET PROMPT=</kbd>) anpassen, erweitern oder verkürzen.
* Durch die Angabe von [[ANSI-Escapesequenz|ANSI-Sequenzen]] und speziellen Steuercodes sind sogar Farbgebungen, Zeitangaben und andere Dinge möglich.<ref>{{Internetquelle |autor=Rob van der Woude |url=http://www.robvanderwoude.com/prompt.php |titel=Enhancing your PROMPT with ANSI sequences |werk=Rob van der Woude’s Scripting Pages → Batch Files |datum=2009-02-07 |sprache=en |abruf=2009-03-19}}</ref>
Unter [[Microsoft Windows NT|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-[[Kommandozeileninterpreter]]s [[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.
=== {{Anker|Unix}}Eingabeaufforderung unter Unix-Systemen ===
[[Datei:Ubuntu-lucid-bash.png|mini|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 [[Benutzerverzeichnis|Heimatverzeichnis]] des Benutzers an.
* Als Konvention hat sich unter vielen [[Unix]]- und [[Linux]]-Varianten etabliert, in der Eingabeaufforderung des Systemadministrators ein <code>#</code> zu verwenden, also z.B. <code>[[Root-Account|root]]@saturn:/etc#</code>, als normaler Anwender (z.B. „johanna“) verwendet man ein <code>$</code>, also etwa <code>johanna@saturn:/etc$</code>.
Das Ändern der Eingabeaufforderung ist abhängig vom verwendeten Kommandozeileninterpreter: In der [[tcsh]] dient dazu das Kommando <kbd>set prompt</kbd>.
* In der [[Bourne-again shell|bash]] setzt man die Eingabeaufforderung, indem man die Kommandozeileninterpretervariable <code>PS1</code> (bzw. <code>PS2, PS3, PS4</code>) beispielsweise folgendermaßen setzt: <code>PS1="\u@\h\w\$"</code>.
* Diese Eingabeaufforderung zeigt den Benutzernamen (<code>\u</code>), den Hostnamen (<code>\h</code>) und das aktuelle Arbeitsverzeichnis (<code>\w</code>) an.
* Die [[manpage]] des Kommandozeileninterpreters erklärt weitere Möglichkeiten.
* Abhängig vom verwendeten [[Terminal (Computer)|Terminal]] ist es auch möglich, einen farbigen Prompt einzustellen.
* Dies funktioniert beispielsweise in [[Xterm]]s mit Farbunterstützung, dem KDE-Programm ''[[Konsole (KDE)|Konsole]]'' oder dem [[Gnome]]-Terminalprogramm.
=== Sonstige und Alternativen ===
Einen Prompt kann man auch bei [[CP/M]]-Systemen finden (typischerweise <code>A></code> etc.), genauso beim [[Boot-Loader]] [[Linux Loader|LILO]] oder im [[Extensible Firmware Interface|EFI]]-System. [[Modem]]s mit dem [[AT-Befehlssatz]] haben dagegen typischerweise keinen Prompt.
* Sie arbeiten als [[RS-232|serielles]] Gerät dennoch zeilenorientiert.
* Das Ende des vorigen Befehls wird durch die Zeichenfolge ''OK'' angezeigt.
Bei [[Heimcomputer]]n 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
{| class="wikitable"
!Aktion
!Windows ([[cmd.exe]])
!Unix/Linux/Mac OS X ([[Bash (Shell)|Bash]])
!Unix/Linux/Mac OS X ([[Portable Operating System Interface|POSIX]]-Shell)
|-
!durch bereits ausgeführte Befehle scrollen
|{{Taste|↑}}/{{Taste|↓}}
|{{Taste|↑}}/{{Taste|↓}}
|{{Taste|ESC}} {{Taste|K}}/{{Taste|ESC}} {{Taste|J}}
|-
!Signal ''Ende der Datei''
|{{Taste|Strg}}+{{Taste|Z}}
|{{Taste|Strg}}+{{Taste|D}}
|
|-
!Aktuellen Befehl/Eingabe abbrechen
|{{Taste|Strg}}+{{Taste|C}}
|{{Taste|Strg}}+{{Taste|C}}
|{{Taste|Strg}}+{{Taste|C}}
|-
!linkes Wort löschen
|
|{{Taste|Strg}}+{{Taste|W}}
|
|-
!rechtes Wort löschen
|
|{{Taste|Alt}}+{{Taste|D}}
|
|-
!links vom Cursor löschen
|{{Taste|Backspace}}
|{{Taste|Strg}}+{{Taste|U}}
|
|-
!rechts vom Cursor löschen
|{{Taste|Entf}}
|{{Taste|Strg}}+{{Taste|K}}
|
|-
!Ein Wort nach links bewegen (rückwärts)
|{{Taste|Strg}}+{{Taste|←}}
|{{Taste|Alt}}+{{Taste|B}}
|
|-
!Ein Wort nach rechts bewegen (vorwärts)
|{{Taste|Strg}}+{{Taste|→}}
|{{Taste|Alt}}+{{Taste|F}}
|
|-
!zum Zeilenanfang springen
|{{Taste|Pos1}}
|{{Taste|Strg}}+{{Taste|A}}
|
|-
!zum Zeilenende springen
|{{Taste|End}}
|{{Taste|Strg}}+{{Taste|E}}
|
|-
!interaktives Durchsuchen der Historie
|{{Taste|F7}}
|{{Taste|Strg}}+{{Taste|R}}
|
|-
!Aktuelle Aufgabe in den Hintergrund setzen
|
|{{Taste|Strg}}+{{Taste|Z}}
|
|-
!Autovervollständigen des Befehls/Dateinamen
|{{Taste|Tab ⇆}} (sofern aktiviert)
|{{Taste|Tab ⇆}} (normalerweise doppelt)
|{{Taste|Esc ⇆}} (normalerweise doppelt)
|}
; Neuerungen
Ab der Version [[Windows 10]] ist es möglich, auch in der Windows-Eingabeaufforderung cmd.exe die Tastenkombinationen {{Taste|Strg}}+{{Taste|c}} zum Kopieren und {{Taste|Strg}}+{{Taste|v}} zum Einfügen zu nutzen.
* Vorher war das Einfügen von der [[Zwischenablage]] nur mit einem „Rechtsklick“ → „Einfügen“ oder der Tastenkombination {{Taste|Shift}}+{{Taste|Einfg}} möglich.
-->
=== Fehlerbehebung ===
=== Fehlerbehebung ===
== Konfiguration ==
== Konfiguration ==
=== Dateien ===
=== Dateien ===

Version vom 3. April 2023, 18:30 Uhr

topic - Kurzbeschreibung

Beschreibung

Die Kommandozeile oder Befehlszeile ist ein Teil eines Computerprogramms, das eine Textzeile als Eingabe vom Benutzer entgegennimmt und im Kontext als Kommando interpretiert.[1] Im Englischen wird sie als Vorlage:Lang oder Vorlage:Lang (Eingabeaufforderung) bezeichnet, denn sehr oft wird ein Prompt zur Kennzeichnung verwendet.

Die englische Bezeichnung Vorlage:Lang, kurz CLI, bezeichnet die Verwendung von Kommandozeilen für die Interaktion mit einem Benutzer.

Ein command line interface (CLI) ist die einfachste Methode zur Interaktion eines Menschen (Human) mit einem Computer, und somit eine Möglichkeit der Mensch-Computer-Interaktion, ' (HCI).[1] Dabei werden dem Computer Textzeilen entweder direkt über die Tastatur oder in Form eines Scripts übergeben, die dieser anschließend ausführt.

Technik

Die Eingabe folgt einer Syntax, die meist aus einem Kommando und dazugehörigen Parametern besteht.

Die Kommandos werden dabei von einem Interpreter ausgeführt, wobei jedes Kommando unterschiedliche Parameter entgegennehmen kann, die die Ausführung beeinflussen.

  • Es gibt auch mehrzeilige Kommandos und Kommandoblöcke (die sich über mehrere Zeilen erstrecken), etwa bei Schleifen.

Zur Kennzeichnung, dass bzw. wo ein Kommando eingegeben werden kann, signalisiert ein Vorlage:Lang, dass das Programm auf eine Eingabe wartet oder dafür bereit ist.

  • Der Prompt signalisiert damit dem Benutzer, dass der Computer oder das Programm bereit ist und auf eine Eingabe wartet, ansonsten jedoch untätig ist (idle).
  • Umgekehrt ist bei vielen Kommandozeilen der Prompt während der Ausführung eines Kommandos nicht verfügbar und signalisiert somit das Gegenteil, also dass zu diesem Zeitpunkt kein Kommando ausgeführt werden kann.

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 einer spezifischen Taste beendet.
  • Bei PCs ist dies die Eingabetaste, die das Senden des Carriage-Return- und/oder Linefeed-Zeichens an das Programm bewirkt, das die Eingabezeile geöffnet hat.
  • Als Reaktion wird der vom Benutzer eingegebene Kommandozeilentext interpretiert; beispielsweise führt ein Kommandozeileninterpreter 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.

Installation

Syntax

Optionen

Parameter

Umgebungsvariablen

Exit-Status

Anwendungen

Betriebssysteme

Kommandozeilen waren historisch die ersten Methoden zur Interaktion mit Betriebssystemen.[1] Sie finden sich daher auch auf Terminals oder Terminalemulationen.

  • Bei vielen Betriebssystemen wird die Kommandozeile von einer Shell oder einem Kommandozeileninterpreter (auch Befehlsinterpreter) ausgewertet und die entsprechende Funktion ausgeführt.
  • Kommandozeilen benötigen lediglich den Textmodus, sind bei modernen Betriebssystemen jedoch auch im Grafikmodus verfügbar, etwa als Terminalemulation.

Die Ausführung der Befehle wird meist direkt aus der Zeile durch zusätzlich angegebene Parameter gesteuert (Kommandozeilenparameter).

Interpretersprachen

Bei vielen Skriptsprachen (Skripte verarbeitende Programmiersprachen) gibt es neben dem Skriptmodus (vgl. Shellskript) auch einen interaktiven Modus.

  • Wird der Interpreter ohne einen Skript als Eingabe gestartet, so stellt dieser eine Kommandozeile (meist mit Prompt), in der Eingaben unmittelbar Zeile für Zeile verarbeitet werden.

Interpreter mit interaktivem Modus sind z.

Anwendungsprogramme

Einige Anwendungsprogramme bieten Kommandozeilen, teilweise alternativ zu einer grafischen Benutzeroberfläche.

  • Bei der mathematischen Software Matlab ist sie beispielsweise ein wichtiger Teil der ansonsten grafischen Oberfläche.
  • Auch bei CAD-Programmen wie AutoCAD ist dies der Fall.
  • Einige Dateimanager (die de facto zeichenorientierten Benutzerschnittstellen darstellen), beispielsweise der Norton Commander und dessen zahlreiche Clones wie der Midnight Commander, bieten Zugriff auf die Shell, in der sie laufen.
  • 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.

Computerspiele

Computerspiele aus dem PC-Bereich, genauergesagt 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 die Quake-Engine.

Bei Textadventures ist die Kommandozeile die alleinige Schnittstelle zwischen Spieler und Spiel.

  • Um sich im Spiel zu bewegen und Aktionen auszulösen, müssen entsprechende Befehle eingegeben werden, wie z. B. öffne tür, norden, nimm fackel.


Fehlerbehebung

Konfiguration

Dateien

Sicherheit

Siehe auch

Unterseiten

Dokumentation

RFC

Man-Pages

Info-Pages

Links

Einzelnachweise

Projekt

Weblinks

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

TMP

Anwendung

Konfiguration

Dateien

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Siehe auch

Links

Projekt

Weblinks