WSL2 终端无法识别 Visual Studio Code

kDa*_*Dar 10 visual-studio-code windows-subsystem-for-linux vscode-remote

当我尝试从 WSL 执行代码时,如下所示:

cmd.exe
wsl code .
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

/bin/bash: code: command not found
Run Code Online (Sandbox Code Playgroud)

但是,如果我执行相同的命令但首先以管理员身份运行 cmd.exe,vscode 会按预期打开。

问题是为什么当我以非管理员身份运行时无法识别“代码”,我该如何解决?

附加信息:WSL2 版本 41959 vscode 版本 1.38 vscode 远程 WSL 扩展版本 0.39.5

kDa*_*Dar 21

正如@Biswapriyo 提到的,这是一个开放的错误,WSL 无法访问 Windows C 驱动器。帮助我的解决方法是像这样重新启动 WSL:

wsl --shutdown
wsl
Run Code Online (Sandbox Code Playgroud)


s81*_*255 10

  1. 打开 PowerShell 管理员窗口
wsl --list --version
Run Code Online (Sandbox Code Playgroud)

显示为 wsl 2

  1. 进入 Linux 控制台
wsl
Run Code Online (Sandbox Code Playgroud)
  1. 更改相关文件的权限
chmod u+x vscode_dir/code.exe
chmod u+x vscode_dir/bin/code
Run Code Online (Sandbox Code Playgroud)
  1. 创建符号链接
ln -s vscode_dir/bin/code code
mv code ~/.local/bin
Run Code Online (Sandbox Code Playgroud)
  1. 修改.bashrc,添加一行如下:
export PATH="$HOME/.local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
  1. source .bashrc 或重启终端。

然后就可以在 wsl2-ubuntu 环境或者 VSCode 的终端中愉快的玩代码了。

  • 其中 vscode_dir = /mnt/c/Program\ Files/Microsoft\ VS\ Code/bin 只需执行步骤 5 并将其添加到我的路径中就足够了。 (3认同)