Was ist die Befehlszeile?
Terminal, Shell, Eingabeaufforderung und Befehl
Das dunkle Fenster mit dem blinkenden Cursor ist nicht eine einzige Sache. Es sind mindestens vier Dinge übereinander. Fast jede verwirrende Fehlermeldung entsteht dadurch, dass du nicht weißt, welches davon gerade mit dir spricht.
Hier ist ein vollständiger Austausch:
PS C:\Users\Sam\Documents> python report.py
Report ready
PS C:\Users\Sam\Documents>
Das sind drei Zeilen auf dem Bildschirm, und nur eine davon wurde getippt. Das erste und letzte PS C:\Users\Sam\Documents> sind Eingabeaufforderungen. Die Shell gibt sie aus, um ihre Bereitschaft zu zeigen. python report.py wurde getippt. Report ready kam aus dem Programm.
Verfolge den Text durch die Schichten
Eine Terminalanwendung zeichnet das Fenster, nimmt deine Tastenanschläge entgegen und zeigt Text an. Windows Terminal, Terminal unter macOS, GNOME Terminal unter Linux.
Darin läuft eine Shell. Sie liest deine Eingabe, ermittelt deren Struktur und entscheidet, was ausgeführt wird. PowerShell ist die Windows-Shell dieses Kurses. Bash und zsh sind unter Linux und macOS üblich.
Eine Eingabeaufforderung, auch Prompt genannt, ist Text, mit dem die Shell ihre Bereitschaft zeigt. Oft das Arbeitsverzeichnis, manchmal ein Benutzername, meistens mit
>oder$am Ende.Ein Befehl ist das, was du abschickst. Er bittet die Shell entweder um etwas Eingebautes oder darum, ein anderes Programm zu starten.
Ein Programm erledigt die Arbeit und erzeugt Ausgabe oder einen Fehler. Das Terminal zeigt beides an.

Die oberen beiden Schichten lassen sich austauschen. Das zeigt am schnellsten, dass sie getrennt sind. Windows Terminal kann PowerShell, Command Prompt und eine Linux-Shell gleichzeitig in drei Tabs beherbergen. Ein macOS-Terminal kann zsh oder eine andere installierte Shell beherbergen. Ändere die Schrift oder das Farbschema des Terminals, und kein einziger Befehl verhält sich anders. Du hast das Fenster geändert, nicht die Sprache.
Manche Produkte bündeln die Schichten so eng, dass sie wie eine Sache aussehen. Der Unterschied bleibt: Die Anwendung ist für das Fenster zuständig. Die Shell ist für die Eingabeaufforderung zuständig und entscheidet, was dein Text bedeutet.
Du änderst die Schriftgröße in Windows Terminal. PowerShell-Befehle verhalten sich aber genau wie zuvor. Warum?
Wisse, was du nicht tippen sollst
Dokumentation zeigt Eingabeaufforderungen, um Kontext zu geben:
$ python report.py
Das $ bedeutet „Tippe den Rest in eine Unix-artige Shell“. Es gehört nicht zum Befehl. Wenn du es mittippst, bekommst du einen Fehler über einen Befehl namens $. Dasselbe gilt für PS C:\Users\Sam> in einem PowerShell-Beispiel. Tippe nur, was nach der Eingabeaufforderung steht.
Wenn ein Befehl fertig ist, erscheint die nächste Eingabeaufforderung. Kehrt keine zurück, läuft das Programm noch, wartet auf Eingaben oder hängt fest. Ctrl+C bittet viele Programme anzuhalten. Das solltest du jetzt schon kennen, bevor du es brauchst. Es macht nichts rückgängig, was bereits geschehen ist.
Lies die drei Textarten
Im Ablauf oben zeigt der Prompttext die Bereitschaft der Shell. python report.py ist der abgeschickte Befehl, und Report ready ist Programmausgabe. Diese Rollen auseinanderzuhalten reicht vorerst. Wenn später an einer dieser Stellen ein Fehler auftaucht, weißt du, welche Schicht gerade die Kontrolle hatte.
Ein Befehl läuft, und in der nächsten Zeile steht Report ready. Welche Schicht hat diese Wörter erzeugt?
Du kannst alles rund um einen Befehl zuordnen. Als Nächstes kommt der Befehl selbst: Welches Wort ist der Name, welche Teile sind Argumente, und wo tut ein Tippfehler weh?