zsh als Standard-Shell auf dem Mac verwenden

Ab macOS Catalina verwendet Ihr Mac zsh als standardmäßige Anmelde-Shell und interaktive Shell. Sie können zsh auch als Standard in früheren macOS-Versionen festlegen.

Der Mac verwendet standardmäßig zsh oder bash als Befehlszeileninterpreter für die Anmelde-Shell und interaktive Shell:

zsh ist fast vollständig mit der Bourne-Shell (sh) und weitgehend kompatibel mit bash. Es gibt allerdings einige Unterschiede. Um Informationen zur zsh und ihrem umfassendes Befehlszeilen-Vervollständigungssystem zu erhalten, geben Sie man zsh in Terminal ein.
  

Die Standard-Shell ändern

Unabhängig davon, ob Ihr Benutzeraccount für die Verwendung von zsh (empfohlen), bash oder einer anderen Shell konfiguriert ist, können Sie die Standard-Shell über die Einstellung "Benutzer & Gruppen" oder die Befehlszeile ändern.

Über die Einstellung "Benutzer & Gruppen"

  1. Wählen Sie das Apple-Menü () > "Systemeinstellungen", klicken Sie dann auf "Benutzer & Gruppen". 
  2. Klicken Sie auf das Schloss , geben Sie dann Ihren Accountnamen und Ihr Passwort ein.
  3. Klicken Sie bei gedrückter Ctrl-Taste in der Liste der Benutzer links auf Ihren Benutzernamen, wählen Sie dann "Erweiterte Optionen". 
  4. Wählen Sie im Menü "Anmelde-Shell" eine Shell, klicken Sie dann auf "OK", um die Änderungen zu sichern.

Über die Befehlszeile

Geben Sie in Terminal $ chsh -s path ein, wobei path einer der Shell-Pfade ist, der in /etc/shells aufgeführt ist, z. B. /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh oder /bin/tcsh.
  

Eine andere Shell verwenden, ohne die Standard-Shell zu ändern

Wenn Terminal die standardmäßige Anmelde-Shell in neuen Terminal-Fenstern und -Tabs nicht verwenden soll, gehen Sie wie folgt vor:

  1. Öffnen Sie Terminal, wählen Sie dann "Terminal" > "Einstellungen".
  2. Wählen Sie im Bereich "Allgemein" die Option "Befehl (vollständiger Pfad)". 
  3. Geben Sie in das angezeigte Feld einen der Shell-Pfade ein, der in /etc/shells aufgeführt ist, z. B. /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh oder /bin/tcsh.

Wenn Sie die bash-Shell aufrufen, während macOS Catalina zur Verwendung einer anderen Shell konfiguriert ist, wird die Meldung angezeigt, dass die standardmäßige interaktive Shell nun zsh ist. Um diese Warnung zu unterdrücken, können Sie diesen Befehl zu ~/.bash_profile oder ~/.profile hinzufügen:

export BASH_SILENCE_DEPRECATION_WARNING=1


Zu einem zsh-Profil und einer zsh-Eingabeaufforderung wechseln

Wenn Sie ein bash-Profil verwenden, um beispielsweise Umgebungsvariablen, Aliase oder Pfadvariablen festzulegen, sollten Sie auf ein zsh-Äquivalent umsteigen. Beispiel:

  • .zprofile entspricht .bash_profile und wird bei der Anmeldung ausgeführt, auch über SSH
  • .zshrc entspricht .bashrc und wird für jede neue Terminal-Sitzung ausgeführt

Wenn Sie .profile (ein POSIX-kompatibles Profil) verwenden, können Sie zsh veranlassen, seine Einstellungen automatisch zu lesen, indem Sie diesen Befehl zu .zprofile hinzufügen:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

Sie können auch einige Einstellungen aus einem bash-Profil in ein zsh-Profil ohne Änderung verschieben. Zum Beispiel, um Umgebungsvariablen festzulegen: export MY_SETTING=1.

zsh erkennt einen anderen Satz von Eingabeaufforderungsbezeichnern als bash und verfügt über eine sauberere Syntax zum Festlegen der farbigen Ausgabe, wodurch die Verwendung komplexer ANSI-Escapesequenzen entfällt. Nachfolgend finden Sie als Beispiel die Syntax für eine standardmäßige bash-Eingabeaufforderung von .bash_profile:

export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

So konvertieren Sie diese bash-Eingabeaufforderung in eine zsh-Eingabeaufforderung, wenn Sie .zprofile oder .zshrc verwenden:

export PS1="%10F%m%f:%11F%1~%f \$ "

Auf der Seite "zsh man" finden Sie weitere Details.


Shell-Skripte testen

Um die Skript-Kompatibilität mit Bourne-kompatiblen Shells in macOS Catalina zu testen, können Sie /var/select/sh in /bin/bash, /bin/dash oder /bin/zsh ändern. Wenn Sie /var/select/sh in eine andere Shell als bash ändern, beachten Sie, dass Skripte, die Bashismen verwenden, möglicherweise nicht richtig funktionieren.

zsh kann zum Emulieren von sh durch Ausführen des Befehls zsh --emulate sh veranlasst werden.
  

Informationen zu nicht von Apple gefertigten Produkten sowie nicht von Apple gesteuerte oder geprüfte unabhängige Websites werden ohne Empfehlung und Unterstützung zur Verfügung gestellt. Apple übernimmt keine Verantwortung für die Auswahl, Leistung oder Nutzung von Websites und Produkten Dritter. Apple übernimmt keine Garantie für die Richtigkeit und Zuverlässigkeit von Drittanbieter-Websites. Die Nutzung des Internets birgt Risiken. Kontaktieren Sie den Hersteller, um zusätzliche Informationen zu erhalten. Andere Produkt- und Firmennamen sind möglicherweise Marken ihrer jeweiligen Eigentümer.

Veröffentlichungsdatum: