如何让Debian版WSL共享Windows系统的PATH环境变量?
让Debian WSL共享Windows PATH的解决办法
我之前刚折腾过Debian WSL搭配Windows工具的场景,完全懂你只想把它当带包Bash壳子的需求,给你捋几个靠谱的解决办法:
一、临时生效(快速测试)
如果只是想先验证是不是PATH的问题,直接在Debian终端里执行下面的命令(记得把路径换成你自己Windows里的实际位置):
# 先添加Windows系统核心工具路径 export PATH=$PATH:/mnt/c/Windows/System32 # 添加Git的bin目录(如果你的Git装在其他盘就改路径) export PATH=$PATH:/mnt/c/Program\ Files/Git/bin # 添加Rust的cargo路径,替换成你的Windows用户名 export PATH=$PATH:/mnt/c/Users/你的用户名/.cargo/bin
执行完之后试试git --version或者rustc --version,应该就能正常调用Windows里的工具了。
二、永久生效(一劳永逸)
要让每次打开WSL都自动加载这些路径,得修改Bash的配置文件:
- 打开
~/.bashrc文件(如果用zsh就改~/.zshrc):nano ~/.bashrc - 在文件末尾添加下面的内容(同样替换成你的实际路径):
# 导入Windows系统工具路径 export PATH="$PATH:/mnt/c/Windows/System32" # 导入Git工具路径 export PATH="$PATH:/mnt/c/Program Files/Git/bin" # 导入Rust工具链路径 export PATH="$PATH:/mnt/c/Users/你的用户名/.cargo/bin" - 保存退出后,执行
source ~/.bashrc让配置立刻生效,或者重启WSL终端就行。
三、让WSL自动导入Windows完整PATH(更省心)
其实WSL默认支持自动把Windows的PATH追加到自己的PATH里,可能是你的配置被禁用了,检查一下:
- 打开(没有就创建)
/etc/wsl.conf文件:sudo nano /etc/wsl.conf - 添加下面的配置:
[interop] enabled = true # 开启WSL和Windows的互操作性 appendWindowsPath = true # 自动把Windows的PATH追加到WSL的PATH中 - 保存退出后,在Windows的CMD/PowerShell里执行
wsl --shutdown,然后重新打开Debian WSL,现在Windows里所有在PATH里的工具都能直接在WSL里调用了。
小提示
- 如果WSL里安装了和Windows同名的软件(比如WSL里也装了git),WSL会优先用自己的版本,因为默认WSL的PATH在前。如果想优先用Windows的,就把Windows的路径放在
$PATH前面,比如:export PATH="/mnt/c/Program Files/Git/bin:$PATH" - 路径里有空格的话,要么用反斜杠转义(比如
Program\ Files),要么把整个路径用引号包起来。
内容的提问来源于stack exchange,提问作者Ben Gubler




