web-dev-qa-db-ja.com

デフォルトのシェルを変更した後、シェルを開くことができません

Ubuntuでデフォルトのシェルをbashからzshに変更しました。 http://github.com/sorin-ionescu/prezto で説明されている手順を使用して、chsh -s zshを実行しました。この後、ログインしようとするとすぐにシェルがポップアップするため、どのシェルにもログインできませんでした。 gnomeターミナル、xtermから試して、tty1からログインしようとしました(Alt+Ctrl+F1)。開こうとするとすぐに閉まります。

4
vpshastry

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

これを実行すると、ルートとしてプロンプトにドロップされ、そこからシェルに加えた変更を元に戻すことができます。これにより、システムが正常に機能するように戻ります。

ここから、以前に使用した方法ではなく、ユーザー名に対してchshを実行することをお勧めします。

4
slm

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

2
xx4h

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

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

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

それが完了すると、ターミナルを開いて、デフォルト構成でzshの使用を開始できるようになります。 zshを初めて実行すると、新しいユーザーセットアップインターフェイスが実行されます( https://github.com/sorin-ionescu/prezto の手順に従った場合は、すでに表示されているはずです)。

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

問題を解決してzshが起動したら、chsh -s zshを再度実行します。