vs code 默认终端非 powershell,需手动配置:先确认 pwsh 已安装并加入 path,再在 settings.json 中为对应平台设置 terminal.integrated.profiles.* 和 defaultprofile 指向 pwsh,并可添加 args 加载 $profile;powershell 扩展与终端功能独立,须二者协同配置。

VS Code 默认终端不一定是 PowerShell,尤其在 Windows 上可能默认是 cmd 或 Git Bash;macOS/Linux 更大概率是 zsh 或 bash。要让它真正用上 PowerShell(尤其是 PowerShell 7),得手动指定终端路径和启动配置,否则 Ctrl+` 弹出来的根本不是你想要的环境。
确认已安装 PowerShell 7 并能被系统识别
PowerShell 7(powershell 或 pwsh)必须已正确安装且在系统 PATH 中可用。打开任意系统终端(非 VS Code),运行:
powershell --version
或(PowerShell 7 默认命令名):
pwsh --version
如果报错 'pwsh' is not recognized,说明没装好或没加进 PATH —— 此时 VS Code 无法调用它。常见遗漏点:
- Windows 上用
winget install Microsoft.Powershell安装后,需重启 VS Code 才能刷新 PATH - macOS 用 Homebrew 安装后,确保
/opt/homebrew/bin(Apple Silicon)或/usr/local/bin(Intel)在 shell 的 PATH 里 - Linux(如 Ubuntu)安装后,
pwsh通常在/usr/bin/pwsh,但某些发行版需手动软链
在 VS Code 中设置默认终端为 PowerShell
VS Code 终端类型由 terminal.integrated.defaultProfile.* 控制。打开设置(Cmd+, 或 Ctrl+,),搜索 terminal integrated default profile,点击「Edit in settings.json」,添加对应平台的配置:
Windows(推荐用 pwsh 而非旧版 powershell.exe):
"terminal.integrated.defaultProfile.windows": "PowerShell"
但仅这样不够 —— VS Code 可能仍选中系统自带的 Windows PowerShell。更稳妥的是显式指定可执行路径:
"terminal.integrated.profiles.windows": {
"PowerShell 7": {
"path": "pwsh",
"icon": "terminal-powershell"
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell 7"
macOS/Linux 类似,用 pwsh 即可:
"terminal.integrated.profiles.osx": {
"PowerShell": {
"path": "pwsh"
}
},
"terminal.integrated.defaultProfile.osx": "PowerShell"
改完保存,按 Ctrl+` 新开终端,左下角应显示「PowerShell」而非「bash」或「zsh」。
为什么 PowerShell 集成终端有时不加载 profile?
VS Code 的集成终端默认跳过用户 profile(如 $PROFILE),所以你写的 Set-Alias、oh-my-posh 初始化、模块自动导入等都不会生效。这不是 bug,是设计行为(避免启动慢、冲突)。要启用 profile,需加参数:
- Windows:
"args": ["-NoExit", "-Command", ". $PROFILE"] - macOS/Linux:
"args": ["-c", "source $PROFILE; exec pwsh"]
完整示例(Windows):
"terminal.integrated.profiles.windows": {
"PowerShell 7 (with profile)": {
"path": "pwsh",
"args": ["-NoExit", "-Command", ". $PROFILE"],
"icon": "terminal-powershell"
}
}
注意:-NoExit 必须加,否则执行完 . $PROFILE 就退出了;profile 文件本身也得存在(首次运行 pwsh 后会自动生成)。
PowerShell 扩展与终端不是一回事
很多人混淆「PowerShell 扩展」和「终端 Shell」:前者提供语法高亮、调试、F8 执行选中代码等功能,后者只是底层命令行环境。即使你没装 PowerShell 扩展,也能把终端设成 pwsh;反之,装了扩展但终端仍是 cmd,那 F8 运行脚本时实际还是走 cmd 解释器(会失败)。务必两者都配对 —— 扩展负责编辑体验,终端负责执行环境。
最常被忽略的一点:改完终端配置后,已打开的终端不会自动切换,必须关掉再按 Ctrl+` 新建一个;而 PowerShell 扩展的「集成控制台」(底部面板那个)是独立进程,它的启动逻辑由 powershell.integratedConsole.showOnStartup 控制,和上面的终端配置无关。











