Antworten:
Verwenden Sie das chsh
Dienstprogramm folgendermaßen:
chsh -s bash
Apple hat sich chsh
unter Mac OS X im Vergleich zu chsh
Linux etwas verändert. Informationen dazu finden Sie auf der Mac OS X Man Page .
Beachten Sie, dass Sie nur zu einer in aufgeführten Shell wechseln dürfen /etc/shells
. Dies ist normalerweise in Ordnung, aber es bedeutet, dass Sie, wenn Sie Bash 4 installieren möchten (von Homebrew, MacPorts oder beim Kompilieren Ihrer eigenen), eine Zeile hinzufügen müssen /etc/shells
. (Ich bin vor ein paar Wochen darauf gestoßen und dachte, es könnte anderen helfen, es zu wissen ...)
Bearbeiten : Tim Smith weist darauf hin, dass Sie die /etc/shells
Einschränkung umgehen können, wenn Sie chsh
als Root über ausgeführt werden sudo
. ZB sudo chsh -s /usr/local/bin/my_shell $USER
wird funktionieren, auch wenn my_shell
nicht in aufgeführt ist /etc/shells
. Ich bevorzuge die Bearbeitung /etc/shells
, aber am Ende ist es eine der sudo
beiden Möglichkeiten, da Sie nicht /etc/shells
als regulärer Benutzer bearbeiten können . Also vielleicht sechs von einem, ein halbes Dutzend von dem anderen.
/etc/shells
wenn Sie nicht müssen? Aus Gründen der Vernunft halte ich die Systemdateien lieber gleich.
/etc/shells
ist die Datei auf dem System, die erkannte Shells definiert. Ich ändere diese Datei, weil ich der Liste der erkannten Shells eine Shell hinzufügen möchte. Scheint mir ziemlich vernünftig.
chsh: bash: non-standard shell
chsh
alleine verwenden, wenn Sie versuchen, eine Shell zu verwenden, die nicht in aufgeführt ist /etc/shells
.
/etc/shells
mir nicht komisch vor.
So verwenden Sie die Mac OS X-Benutzeroberfläche:
Beachten Sie, dass Sie an diesem Ort Ihr Basisverzeichnis, Ihre UUID, Ihre Benutzer-ID, Ihre Gruppen-ID und Ihren Kurznamen ändern können, wenn Sie mit dem Terminal nicht zufrieden sind. Es gibt eine ähnliche Frage hier befindet sich auch.
Bei Verwendung der obigen Antworten wurde eine Fehlermeldung angezeigt:
$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell
Um dies zu umgehen:
sudo chsh -s zsh $(whoami)
whoami
In einer Subshell soll die Shell für Ihren Benutzer geändert werden, nicht der Root.
Eine weitere Sache, wenn Sie Homebrew verwenden. Wenn Sie Befehle als root ausführen (mit sudo
), zeigt zsh auf / bin / zsh, was im Lieferumfang von OSX enthalten ist und möglicherweise veraltet ist. Verwenden Sie Folgendes, um die aktuelle Version zu verwenden, die über Homebrew installiert wurde:
sudo chsh -s $(which zsh) $(whoami)