VS Code 终端默认调用系统 shell,需手动配置绝对路径以识别 PowerShell 7 或 Bash;macOS/Linux 需确保 bash 被设为登录 shell 并用 -l 参数加载配置;PATH 不一致时应通过 env 显式设置;切换 shell 无需重启,用终端面板下拉菜单或快捷键即可。

VS Code 终端不“集成”PowerShell 或 Bash,而是调用系统已安装的 shell 可执行文件;配置本质是告诉 VS Code 哪个 pwsh、powershell.exe 或 bash 二进制路径可用、何时启用、如何传参。
如何让 VS Code 识别并默认使用 PowerShell(Windows)
VS Code 在 Windows 上默认尝试启动 powershell.exe,但若你装了 PowerShell Core(即 pwsh),它不会自动选中——必须显式指定路径。常见错误是直接填 pwsh 而没加完整路径,导致终端报错 The term 'pwsh' is not recognized。
- 先在 PowerShell 中运行
Get-Command pwsh或where.exe pwsh查出实际路径,例如C:\Program Files\PowerShell\7\pwsh.exe - 打开 VS Code 设置(
Ctrl+,),搜索terminal integrated default profile,点击下拉菜单里的Configure Terminal Profiles... - 在弹出的
settings.json中添加或修改terminal.integrated.profiles.windows条目:
{
"terminal.integrated.profiles.windows": {
"PowerShell 7": {
"source": "PowerShell",
"args": ["-NoLogo"],
"path": "C:\\Program Files\\PowerShell\\7\\pwsh.exe"
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell 7"
}
注意:path 必须是绝对路径且反斜杠双写;source: "PowerShell" 是为了继承 PowerShell 的环境变量注入逻辑,不是指调用旧版 powershell.exe。
如何在 macOS / Linux 上切换 Bash 为默认 shell(而非 zsh)
macOS Catalina 后系统默认 shell 是 zsh,VS Code 终端会继承当前用户默认 shell。想强制用 bash,不能只改 terminal.integrated.defaultProfile.osx,还得确保 bash 已被系统允许作为登录 shell(否则会静默失败或回退到 zsh)。
- 先运行
cat /etc/shells,确认/bin/bash在列表中;若不在,需用sudo dscl . -create /Users/$USER UserShell /bin/bash(macOS)或chsh -s /bin/bash(Linux)设为登录 shell - 再在
settings.json中配置:
{
"terminal.integrated.profiles.osx": {
"Bash": {
"path": "/bin/bash",
"args": ["-l"]
}
},
"terminal.integrated.defaultProfile.osx": "Bash"
}
-l 参数很重要:它让 bash 以登录模式启动,从而加载 ~/.bash_profile 或 ~/.bashrc,否则你的 alias、PATH 修改可能不生效。
为什么终端里 node、python 找不到,但外部终端能用?
VS Code 终端启动时,**不会完全复现 GUI 环境下的 PATH**,尤其在 macOS/Linux 上,GUI 应用(包括 VS Code)通常由 launchd 启动,其环境变量与终端 shell 不一致。这不是 VS Code bug,是操作系统机制。
- 不要指望改
~/.bashrc就能让 VS Code 终端自动读取 PATH —— 它只在交互式非登录 shell 下读~/.bashrc,而 VS Code 默认启的是登录 shell(-l),优先读~/.bash_profile - 更可靠的做法是在
settings.json的 shell profile 配置里显式补 PATH:
{
"terminal.integrated.profiles.osx": {
"Bash": {
"path": "/bin/bash",
"args": ["-l"],
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:${env:PATH}"
}
}
}
}
注意:${env:PATH} 是 VS Code 提供的变量语法,用于拼接原始 PATH;Windows 上对应写法是 ${env:PATH},但需用双反斜杠转义路径分隔符。
PowerShell 和 Bash 共存时怎么快速切换?
不需要重启 VS Code,也不用改设置。每次新建终端时,点击右上角终端面板的 + 按钮旁的下拉箭头,就能看到所有已配置的 profiles(如 PowerShell 7、Bash、Command Prompt)。选中即可立即启动对应 shell。
快捷键是 Ctrl+Shift+P → 输入 Terminal: Select Default Profile,可临时覆盖全局默认值;或者用 Ctrl+Shift+` 打开终端后,按 Ctrl+Shift+5(Windows/Linux)或 Cmd+Shift+5(macOS)呼出 profile 切换面板。
真正容易被忽略的是:profile 名称(如 "PowerShell 7")必须和 defaultProfile 字段值严格一致,大小写、空格、引号都不能错;VS Code 不会报错,只会静默 fallback 到第一个可用 profile。










