回答:
にリストされているシェルへの変更のみが許可されることに注意してください/etc/shells
。通常はこれで問題ありませんが、Bash 4を(Homebrew、MacPorts、または独自のコンパイルから)インストールする場合は、に行を追加する必要があることを意味します/etc/shells
。(私は数週間前にこれに遭遇し、それが他の人が知るのに役立つかもしれないと思った...)
編集:ティムスミスは、あなたが経由でルートとして/etc/shells
実行する場合、制限を回避できることを指摘している に記載されていなくても、たとえば動作します。私は編集することを好むが、最終的に、それは次のいずれかを使用だあなたが編集することはできませんので、いずれかの方法で、通常のユーザーとして。おそらく、1つのうち6つ、他の6つです。chsh
sudo
sudo chsh -s /usr/local/bin/my_shell $USER
my_shell
/etc/shells
/etc/shells
sudo
/etc/shells
/etc/shells
する必要がないのに、なぜ変更するのですか?正気のために、私はシステムファイルを同じに保つことを好みます。
/etc/shells
認識されたシェルを定義するシステム上のファイルです。認識されたシェルのリストにシェルを追加したいので、そのファイルを変更します。私にはかなり理にかなっているようです。
chsh: bash: non-standard shell
chsh
リストされていないシェルを使用しようとしている場合、単独で使用することはできません/etc/shells
。
/etc/shells
私には奇妙に思えません。
上記の回答を使用すると、エラーメッセージが表示されました。
$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell
これを回避するには:
sudo chsh -s zsh $(whoami)
whoami
サブシェルでは、ルートではなくユーザーのシェルを変更します。
自作を使用している場合はもう1つです。rootとして(を使用してsudo
)コマンドを実行すると、zshは/ bin / zshを指します。これはOSXに付属しており、古くなっている可能性があります。homebrewでインストールされた最新のものを使用するには、次を使用します。
sudo chsh -s $(which zsh) $(whoami)