iTerm2 多标签 SSH:用 Shell Integration 保持会话路径
· 146 字 · 约 1 分钟
这篇记录一个常用终端工作流:
- 每次打开新标签页,自动
ssh到指定主机。 - 通过
Duplicate Tab打开的标签页,默认进入和当前标签页相同的远端路径。
核心点是同时配置两件事:
- Profile 的启动命令固定为
ssh <host>。 - 在本地和远端都安装 iTerm2 Shell Integration,让 iTerm2 能感知当前目录(CWD)。
目标效果
- 在 iTerm2 中打开标签页时,自动连到目标机器。
- 如果当前标签页在远端
/data/app,使用Duplicate Tab后新标签页也会落在/data/app(依赖 Shell Integration 正常上报目录)。
iTerm2 配置
按下面配置一个专用 Profile(例如命名为 ssh-dev):
关键项:
Command选择SSH。- 命令填
ssh your-user@your-host(按你的实际主机改)。 Working Directory选择Reuse previous session's directory。- 打开
Load shell integration automatically开关。
完成后,使用这个 Profile 打开新标签页即可。
创建新 Window 时,也可以在 iTerm2 的菜单里直接选择对应 Profile(例如 ssh-dev),这样新窗口启动后会直接进入你预设的 SSH 会话。
菜单路径示例:Shell > New Window > ssh-dev。
注意:路径继承以 Duplicate Tab 为准。普通 cmd+t 新建标签页在你的配置下可能不会继承当前目录。
如果你习惯 cmd+t,可以在 iTerm2 快捷键中把 cmd+t 改绑为 Duplicate Tab,这样按键习惯不变,同时保留路径继承行为。
安装 Shell Integration
本地和远端都建议安装。至少远端 shell 要能上报当前目录,否则无法稳定继承远端路径。
|
|
安装后重开终端会话,再连一次远端。
验证
- 用
ssh-devProfile 打开第一个标签页。 - 在远端执行
cd /tmp(或任意目录)。 - 使用 iTerm2 的
Duplicate Tab打开新标签页。 - 观察是否自动连接同一主机,且路径仍是刚才目录。
常见问题
- 新标签页能 ssh 但路径没继承。 常见原因是远端没有生效 Shell Integration,或者 shell 启动脚本没有正确加载。
- 有时进入家目录而不是当前目录。
先确认 Profile 已设置
Reuse previous session's directory,再检查是否是首次会话(首次没有“上一个目录”可继承)。 - 只想部分标签页自动 ssh。
不要改默认 Profile,单独建一个
ssh-*Profile 按需使用。