Kapitel 7
Befehle, Konfiguration und Fehler
Deine Shell erkennen und Hilfe finden
Zwei Terminalfenster können gleich aussehen, während in jedem eine andere Shell deine Befehle liest. Das zählt, sobald du einer shellspezifischen Anleitung folgst. Ein Befehl, eine Option oder eine Hilfeseite, die in der einen funktioniert, existiert in der anderen vielleicht gar nicht.
Bevor du dich also auf irgendeine Tippanweisung verlässt: Finde heraus, was tatsächlich läuft. Das Terminal neben dieser Lektion folgt deiner Kontoeinstellung: Windows öffnet PowerShell Core, macOS und Linux öffnen Bash. Dieselbe Beobachtung funktioniert im eigenen Terminal, auch wenn dessen Voreinstellung anders ist.
Lies die Sitzung, nicht die Einstellung
Bitte die Shell, den Namen auszugeben, mit dem sie gestartet wurde. In der gehosteten Lektion meldet das Bash. Auf deinem eigenen Mac kann es zsh sein:
echo $0
In einem interaktiven Terminal enthält $0 den Namen der aktuellen Shell. Du siehst bash, zsh oder etwas Ähnliches. Ein Ergebnis wie -zsh bedeutet weiterhin zsh. Der führende Bindestrich kennzeichnet sie nur als Login-Shell.
Bitte die Shell, den Namen auszugeben, mit dem sie gestartet wurde. In der gehosteten Lektion meldet das Bash:
echo $0
In einem interaktiven Terminal enthält $0 den Namen der aktuellen Shell. Du siehst bash, zsh oder etwas Ähnliches. Ein Ergebnis wie -bash bedeutet weiterhin Bash. Der führende Bindestrich kennzeichnet sie nur als Login-Shell.
Bitte PowerShell, sich zu beschreiben:
$PSVersionTable.PSVersion
Eine zurückgegebene Versionsangabe bestätigt, dass PowerShell deine Befehle interpretiert. Das gehostete Terminal verwendet PowerShell Core. Wenn derselbe Text auf deinem eigenen Windows-Computer einen Fehler erzeugt, bist du wahrscheinlich in Command Prompt. Der Fehler ist ein nützlicher Hinweis, kein Problem.
Du wirst auch den Rat sehen, unter macOS oder Linux $SHELL zu prüfen. Sei damit vorsichtig. $SHELL nennt die voreingestellte Login-Shell deines Kontos. Das ist eine andere Frage. Wenn du Bash innerhalb von zsh startest, sagt $SHELL weiterhin zsh, während Bash alles liest, was du tippst.
Frag die aktuelle Shell, wenn der Unterschied zählt. Das Promptzeichen ist ein noch schwächerer Hinweis. $, % und > sind alle konfigurierbar, und Menschen konfigurieren sie.
Frag die Shell, die du hast
Jede Shell hat einen lokalen Hilfeweg: man und befehlsspezifische Hilfe unter macOS und Linux, Get-Help in PowerShell. Sobald du deine Shell kennst, nutze den passenden Weg:
| Aktuelle Shell | Nützlicher Hilfeweg |
|---|---|
| Bash | help cd für einen eingebauten Bash-Befehl |
| zsh | man zshbuiltins, dann nach cd suchen |
| PowerShell | Get-Help Set-Location |
Diese Wege beantworten eine viel engere Frage als eine Websuche und können dir keine Syntax einer anderen Shell liefern. Die Hälfte der Frustration von Anfängern an der Befehlszeile entsteht dadurch, dass sie eine richtige Antwort auf die falsche Shell anwenden.
Ändere für diese Lektion nicht deine voreingestellte Shell. Das betrifft jede künftige Sitzung und ist hier nicht nötig.
Übung: Erkennen und bestätigen
Nutze das Terminal neben dieser Lektion, lass es unverändert und starte darin keine weitere Shell.
Bestimme mit der Methode für dein System, welche Shell tatsächlich läuft.
Öffne die Hilfeseite zum Verzeichniswechselbefehl dieser Shell.
Schreibe zwei Dinge auf: den Namen der Shell und die erste Zeile oder den Titel der erhaltenen Hilfeseite.
Diese beiden Fakten sind die ganze Übung. Wenn dir jemand einen nicht funktionierenden Befehl gibt, reicht oft schon die genaue Angabe deiner Shell, um das Problem sofort zu lösen.
Bei einer lernenden Person enthält $SHELL den Wert /bin/zsh, aber echo $0 gibt bash aus. Welche Shell liest jetzt die Befehle in diesem Terminal?
Du fügst einen Befehl aus einem Tutorial ein. Die Shell meldet einen Syntaxfehler nahe einem unerwarteten Zeichen, während derselbe Befehl bei der Person, die ihn geschickt hat, funktioniert. Was solltest du zuerst prüfen?
Du hast den ersten Fakt für die Fehlersuche: welche Shell deine Befehle interpretiert. Die nächste Frage ist, was sie mit deinem ersten getippten Wort macht.