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


36

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



6
@Mikel、いいえ、その質問は「私のために働いていないchshchshというよりも「私は知らない」です。
cjm 14年

回答:


48

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

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

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

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

このドキュメントを参照してください:ログインシェルの変更



3

まず、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ページから:

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

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


はい、OSパッケージの一部としてシェルをインストールする場合、OSパッケージは通常シェルをに追加します/etc/shells。ここでのポイントは、シェルを手動でコンパイルしてインストールする場合は、/etc/shells自分でパスを手動で追加する必要があることです。
ステファンシャゼラス

いい視点ね。私は「apt」のようなパッケージマネージャーを考えていました。回答を編集して、あなたのポイントを含めました。
土ヤム

ただし、これは本質的に、他の2つの答えがすでに言っていることです。
ジェフシャラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.