Ubuntuでデフォルトのシェルをbashからzshに変更しました。 http://github.com/sorin-ionescu/prezto で説明されている手順を使用して、chsh -s zsh
を実行しました。この後、ログインしようとするとすぐにシェルがポップアップするため、どのシェルにもログインできませんでした。 gnomeターミナル、xtermから試して、tty1からログインしようとしました(Alt+Ctrl+F1)。開こうとするとすぐに閉まります。
システムに戻るには、GRUB内のLinuxカーネル行の最後に番号1を追加して、シングルユーザーモードで起動できます。これを行う方法は、このU&L Q&Aのタイトルで大まかに概説されています: rootのログインシェルを起動せずにrootとしてプロセスを起動できますか? 。
これを実行すると、ルートとしてプロンプトにドロップされ、そこからシェルに加えた変更を元に戻すことができます。これにより、システムが正常に機能するように戻ります。
ここから、以前に使用した方法ではなく、ユーザー名に対してchsh
を実行することをお勧めします。
root
としてログインします。 zsh
がインストールされていることを確認します。そうでない場合はapt-get install zsh
ターミナルを開いたり、テキストモードでログインしたりできない理由は、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
を再度実行します。