web-dev-qa-db-ja.com

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

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

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

Sudo chsh -s $(which zsh)

私も試しました:

Sudo chsh -s /bin/zsh 

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

119
Tom

chsh を使用するだけです:

chsh -s $(which zsh)

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

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

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

211
Florian Diesch

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

/ 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

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

37

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

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

Sudo nano ~/.bashrc

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

exec zsh

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

5
Saddam H

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

3
jbp

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

Sudo chsh -s /bin/zsh <myUserName>
1
Rib47

ターミナルに入力

Sudo chsh -s $(which zsh) root
0

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

chsh: PAM: Authentication failure

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

webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh
0
John Crawford