弄亂 ~/.bashrc 檔案後,終端不會輸出輸出

弄亂 ~/.bashrc 檔案後,終端不會輸出輸出

我的終端圖像:

在此輸入影像描述

在此輸入影像描述

我正在使用帶有 WSL 的 Ubuntu,但無法存取 GUI。

前面提到的我的終端圖像,我輸入的任何內容都沒有顯示輸出。終端就像一個編輯器。這是在我編輯 PS1 變數後發生的。我想恢復這個動作。

答案1

很高興你能夠擺脫困境。將來,由於您正在使用 WSL,請記住您也可以選擇以下恢復選項。

從 PowerShell、CMD 或「開始」功能表:

wsl -e bash --norc --noprofile

這將啟動 WSL 並執行 Bash,而不處理任何啟動文件,例如~/.bashrc(和其他)。從那裡,您可以檢查並修復任何啟動文件或其他問題。這通常是此類問題的最佳恢復機制。

您甚至可以.bashrc直接編輯您的文件,而無需啟動 shell:

wsl -d Ubuntu20.04_WSL2 -e editor /home/<username>/.bashrc

注意:此editor命令會對應到 Ubuntu 上的「首選編輯器」(nano預設)。在某些其他發行版上,您可能需要指定編輯器名稱本身(例如vi)。您可以使用 更改預設編輯器sudo update-alternatives --config editor

最後:

wsl -u root

這將以 root 使用者身分存取 WSL,然後您可以在其中編輯使用者檔案。請注意,如果/etc/profile(或子目錄)中有錯誤,.d那麼這仍然不起作用,因為 root 使用者將遇到相同的錯誤。這就是為什麼我傾向於選擇這個--noprofile --norc選項。

另外,從評論來看:

我無法打開 bashrc

有兩個選擇:

  • 正如 @terdon 在評論中提到的,您至少可以使用 Windows 中的檔案總管導覽至\\wsl$\Ubuntu\home\<username>\(或您正在使用的發行版名稱,它可能有版本號)來查看該文件。

    請注意,我不推薦編輯使用 Windows 應用程式的文件,除非您確定該應用程式將遵循 Linux/Unix 行結束符。某些應用程式(例如舊版的記事本)會透過將行結尾更改為 DOS/Windows CRLF 來「損壞」檔案(至少從 Bash 的角度來看)。

  • 或者,從 PowerShell:

    wsl -e cat /home/<username>/.bashrc | clip.exe
    

    這會將其直接複製到剪貼簿,以便您下次可以將任何相關部分貼到您的問題中。

請不要發布文字圖片。只需將文字直接複製/貼上到您的問題中

也可以直接在終端機中突出顯示您在螢幕截圖中放入的文字並將其貼上到問題中。

我會仍然要求您這樣做(如果您尚未完全修復錯誤),因為這可能會幫助其他人在搜尋網路時找到您的問題。當然,圖像通常不會被索引。看這裡由於其他原因,我們要求您在文字就足夠的情況下避免使用螢幕截圖。

答案2

按 Ctr+C 將解決該問題。

相關內容