Die richtige Antwort hätte Ihr Problem lösen sollen:
chsh: / usr / bin / zsh: Nicht-Standard-Shell
Der Grund , warum dies der Fall ist , liegt daran , dass chsh
nur Schalen annehmen , die in der Datei / etc / shells definiert sind, wie Sie das Handbuch durch das Lesen für sehen chsh
:
chsh akzeptiert den vollständigen Pfadnamen aller ausführbaren Dateien auf dem System. Es wird jedoch eine Warnung ausgegeben, wenn die Shell nicht in der Datei / etc / shells aufgeführt ist.
Um dieses Problem zu lösen und zsh zur Standard-Shell zu machen, sollten Sie folgende Schritte ausführen:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
Offensichtlich gehe ich davon aus, dass dies zsh
hier auf Ihrem Weg ist. Diese Lösung wird auch funktionieren , wenn Sie zum Beispiel wählen Sie die neueste Installation zsh
mit brew install zsh
.
EDIT (danke für ThisIsFlorianK für den Kommentar) :
Abhängig von Ihrem Shell-Setup wird möglicherweise eine Meldung angezeigt /etc/shells: Permission denied
. Informationen zu diesem Problem finden Sie hier.
Verwenden Sie stattdessen Folgendes, um das Problem zu umgehen:
$ sudo sh -c "echo $(which zsh) >> /etc/shells"
$ chsh -s $(which zsh)
chsh -l
aus? (Wenn das nicht funktioniert, was ist der Inhalt von/etc/shells
?) Sind Sie sicher, dass dies fehlschlägt und nicht nur eine Warnung? Funktioniert das Hinzufügen/usr/bin/zsh
dort?