web-dev-qa-db-ja.com

デフォルトのシェルをZSHに変更する方法-chshは「無効なシェル」と言います

VM私のVM $ ===にZSHをインストールし、ソースからコンパイルしました。ZSHの場所は/usr/local/bin/zshです。chsh -s /usr/local/bin/zshを実行すると、chsh: /usr/local/bin/zsh is an invalid Shellが出力されます。Sudoでもこれを試しましたが、どうすれば変更できますか?

36
Zach Russell

/etc/shellsにzshを追加します。

command -v zsh | Sudo tee -a /etc/shells

Chshを使用してzshをシェルとして設定できるようになりました。

Sudo chsh -s "$(command -v zsh)" "${USER}"

このドキュメントをご覧ください: ログインシェルの変更

50
Biapy

追加する必要があります/usr/local/bin/zsh/etc/shells

8
Adam Lang

最初に、zshが有効なシェルとしてリストされているかどうかを確認します

cat /etc/shells

zshがリストにない場合は、インストールしてください。たとえば、aptを使用する場合

Sudo apt-get install zsh

もう一度、ステップ1を実行して、zshのパスを確認してください。私の場合、/usr/bin/zsh/usr/zshの両方がリストされています。 @StéphaneChazelasがコメントで述べたように、シェルを最初からコンパイルしてインストールする場合は、/etc/shellsにパスを追加してください。

シェルを変更する

chsh -s /usr/bin/zsh

man page から:

-s, --Shell SHELLユーザーの新しいログインシェルの名前。このフィールドを空白に設定すると、システムはデフォルトのログインシェルを選択します。

ログアウトして再度ログインします。

4
Sat Yam