为何在Windows 10终端执行bash命令会打开WSL,如何阻止该行为?
为何在Windows 10终端执行bash命令会打开WSL,如何阻止该行为?
嗨,这个问题其实是Windows的默认设置在搞鬼:当你安装了WSL(适用于Linux的Windows子系统)后,微软会把终端里的bash命令默认关联到WSL的启动程序C:\Windows\System32\bash.exe,所以你一敲bash就自动切到WSL环境了。要是直接禁用WSL,这个关联程序就失效了,自然会弹出“WSL未启用”的报错。
下面给你几个实用的解决办法,按需选择就行:
方法一:用Windows版Bash替换(推荐)
如果平时需要用Bash但不想碰WSL,比如常用的Git Bash,你可以通过调整环境变量优先级,让系统优先找到你想要的Bash版本:
- 右键「此电脑」→ 「属性」→ 「高级系统设置」→ 「环境变量」
- 在「系统变量」里找到
PATH,点击「编辑」 - 找到你安装的Bash所在的bin目录(比如Git Bash一般是
C:\Program Files\Git\bin),把它拖到PATH列表的最顶部 - 保存设置后重启终端,再敲
bash就会启动你指定的Bash版本了
方法二:临时/永久修改bash命令关联
先确认当前bash命令指向哪里:在终端执行
where bash
如果第一个输出是C:\Windows\System32\bash.exe,那就是WSL的启动器。你可以这样调整:
- 临时生效(重启终端后失效):用
doskey创建别名
doskey bash="C:\Program Files\Git\bin\bash.exe" $*
- 永久生效:把上面的命令加到终端的启动脚本里(比如PowerShell的
$PROFILE文件,或者cmd的自动执行脚本)
方法三:彻底移除WSL关联(谨慎操作)
要是确定不需要WSL,先卸载WSL组件(设置→应用→可选功能→找到Windows Subsystem for Linux相关组件卸载),然后安装其他Bash工具(比如Git Bash),再按方法一配置环境变量,这样bash命令就会完全指向你安装的版本了。
备注:内容来源于stack exchange,提问作者Andrii Hnatushchenko




