答案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 将解决该问题。