ZSHをデフォルトのシェルにする方法は?


124

ZSHをデフォルトのシェルとして設定しようとしていますが、bashに戻り続けています。

私はこのコードを試しました:

sudo chsh -s $(which zsh)

私も試しました:

sudo chsh -s /bin/zsh 

また、sudoを使用せずにこれらのコマンドを試しました。他に何をする必要があるかについてのアイデア。bash内からZSHを実行すると、ロードされて正常に動作しますが、デフォルトのシェルとして設定したいと思います。

回答:


217

ただ使用するchsh

chsh -s $(which zsh)

動作しない sudoはずです。使用sudoすると、作業中のユーザーではなくrootのシェルが変更されます

最後に、コンピューターからログアウトし、再度ログインします。

トラブルシューティング:


17
私には同じ問題があり、答えはそれを解決しません
Aswin Murugesh

@AswinMurugesh私の答えをチェック
シャイレッシュカランカー

9
sudo chsh -s / bin / zsh userName
Micha Roon

15
注:これを有効にするには、システムを再起動する必要がありました。
ケヴィン

いいえ、動作しませんでした。
母TTpro

40

これはスーパーユーザーフォーラムで見つけました

/ etc / passwdを開きます。

sudo vi /etc/passwd

ユーザー名を含む行を見つけます。

username:x:1634231:100:Your Name:/home/username:/bin/bash

bashをzshに置き換えます。

username:x:1634231:100:Your Name:/home/username:/bin/zsh

ログアウトしてからログインし直して、変更を有効にします。


11
あなたは、このアプローチには非常に注意しなければならない-それは通常の周りいじくる行くには最高の考えではありません/etc/passwd
トーマス・ウォード

私は、このメソッドを使用していないにもかかわらず、それは私がの効果を確認する助けchsh -s `which zsh`
jchook

はい、この合計は私のユーザーを犯しました。再度ログインすることはできません。
マーク・カーペンタージュニア

6

これを行うこともできます:

お気に入りのエディターでbashrcファイルを開きます

sudo nano ~/.bashrc

次に、ファイルの先頭の下に行を追加します

exec zsh

ターミナルをロードしてzshシェルを実行するたびにコマンドを実行します。


13
また、すべての非対話型ジョブを中断します(scpたとえば)。
Jakuje

downvoteで申し訳ありませんが、変更/etc/passwdまたはchshより良いソリューションとより信頼性の高いです。
ティモ

感謝します。@Timo / etc / passwdまたはchshで変更を行いましたが、デフォルトはbashに戻り続けました。投稿された応答に従ってexec zshを追加しましたが、うまくいきました。
ストライカー

3

zshが/ bin / zshでない場合、chshは機能しません。Ubuntuでは、/ usr / bin / zshです。そうするchsh -s /usr/bin/zshか、動作するchsh -s `which zsh`はずです。また、デスクトップセッションに再ログインする必要があります。


Ubuntu VPSでは/ bin / zsh
ウィルヘルムエラスムス

私のUbuntuでは、私は両方でそれを見る/bin/zsh/usr/bin/zsh
blue_chip

2
私の場合(14.04、メインリポジトリのzsh)、2つのzshがあり、両方とも2層シンボリックリンクです:/ usr / bin / zsh-> / etc / alternatives / zsh-usrbin-> / bin / zsh5および/ bin / zsh-> / etc / alternatives / zsh-> / bin / zsh5
wjandrea

1

現在のユーザーのシェルを変更する権限に問題がありましたが、次に役立ちます(コンピューターに正しい「zsh」フォルダーを設定する必要があります):

sudo chsh -s /bin/zsh <myUserName>

0

奇妙なことに、「受け入れられた」答えは私が得たようには機能しませんでした

chsh: PAM: Authentication failure

この問題を解決するには、/ etc / passwdを編集し、zshの場所を指していることを確認してください。(これは「which zsh」を実行することで見つけることができます)私の場合、「webmaster」と呼ばれるユーザーは次のようになりました。

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh

パスワードを要求するはずだと思います。以前のミントインストールでも同じエラーが発生しました。現在の1はしかしうまく働いた
ヴィルヘルム・エラスムス

他の誰かが同じ問題を抱えていて、彼らが走ったことが判明したためchsh -s zsh、パスワードエントリが間違っていました。
-wjandrea

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.