You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让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的配置文件:

  1. 打开~/.bashrc文件(如果用zsh就改~/.zshrc):
    nano ~/.bashrc
    
  2. 在文件末尾添加下面的内容(同样替换成你的实际路径):
    # 导入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"
    
  3. 保存退出后,执行source ~/.bashrc让配置立刻生效,或者重启WSL终端就行。

三、让WSL自动导入Windows完整PATH(更省心)

其实WSL默认支持自动把Windows的PATH追加到自己的PATH里,可能是你的配置被禁用了,检查一下:

  1. 打开(没有就创建)/etc/wsl.conf文件:
    sudo nano /etc/wsl.conf
    
  2. 添加下面的配置:
    [interop]
    enabled = true          # 开启WSL和Windows的互操作性
    appendWindowsPath = true # 自动把Windows的PATH追加到WSL的PATH中
    
  3. 保存退出后,在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

火山引擎 最新活动