ZSHをデフォルトのシェルとして設定しようとしていますが、bashに戻り続けています。
私はこのコードを試しました:
Sudo chsh -s $(which zsh)
私も試しました:
Sudo chsh -s /bin/zsh
また、Sudoなしでこれらのコマンドを試しました。他に何をする必要があるかについてのアイデア。 bash内からZSHを実行すると、ロードされて正常に動作しますが、デフォルトのシェルとして設定したいと思います。
chsh
を使用するだけです:
chsh -s $(which zsh)
withoutSudo
は動作するはずです。 Sudo
を使用すると、作業中のユーザーではなくrootのシェルが変更されます
最後に、コンピューターからログアウトし、再度ログインします。
トラブルシューティング:
dpkg -l zsh
grep $USER /etc/passwd
の最後のフィールドgrep zsh /etc/shells
私はこれを スーパーユーザー フォーラムで見つけました
/ 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
ログアウトしてからログインし直して、変更を有効にします。
これを行うこともできます:
お気に入りのエディターでbashrcファイルを開きます
Sudo nano ~/.bashrc
次に、ファイルの先頭の下に行を追加します
exec zsh
ターミナルをロードしてzshシェルを実行するたびにコマンドが実行されます。
Zshが/ bin/zshでない場合、chshは機能しません。 Ubuntuでは、/ usr/bin/zshです。したがって、chsh -s /usr/bin/zsh
またはchsh -s `which zsh`
を実行すると動作します。また、デスクトップセッションに再ログインする必要があります。
現在のユーザーのシェルを変更する権限に問題がありましたが、次に役立ちます(コンピューターに正しい「zsh」フォルダーを設定する必要があります):
Sudo chsh -s /bin/zsh <myUserName>
ターミナルに入力
Sudo chsh -s $(which zsh) root
奇妙なことに、「受け入れられた」答えは私が得たようには機能しませんでした
chsh: PAM: Authentication failure
この問題を解決するには、/ etc/passwdを編集し、zshの場所を指していることを確認してください。 (これは「which zsh」を実行することで見つけることができます)私の場合、「webmaster」と呼ばれるユーザーは次のようになりました。
webmaster:x:1001:1001:webmaster,,,:/var/www/webmaster:/usr/bin/zsh