Antworten:
Verwenden Sie das chshDienstprogramm folgendermaßen:
chsh -s bash
Apple hat sich chshunter Mac OS X im Vergleich zu chshLinux 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/shellsEinschränkung umgehen können, wenn Sie chshals Root über ausgeführt werden sudo. ZB sudo chsh -s /usr/local/bin/my_shell $USERwird funktionieren, auch wenn my_shellnicht in aufgeführt ist /etc/shells. Ich bevorzuge die Bearbeitung /etc/shells, aber am Ende ist es eine der sudobeiden Möglichkeiten, da Sie nicht /etc/shellsals regulärer Benutzer bearbeiten können . Also vielleicht sechs von einem, ein halbes Dutzend von dem anderen.
/etc/shellswenn Sie nicht müssen? Aus Gründen der Vernunft halte ich die Systemdateien lieber gleich.
/etc/shellsist 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
chshalleine verwenden, wenn Sie versuchen, eine Shell zu verwenden, die nicht in aufgeführt ist /etc/shells.
/etc/shellsmir 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)