在 WSL 中安全地編輯 .bashrc

在 WSL 中安全地編輯 .bashrc

如何.bashrc安全地編輯適用於 Linux 的 Windows 子系統中的檔案?

本文警告切勿AppData使用 Windows 工具編輯儲存在 WSL 資料夾中的檔案。

那麼如何.bashrc以安全的方式編輯文件呢?

答案1

使用內建nano編輯器:

nano ~/.bashrc

最重要的快捷鍵nanoCtrl+O儲存檔案和Ctrl+X關閉編輯器。

簡單的使用指南nano可以在Gentoo Linux 維基

答案2

我認為視覺工作室程式碼工作正常。只需安裝遠端-WSL擴大。

要使用它,只需打開 cmd 並輸入bash。輸入bashcd然後使用code .bashrc

瞧! VS Code 在 WSL 中打開,您可以編輯所需的文件。

答案3

很抱歉在這裡添加另一個答案,但問題本身(以及這裡的所有其他答案)需要情境對於其他試圖理解它的人來說,這是缺失的。

原始問題中連結的 Microsoft 警告是指編輯 WSL1 文件透過Windows使用 Windows 的%AppData%路徑。在 WSL 版本 1(但不是版本 2)中,WSL 將 Linux 實例的整個檔案系統儲存在 Windows 資料夾中。這些檔案雖然在 Windows 中對使用者可見,但不應在 Windows 中編輯。如警告所述,如果不加以注意,WSL 實例可能會損壞。

這在 WSL 版本 2 上不是問題。

然而,在任一版本上,它可以安全地編輯文件(包括~/.bashrc裡面WSL 實例。在那裡,它只是 WSL 檔案系統中的一個普通檔案。 2019年的兩個答案(卡班諾格的野獸WinEunuuchs2Unix 的)利用這種方法。這沒有什麼問題——它們都是正確的答案。儘管我想說安裝 Windows X Server 並且gedit只是為了編輯 WSL 檔案可能有點過分了。幾乎任何其他編輯器都可以被引用(有人想為了完整性而添加 Emacs 答案嗎?;-))。

Brixton Mavu 2020 年的回答,其中提到使用 VSCode,也是同一想法的延伸。儘管 VSCode 使用 Windows 工具,但它會在 WSL 實例內啟動一個伺服器,並與其進行通訊以允許編輯、瀏覽甚至調試 WSL 實例。

然後還有@Jon 最近的回答(這引發了這個問題,這就是我看到它的原因)。對於如何從 Windows 內部(而不是從 WSL 實例內部)安全地編輯 WSL 檔案(大部分),這是正確的答案。不過,實際上已經在原始問題中連結的 Microsoft 部落格條目中提到了這一點。

我說“大部分”,是因為一般來說,你應該避免使用 Windows 工具來編輯 Linux 文件,因為許多 Windows 編輯器預設使用 DOS/Windows 行結束符,這也會導致~/.bashrc失敗。有些工具足夠智能,可以識別現有文件是 Linux 文件,有些工具則不然,但大多數工具在沒有任何其他格式的情況下將預設為 CRLF (DOS/Windows)。

如果 WSL 實例由於 中的錯誤而無法啟動~/.bashrc,那麼您可以使用@Jon的建議來\\wsl$\編輯它,但還有(恕我直言)其他更安全的替代方案。

若要編輯~/.bashrc該檔案以阻止您啟動的時間,請執行:

wsl -e bash --norc -c "vi ~/.bashrc"

或者

wsl ~ -e bash --norc
vi .bashrc

這將在bash不採購現有~/.bashrc.

其他替代方案包括以 root 身分啟動會話:

wsl -u root

然後進行任何所需的編輯。

一般來說,WSL 透過使用wsl指令的參數來啟動實例,具有一些令人驚訝的復原機制。

答案4

如果您喜歡 GUI 編輯器,請VcXsrv按照此處的詳細資訊進行安裝:

然後使用gedit ~/.bashrc

相關內容