macOS Terminal.app 支持标签页管理:Command+T 新建、Command+W 关闭当前标签页;Command+Shift+[ / ] 切换相邻标签;printf '\e]1;name\a' 动态重命名;不支持拖拽分屏或编号跳转,高频需求建议换 iTerm2 或用 tmux。

终端窗口太多时,Command+T 和 Command+W 是最基础但易被忽略的标签页操作
MacOS 自带的 Terminal.app 默认支持标签页(Tab),不是靠开多个窗口堆叠。很多人误以为必须用 Command+N 新建窗口,结果桌面瞬间飘满 Terminal 窗口——其实 Command+T 才是新建标签页的正确快捷键,Command+W 关闭当前标签页(不是整个窗口)。关到最后一个标签页时,Terminal 才会真正退出,这点和浏览器行为一致。
注意:Command+Shift+T 在 Terminal 中无效(不像 Safari 或 Chrome 可恢复关闭的标签),关了就没了,没有撤销机制。
快速切换标签页不能只靠鼠标:用 Command+Shift+[ 和 Command+Shift+]
当打开 5 个以上标签页时,鼠标点选效率极低。Terminal 原生支持键盘切换:
-
Command+Shift+[:切换到左侧相邻标签页 -
Command+Shift+]:切换到右侧相邻标签页 - 不支持跳转到指定编号标签(如
Command+1切第一项),那是 iTerm2 的功能,系统 Terminal 没有 - 如果按了没反应,检查是否被其他应用(比如微信、QQ)全局快捷键劫持,可在「系统设置 > 键盘 > 快捷键 > 输入源」里排查
标签页命名混乱?用 printf '\e]1;your-name\a' 动态改名
默认所有标签页都显示“bash”或当前路径前缀,一旦开了多个 ssh 连接或本地服务,根本分不清哪个是 dev-server、哪个在跑数据库。Terminal 支持通过 ANSI 转义序列修改标签页标题:
printf '\e]1;dev-api-server\a'
执行后,当前标签页标题立刻变成 dev-api-server。常见用法:
- 连远程服务器后立即重命名:
ssh user@prod && printf '\e]1;prod-db\a' - 启动本地服务前加一句:
printf '\e]1;nextjs-dev\a' && npm run dev - 注意
\e是 ESC 字符,不能写成\033或\x1b—— 系统 Terminal 对转义支持较严格,只认\e - 这个命名不会持久,关闭标签页就失效;也不能用脚本批量设其他标签页的名,只能作用于当前
想拖拽/分屏管理?别硬扛 Terminal.app,它不支持标签页跨窗口拖动
系统 Terminal 的标签页是严格绑定窗口的,无法像 Chrome 那样把某个 Tab 拖出来变成独立窗口,也不能左右分屏显示两个标签页。这是它的硬限制,不是设置问题。如果你需要:
- 多标签 + 分屏 + 快速跳转编号(
Command+1~Command+9)→ 换 iTerm2 - 临时对比两个命令输出 → 用
tmux的 pane(不是 tab),它和 Terminal 标签页层级不同,但更灵活 - 只是嫌窗口遮挡 Dock → 把 Terminal 设为「始终保持置顶」或用
Command+Option+H隐藏其他应用,聚焦当前
系统 Terminal 的标签页管理能力就到这儿了,够轻量,也够局限;真要高频多任务,绕不开换工具或加终端复用器。

















