デフォルトのシェルを変更した後、シェルを開けません

デフォルトのシェルを変更した後、シェルを開けません

Ubuntuのデフォルトのシェルをbashからzshに変更しました。http://github.com/sorin-ionescu/preztoを実行しましたchsh -s zsh。その後、ログインしようとするとすぐにポップアップ表示され、どのシェルにもログインできなくなりました。gnome ターミナル、xterm から試し、tty1 (++) からログインしようとしました。Alt開こうとするとすぐに閉じてしまいます。CtrlF1

答え1

システムに戻るには、GRUB 内の Linux カーネル行の末尾に数字 1 を追加して、シングル ユーザー モードで起動できます。これを行う方法は、次の U&L Q&A に大まかに説明されています。root のログイン シェルを起動せずに、プロセスを root として起動できますか?

これを実行すると、root としてプロンプトが表示され、シェルに加えた変更を元に戻すことができるようになります。これにより、システムは正常に動作する状態に戻ります。

ここからは、おそらく、chsh以前に使用した方法ではなく、ユーザー名を実行することになるでしょう。

答え2

としてログインしますroot。 がzshインストールされていることを確認します。apt-get install zsh

答え3

ターミナルを開いたり、テキスト モードでログインしたりできない理由は 2 つあります。シェル (ユーザー データベースに記録されている) が存在しないか、シェルの構成ファイルに致命的なエラーが発生しているかのいずれかです。

成功した場合chsh、シェルは存在します (chshシェルが許可リストに含まれていることを確認し、Ubuntu のパッケージ管理はインストールされたパッケージに基づいてリストを更新します)。したがって、zsh実行後にパッケージを削除しない限りchsh -s zsh(その場合は再インストールするだけです)、このケースは除外できます。

したがって、Prezto から取得した構成ファイルの 1 つにバグがあるか、正しくインストールされていないか、重要な依存関係が欠落している可能性があります。これらの構成ファイルを移動してください。Nautilus などのファイル マネージャーを起動し、ホーム ディレクトリにある次のファイルの名前を変更します (存在する場合)。、、、および。.zloginこれらがシンボリック リンクである場合は、シンボリック リンクを削除して、後で再作成します。.zlogout.zprofile.zshenv.zshrc

それを済ませたら、ターミナルを開いて、デフォルト設定でzshを使い始めることができます。zshを初めて実行すると、新しいユーザー設定インターフェースが実行されます(https://github.com/sorin-ionescu/prezto)。

chsh -s bashPrezto の問題を解決するまで、シェルを一時的に bash ( ) に戻します。ターミナル (現在は bash を実行中) を開き、 を実行しますzsh.z*ファイルを元の場所に戻すか、手順 3 に従ってシンボリック リンクを再作成します。次に、zshこの開いたターミナルで を実行し、エラーの内容を確認します。エラーに情報が含まれていない場合は、 を実行してzsh -xデバッグ トレースを取得します。

問題が解決し、zsh が起動したら、chsh -s zshもう一度実行します。

関連情報