Ich habe zsh auf meinem Mac installiert. und jetzt möchte ich es zur Standard-Shell anstelle von Bash machen. Aber ich scheine auf folgenden Fehler zu stoßen:
$ echo $SHELL
/bin/bash
$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell
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?/bin/zsh
?Antworten:
3 einfache Schritte:
which zsh
Dies gibt Ihnen Ihren Weg zu zshchsh -s /bin/zsh
oder ersetzen Sie den Pfad zu Ihrem zsh, falls abweichendquelle
/usr/bin/zsh
um/etc/shells
das Problem zu lösen.Die richtige Antwort hätte Ihr Problem lösen sollen:
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 sehenchsh
:Um dieses Problem zu lösen und zsh zur Standard-Shell zu machen, sollten Sie folgende Schritte ausführen:
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 Installationzsh
mitbrew 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:quelle
/etc/shells: Permission denied
==> bekommen, tun Sie das stattdessen:sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh
ist aus einem bestimmten Grund standardmäßig verfügbar. Obwohl es von Natur aus nichts Falsches ist, durch eine Vielzahl von Menüs zu klicken, um dasselbe zu erreichen, ist dies nicht nur nicht portierbar und fehleranfällig, sondern auch irreführend, da es sich vor Benutzern verbirgt, von denen die Änderung stammt.Ich konnte dies zum Laufen bringen, indem ich Folgendes tat:
echo $SHELL
quelle
/usr/local/bin/zsh
. Daher müssen Sie/etc/shells
unter sudo bearbeiten und einen Eintrag hinzufügen,/usr/local/bin/zsh
bevor Sie die ausführbare zsh-Datei auswählen können, die Hombrew installiert hatBei meinem MacBook musste ich Folgendes tun:
Dann musste ich eine
.bash_profile
Datei erstellen , damit mein Terminal jedes Mal, wenn ich es öffne, auf Z-Shell umschaltet:Die letzte Idee wurde von hier entlehnt .
quelle