VS Code terminal 怎样为不同 shell 设置独立 profile
在 VS Code 的 terminal.integrated.profiles. 中,用不同名称分别定义 shell 的 path、args 和 env,再把 terminal.integrated.defaultProfile. 设为其中一个名称,就能同时保留独立的终端启动配置。切换的是新终端的启动方式,不会把已经运行的 Bash 原地变成 zsh。
官方地址:https://code.visualstudio.com/
Terminal Profiles 文档:https://code.visualstudio.com/docs/terminal/profiles
下面用 macOS 的 zsh 与 Bash 给出一份紧凑写法;前提是示例路径中的 shell 已存在。Windows 和 Linux 要使用自己的平台设置与可执行文件位置。所有配图都是 ImageGen 原创操作说明图,不是软件截图;本文没有启动实际终端或执行示例命令。
1. 从终端下拉菜单进入 profile 设置
先通过菜单 View → Terminal 打开底部终端面板,再点击右上角新建终端加号旁的下拉箭头,选择 Select Default Profile。也可以用 View → Command Palette 搜索 Terminal: Select Default Profile。不要误选编辑器的 Create Profile:编辑器 Profiles 与这里的 shell profiles 是两套功能。
在候选列表中,找到要作为基础的 shell,点击该行右侧的配置齿轮,按提示提供一个新的 profile 名称;VS Code 会把相应条目加入设置。完成这一动作后,应能在设置中找到该 shell 条目,而不只是看到系统自动检测出的名称。

如果希望直接编辑配置,通过命令面板执行 Preferences: Open User Settings (JSON)。本文把个人 shell 路径放在用户设置中,避免把个人机器的绝对路径随项目共享。先保留已有设置,只增加或合并对应字段。
2. 为 zsh 和 Bash 保存两份独立配置
在用户 settings.json 中合并以下片段。这里用两个显式 path,读者可以直接看出每个名称启动哪个程序。相同的 env 字段在不同 profile 下各自设置,演示值不包含口令或生产地址。
{
// macOS使用osx后缀;不要把它复制成Windows或Linux的设置名
"terminal.integrated.profiles.osx": {
"Zsh 项目交互": {
"path": "/bin/zsh",
"args": ["-l"],
"overrideName": true,
"env": {
"DEMO_SHELL_PROFILE": "zsh-project"
}
},
"Bash 兼容会话": {
"path": "/bin/bash",
"args": [],
"overrideName": true,
"env": {
"DEMO_SHELL_PROFILE": "bash-compat"
}
}
},
// 值必须与上面定义的profile名称一致
"terminal.integrated.defaultProfile.osx": "Zsh 项目交互"
}
这是可作为独立 settings.json 使用的 JSONC 示例;已有文件中不要再套一层大括号,也不要重复声明相同顶层键。保存后的可见状态是文件标签没有未保存标记,并且新建终端下拉中能找到两个自定义名称。

| 字段 | 本例作用 | 容易混淆的地方 |
|---|---|---|
| path | 指定shell可执行文件 | 不是工作目录,也不会安装shell |
| args | 给对应shell传启动参数 | 参数按元素分开,含义由shell决定 |
| env | 为该profile添加演示变量 | 不等于完整隔离全部环境 |
| overrideName | 用固定profile名显示终端标题 | 不是修改操作系统shell名称 |
zsh 中的 -l 表示登录 shell;Bash 这份例子没有加登录参数,因此两者读取的启动文件可能不同。应按团队实际需要决定参数,不把某一组 args 强行套给所有 shell。系统自带 Bash 的版本也不因为建立 profile 就自动升级。
Windows 对应 terminal.integrated.profiles.windows,可用 source 检测 PowerShell 或 Git Bash,也可以指定 path;Linux 对应 terminal.integrated.profiles.linux。macOS 使用 osx,而不是 macos 后缀。跨平台仅更换后缀仍不够,路径与启动参数也必须适配。
3. 设置默认项并分别新建终端
再次打开终端加号旁下拉菜单,选择 Zsh 项目交互 新建一个终端,再选择 Bash 兼容会话 新建另一个。右侧终端列表应出现两个固定名称;点击名称即可在会话之间切换。它们是两个进程,不是同一个终端里的外观主题。

