VSCode 默认终端由系统自动推断,Windows 常误设为 PowerShell;可通过顶部标签页或设置中 terminal.integrated.defaultProfile 查看,修改 terminal.integrated.defaultProfile.windows 即可切换至 Git Bash 或 WSL。

VSCode 默认终端类型由系统自动推断,但 Windows 上常误设为 PowerShell(尤其新装系统),导致 Bash 命令报错或 git 行为异常;直接改设置就能切到 bash、pwsh 或 cmd,无需重装或改系统默认 Shell。
怎么查当前默认终端是哪个
打开 VSCode → 按 Ctrl+`(反引号)唤出终端 → 看顶部标签页名称,比如 PowerShell、Git Bash、WSL Bash。如果没看到标签页,点右上角 + 旁的下拉箭头,当前选中项就是默认终端。
更准的方式是:在设置里搜 terminal.integrated.defaultProfile,看右侧值——它可能显示 "PowerShell"、"Git Bash" 或完整路径如 "C:\Program Files\git\bin\bash.exe"。
Windows 下如何强制设为 Git Bash 或 WSL
关键不是改系统环境变量,而是告诉 VSCode 哪个可执行文件是你要的终端。常见场景:
- 用 Git Bash:确保已安装 Git for Windows,然后在设置中把
terminal.integrated.defaultProfile.windows设为"Git Bash"(前提是 VSCode 能自动发现);若不识别,手动填路径:"C:\Program Files\Git\bin\bash.exe"或"C:\Users\{user}\AppData\Local\Programs\Git\bin\bash.exe" - 用 WSL(如 Ubuntu):路径通常是
"C:\Windows\System32\wsl.exe",也可加参数:"C:\Windows\System32\wsl.exe -d Ubuntu"(注意双引号和空格) - 别写错键名:Windows 平台必须用
terminal.integrated.defaultProfile.windows,写成.linux或漏掉.windows后缀会无效
为什么改了设置还是打开 PowerShell
常见原因有三个:
- 设置了用户级配置,但工作区(.vscode/settings.json)里有同名覆盖项——删掉工作区里的
"terminal.integrated.defaultProfile.windows"行 - 终端已存在实例:VSCode 不会动态切换已有终端的 Shell,关掉所有终端再按
Ctrl+`才生效 - 路径含空格或特殊字符没加引号:比如
C:Program Files...ash.exe必须整个用双引号包裹,否则启动失败并回退到 PowerShell - 权限问题:某些组织策略禁用
wsl.exe或bash.exe,此时终端会静默失败,只显示空白或快速闪退——可先在 Windows Terminal 里手动运行该路径验证是否可用
macOS / Linux 用户注意终端 Profile 名称差异
macOS 上默认是 zsh,Linux 多为 bash,但 VSCode 不靠系统默认 Shell 决定,而是读取 terminal.integrated.defaultProfile.osx 或 .linux 的值。如果你装了 fish 或 starship,得手动指定完整路径,例如:"/usr/local/bin/fish"。别依赖 shell 命令输出,VSCode 启动终端时不会调用 $SHELL。
另外,terminal.integrated.profiles.linux 这类配置项只是“定义列表”,真正起作用的是 defaultProfile 对应的 key 名——比如你定义了一个叫 "My Zsh" 的 profile,就得把 defaultProfile.linux 设为 "My Zsh",而不是路径。
最易被忽略的一点:VSCode 终端 Profile 是分平台配置的,Windows 设置对 macOS 完全无效;而且一旦你在某个项目里写了 .vscode/settings.json,它会优先于全局设置——排查时先确认你在改哪一层的配置。


















