VS Code在一个WSL中工作,但在另一个WSL中不起作用



所以我有两个web语言(版本2):Kali和Ubuntu。code命令在Kali中工作,但Ubuntu显示为Command not found。由于它在WSL, CMD和PowerShell中工作,因此它存在于PATH变量中。任何帮助吗?

edit: Ubuntu不读取PATH变量中的VS Code,而Kali可以。我打开了环境变量向导。

In a "normal"在这种情况下,就像您在Kali实例中看到的那样,WSL的init将Windows路径附加到Linux路径。我能想到有两件事会导致在你的Ubuntu实例下不能正确地发生:

  • 您或您在Ubuntu中运行的脚本修改了shell的启动文件(假设是Bash,通常是~/.bashrc~/.profile)来编辑PATH,可能会删除Windows元素,或者至少删除VSCode元素。

    尝试在没有任何Bash启动文件(从PowerShell或CMD)的情况下运行该实例:

    PS> wsl -d Ubuntu -e bash --noprofile --norc
    

    ,然后尝试code .。当然,这是假设你的Ubuntu实例被命名为Ubuntu。如果它被命名为其他东西(wsl -l),然后根据需要编辑-d Ubuntu。您也可以尝试将其启动为wsl -d Ubuntu -e sh -c 'code .'

    如果可以,检查启动文件是否对PATH有任何修改。

  • 不太可能(因为您应该知道是否这样做了),您可以禁用在特定发行版/实例中附加Windows PATH的WSL特性。检查是否存在/etc/wsl.conf文件——如果存在,appendWindowsPath=false行也会导致您所看到的行为。只需将违规设置更改为true。退出你的Ubuntu实例,运行wsl --terminate Ubuntu(同样,替换正确的发行版名称),然后重启。检查您的PATH,然后再尝试code .

相关内容

  • 没有找到相关文章

最新更新