如需用菜单改变默认项,执行 Terminal: Select Default Profile 并选择自定义名称;然后点击加号新建终端,观察新标签是否使用该名称。已有终端不受这次修改影响。确认旧会话没有运行中的任务后,才考虑用垃圾桶图标关闭它,不能为刷新配置直接终止未知任务。
读者可在自己新建的两个演示会话中输入以下只读命令,观察专属变量。预期 zsh 会话显示 zsh-project,Bash 会话显示 bash-compat;若启动脚本后来覆盖了同名变量,值可能不同,应检查自己的初始化文件。
# 只打印本例的演示标识,不输出完整环境或任何凭据 printf '%s\n' "$DEMO_SHELL_PROFILE"
独立 profile 不意味着隔离所有 PATH、启动脚本或扩展注入的变量。若需要真正的隔离开发环境,应另行设计容器或远程环境,而不是仅靠两个名称判断它们互不影响。
为什么修改默认项后终端还是原来的 shell?先确认打开的是新会话。正在运行的进程不会因设置变化而替换。若新会话也不对,再查看当前设置作用范围和终端所在的远程环境。
为什么能看到 profile,却无法启动?检查 path 是否指向本机或相应远程环境中的可执行文件,以及 args 是否适用于该 shell。建立配置只记录启动信息,不负责安装或修复 shell。
任务和调试一定使用同一份交互配置吗?不要这样推断。任务与调试终端可以用 terminal.integrated.automationProfile. 单独设置,任务自身也可能有启动选项。需要保持一致时,在相应入口明确配置,而不是只修改默认交互终端。
撤销时,只删除本次新增的两个 profile,并把 defaultProfile 指向仍然存在的条目或恢复其默认值。保留其他已有终端设置,不要清空整个 settings.json。最终应能从下拉菜单分别创建两个目标 shell,并清楚知道默认项服务于哪个新会话。
VS Code Search Editor 怎样保存可复用的跨文件搜索条件
- 上一篇
- VS Code Search Editor 怎样保存可复用的跨文件搜索条件
- 下一篇
- VS Code testing 怎样只运行当前测试文件
-
- 文章 · 软件教程 | 51分钟前 |
- VS Code port forwarding 怎样限制转发端口的访问范围
- 477浏览 收藏
-
- 文章 · 软件教程 | 55分钟前 |
- VS Code notebooks 怎样固定 notebook 内核选择
- 469浏览 收藏
-
- 文章 · 软件教程 | 1小时前 | vs code · 软件教程 · VS Code Search Editor 跨文件搜索 保存搜索条件 工作区搜索
- VS Code Search Editor 怎样保存可复用的跨文件搜索条件
- 238浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code extensions 扩展宿主高占用时怎样定位扩展
- 365浏览 收藏
-
- 文章 · 软件教程 | 1小时前 | git · vs code · Git VS Code Source Control Stage Selected Ranges 部分暂存
- VS Code Source Control 怎样只提交选中的行
- 216浏览 收藏
-
- 文章 · 软件教程 | 1小时前 | ssh · git · vs code · Git VS Code Dev Containers SSH agent
- VS Code dev containers 怎样让容器复用宿主机 SSH agent
- 291浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code 资源管理器怎样关闭紧凑文件夹显示
- 413浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code multi-root 怎样让工作区共享任务配置
- 471浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code Settings Sync 怎样清除云端同步数据后重新开始
- 444浏览 收藏
-
- 文章 · 软件教程 | 1小时前 |
- VS Code Extension Bisect 怎样排查扩展冲突
- 261浏览 收藏
-
- 文章 · 软件教程 | 1天前 |
- WinSCP 怎样只同步远端新增文件
- 499浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 661次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 681次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 727次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 695次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 528次使用
-
- VS Code 怎么给 Go 项目配置测试任务:tasks.json 运行与结果验收
- 2026-07-09 501浏览
-
- Windows 11 如何开启 HEIF 图片支持
- 2026-05-31 501浏览
-
- TikTok用户画像与付费订阅变现方法
- 2026-05-27 501浏览
-
- 学信网学历翻译件申请方法
- 2026-05-27 501浏览
-
- Windows 11 24H2 更新失败0x80070005解决方法
- 2026-05-26 501浏览

