所以我有两个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 .
。