zsh als Standard-Shell auf dem Mac verwenden

Ab macOS Catalina verwendet dein Mac zsh als standardmäßige Anmelde-Shell und interaktive Shell. Du kannst 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 (Z-Shell) ist die Standard-Shell für alle neu erstellten Benutzeraccounts, beginnend mit macOS Catalina.

  • bash ist die Standard-Shell in macOS Mojave und älter.

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 umfassenden Befehlszeilen-Vervollständigungssystem zu erhalten, gib man zsh in Terminal ein.

Die Standard-Shell ändern

Unabhängig davon, ob dein Benutzeraccount für die Verwendung von zsh (empfohlen), bash oder einer anderen Shell konfiguriert ist, kannst du die Standard-Shell über die Befehlszeile oder die Einstellung „Benutzer & Gruppen“ ändern.

Über die Befehlszeile

Gib in Terminal $ chsh -s path ein, wobeipath einer der in /etc/shells aufgeführten Pfade ist, z. B. /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh oder /bin/tcsh.

Über „Benutzer & Gruppen“

In macOS Ventura oder neuer:

  1. Wähle das Apple-Menü () > „Systemeinstellungen“, und klicke dann in der Seitenleiste auf „Benutzer & Gruppen“.

  2. Klicke bei gedrückter Ctrl-Taste in der Liste der Benutzer auf der rechten Seite auf deinen Benutzernamen oder dein Benutzerbild, und wähle dann „Erweiterte Optionen“.

  3. Gib bei entsprechender Aufforderung deinen Benutzernamen und dein Passwort ein.

  4. Wähle im Menü „Anmelde-Shell“ eine Shell, und klicke dann auf „OK“, um die Änderungen zu sichern.

In älteren macOS-Versionen:

  1. Wähle das Apple-Menü () > „Systemeinstellungen“, und klicke dann auf „Benutzer & Gruppen“.

  2. Klicke auf das SchlosssymbolNo alt supplied for Image, und gib dann dein Administratorpasswort ein.

  3. Klicke bei gedrückter Ctrl-Taste in der Liste der Benutzer links auf deinen Benutzernamen, und wähle dann „Erweiterte Optionen“.

  4. Wähle im Menü „Anmelde-Shell“ eine Shell, und klicke dann auf „OK“, um die Änderungen zu sichern.

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, gehe wie folgt vor:

  1. Öffne Terminal, und wähle dann „Terminal“ > „Einstellungen“.

  2. Wähle im Bereich „Allgemein“ die Option „Befehl (vollständiger Pfad)“ aus.

  3. Gib in das angrenzende 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 du die bash-Shell aufrufst, während macOS 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, kannst du 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 du ein bash-Profil verwendest, um beispielsweise Umgebungsvariablen, Aliase oder Pfadvariablen festzulegen, solltest du 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 du .profile (ein POSIX-kompatibles Profil) verwendest, kannst du zsh veranlassen, seine Einstellungen automatisch zu lesen, indem du diesen Befehl zu .zprofile:

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

Du kannst 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 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 konvertierst du diese bash-Eingabeaufforderung in eine zsh-Eingabeaufforderung, wenn du .zprofile oder .zshrc:

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

Auf der Seite „zsh man“ findest du weitere Details.

Shell-Skripte testen

Um die Skript-Kompatibilität mit Bourne-kompatiblen Shells in macOS Catalina oder neuer zu testen, kannst du /var/select/sh in /bin/bash, /bin/dash oder /bin/zsh ändern. Wenn du /var/select/sh in eine andere Shell als bash änderst, beachte, 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 hergestellten Produkten oder nicht von Apple kontrollierten oder geprüften unabhängigen Websites stellen keine Empfehlung oder Billigung dar. Apple übernimmt keine Verantwortung für die Auswahl, Leistung oder Nutzung von Websites und Produkten Dritter. Apple gibt keine Zusicherungen bezüglich der Genauigkeit oder Zuverlässigkeit der Websites Dritter ab. Kontaktiere den Anbieter, um zusätzliche Informationen zu erhalten.

Veröffentlichungsdatum: