VSCode默认终端不会自动跟随系统shell,必须显式配置terminal.integrated.defaultProfile;确认方法:新建终端后看标签页名称,或检查设置中该配置值是否为"zsh"(macOS/Linux)。

VSCode 默认终端不会自动跟随系统 shell,必须显式配置 terminal.integrated.defaultProfile 才能生效;否则即使 chsh -s $(which zsh) 成功,终端仍可能拉起 bash。
怎么确认当前默认终端是不是 zsh
打开 VSCode 终端(Ctrl + `),看顶部标签页名称——如果显示 Bash、PowerShell 或 Git Bash,就不是 zsh。更准确的方式是:在设置里搜索 terminal.integrated.defaultProfile,看右侧值是否为 "zsh"(macOS/Linux)或对应路径;Windows 用户不用配这个,zsh 在原生 Windows 下不可用。
macOS / Linux 怎么正确设为 zsh
关键不是选“zsh”就行,而是平台键名和路径都得对:
- 打开
settings.json(命令面板输入Preferences: Open Settings (JSON)) - 添加或修改这一行(注意平台后缀):
"terminal.integrated.defaultProfile.osx": "zsh"(macOS)"terminal.integrated.defaultProfile.linux": "zsh"(Linux) - 删掉旧的
terminal.integrated.shell.*配置(VSCode 1.79+ 已废弃) - 如果下拉菜单里没出现 zsh,说明 VSCode 没自动探测到,必须手动声明 profile 路径:
"terminal.integrated.profiles.osx": {<br> "zsh": {<br> "path": "/usr/bin/zsh",<br> "args": ["-l"]<br> }<br>}其中/usr/bin/zsh要替换成which zsh的真实输出,-l是登录 shell 参数,否则~/.zshrc不加载
为什么改了配置,新终端还是 bash
常见原因有三个:
- 已有终端实例不受影响,必须关掉所有终端页签,再按
Ctrl + `新建一个 - 工作区级配置(
.vscode/settings.json)覆盖了用户级设置,检查并删掉重复的terminal.integrated.defaultProfile.* - 填了错误路径,比如
~/bin/zsh(VSCode 不展开~)、/bin/zsh(macOS Sonoma 后已移至/usr/bin/zsh)、或路径根本不存在(终端启动失败时会静默回退到 bash)
最易被忽略的是:profile 名称(如 "zsh")必须和 defaultProfile 值完全一致,大小写敏感;且 macOS 和 Linux 必须用各自平台专属键名,写错就等于没配。


















