更改預設 shell 後無法開啟 shell

更改預設 shell 後無法開啟 shell

我將 Ubuntu 中的預設 shell 從 bash 更改為 zsh。我使用了中解釋的步驟http://github.com/sorin-ionescu/prezto然後跑了chsh -s zsh。此後,我無法登入任何 shell,因為當我嘗試登入時它會彈出。我嘗試從 gnome 終端機、xterm 並嘗試從 tty1 ( Alt++ )登入。當我嘗試打開時它就會關閉。CtrlF1

答案1

若要返回系統,您可以透過在 GRUB 中的 linux 核心行末尾附加數字 1 來引導進入單一使用者模式。標題為的 U&L Q&A 中粗略地概述了執行此操作的方法:我可以在不啟動 root 登入 shell 的情況下以 root 身分啟動進程嗎?

完成此操作後,您將以 root 身分進入提示符,您可以在其中撤銷對 shell 所做的變更。這將使您的系統恢復正常運作。

從這裡開始,您可能想要chsh使用您的用戶名來運行,而不是之前使用的任何方法。

答案2

登入為root.驗證是否zsh已安裝。如果不apt-get install zsh

答案3

您可能無法開啟終端機或以文字模式登入的原因有兩個:您的 shell(如使用者資料庫中記錄的)不存在,或您的 shell 的設定檔出現致命錯誤。

如果chsh成功,那麼您的 shell 確實存在(chsh檢查 shell 是否在允許的清單中,並且 Ubuntu 的套件管理會根據已安裝的套件更新清單)。因此,除非您zsh在執行此操作後刪除了該軟體包chsh -s zsh(在這種情況下您應該重新安裝它),否則我們可以排除這種情況。

因此,您從 Prezto 獲得的設定檔之一肯定有錯誤、安裝不正確或缺少某些關鍵依賴項。將這些設定檔移開。啟動檔案管理器(例如 Nautilus )並重新命名主目錄中的以下檔案(如果存在):.zlogin.zlogout.zprofile和.如果它們是符號鏈接,只需刪除符號鏈接,稍後您將重新建立它們。.zshenv.zshrc

完成此操作後,您將能夠開啟終端並開始使用 zsh 的預設配置。第一次執行 zsh 時,它的新使用者設定介面將會運作(如果您按照中的指示進行操作,您一定已經看到它了)https://github.com/sorin-ionescu/prezto)。

暫時將您的 shell 改回 bash ( chsh -s bash),直到您使用 Prezto 解決問題。打開終端(現在運行 bash),然後運行zsh.將檔案移回原位,或按照步驟3.z*重新建立符號連結。zsh如果錯誤不提供信息,請運行zsh -x以獲取調試跟踪。

解決問題並且 zsh 啟動後,chsh -s zsh再次運行。

相關內容