VSCode终端默认shell不生效需先确认系统已安装对应shell并加入PATH;再通过settings.json配置terminal.integrated.defaultProfile.windows,确保名称与Select Default Profile列表完全一致,并删除已弃用的shell.windows配置。

VSCode 终端默认 shell 不生效?先确认系统已安装对应 shell
VSCode 不会自动安装 PowerShell 或 Git Bash,它只是调用系统已存在的可执行文件。如果修改后终端仍启动 cmd 或报错 Unable to launch terminal process,大概率是路径没找到或 shell 未正确安装。
- PowerShell:Windows 10/11 自带
powershell.exe(v5.1),推荐装pwsh.exe(PowerShell 7+),需手动下载安装并确保其在PATH中 - Git Bash:安装 Git for Windows 时勾选 “Add Git Bash to PATH”(或手动添加类似
C:Program FilesGitinash.exe的路径) - 验证方式:在任意 CMD 窗口中运行
where powershell或where bash,有输出才说明可被 VSCode 找到
修改默认终端的两种可靠方式:设置 UI + settings.json
VSCode 1.84+ 推荐优先用命令面板切换,但「永久设为默认」仍需配置 terminal.integrated.defaultProfile.windows。UI 操作快但易被忽略细节,settings.json 更稳定、可复用。
- 快捷方式(临时切换当前终端):
Ctrl+Shift+P→ 输入Terminal: Select Default Profile→ 选PowerShell或Git Bash - 永久生效(必须改设置):打开
settings.json(Ctrl+,→ 右上角 {} 图标),添加或修改:
"terminal.integrated.defaultProfile.windows": "PowerShell", // 或 "terminal.integrated.defaultProfile.windows": "Git Bash"
注意:"PowerShell" 对应系统自带 powershell.exe;若装了 PowerShell 7,显示名通常是 PowerShell (pwsh),值就得写成 "PowerShell (pwsh)" —— 名字必须和 Select Default Profile 列表里完全一致。
Git Bash 启动黑屏 / 报错 bash: /dev/tty: No such device or address?
这是 Git Bash 在 VSCode 终端中常见的兼容性问题,本质是缺少伪终端支持。不是配置错了,而是启动参数缺了 --login -i。
- 不要直接设
bash.exe路径,而要通过terminal.integrated.profiles.windows显式声明,并补全参数 - 在
settings.json中添加完整 profile(替换原有 Git Bash 条目):
"terminal.integrated.profiles.windows": {
"Git Bash": {
"source": "Git Bash",
"args": ["--login", "-i"]
}
}
如果仍不行,可改用绝对路径(确保路径中无空格或使用双反斜杠):
"Git Bash": {
"path": "C:\Program Files\Git\bin\bash.exe",
"args": ["--login", "-i"]
}
为什么改了设置却新开终端还是 cmd?检查 profile 名是否拼错或被覆盖
VSCode 终端 profile 名区分大小写,且工作区设置(.vscode/settings.json)会覆盖用户设置。常见静默失败原因:
-
defaultProfile值写成了gitbash或git-bash,实际应为Git Bash(空格和大小写必须匹配) - 同时设置了
terminal.integrated.shell.windows(旧版配置),它会强制覆盖defaultProfile,必须删掉这一行 - 当前文件夹含
.vscode/settings.json,里面定义了不同默认 shell,优先级更高 - 重启 VSCode 不是必须的,但「重新打开终端」(
Ctrl+Shift+`关闭再开)才能应用新 defaultProfile
最稳的验证方式:打开命令面板 → Terminal: Select Default Profile,看顶部下拉列表里有没有你期望的选项,以及当前激活项是否和 defaultProfile 一致。











