核心是将配置抽离为可版本化、可复现的独立资产,通过统一源(git/icloud)、可控挂载(符号链接)、可靠分发(自动化脚本)实现多 mac 终端环境一致。
让多台 mac 的终端开发环境保持配置一致,核心不是“复制粘贴”,而是把配置从设备中抽离出来,变成可版本化、可复现、可同步的独立资产。关键在于统一源、可控挂载、可靠分发。
iTerm2 配置统一管理
iTerm2 本身不支持跨设备自动同步,但它的偏好文件是标准 plist 格式,可以被外部接管:
- 关闭默认偏好路径,启用「Load preferences from a custom folder」,指向一个共享位置(如 iCloud 或 Git 仓库中的子目录)
- 用符号链接把
~/Library/Preferences/com.googlecode.iterm2.plist指向该共享路径,确保每次启动都读取同一份配置 - Profile、颜色方案、快捷键等全部保存在该 plist 中,修改后只需等待同步完成(iCloud 约 5–10 分钟,Git 推送即生效)
Shell 配置(zsh / oh-my-zsh / p10k)集中托管
将 .zshrc、.p10k.zsh、.zsh_aliases 等文件纳入统一目录管理,避免散落在各设备 home 下:
- 新建
~/.dotfiles作为根目录,初始化 Git 仓库 - 把现有配置移入并建立软链:例如
ln -s ~/.dotfiles/zshrc ~/.zshrc - 使用
source ~/.zshrc即可立即加载变更;新设备只需克隆仓库 + 运行链接命令 + 重载即可完全复现 - 推荐搭配 Powerlevel10k 和 oh-my-zsh 插件,所有主题与功能均通过配置文件驱动,无需手动安装
SSH 与密钥的安全协同
SSH 配置(~/.ssh/config)可同步,但私钥(id_rsa 等)绝不能明文上传云盘或 Git:
- 仅将
~/.ssh/config文本内容纳入 dotfiles 仓库,它不含敏感信息,只定义主机别名、端口、用户等 - 私钥保留在本地,权限严格设为
chmod 600;若需多设备可用,用 1Password CLI 或 gopass 按需注入 - 更轻量的替代是 Termius:端到端加密同步 SSH 主机、会话、片段和别名,覆盖全平台且不暴露私钥
自动化还原与防错机制
配置一致性的长期维护,靠的是可重复执行的初始化流程,而非记忆操作步骤:
- 写一个简短的 setup.sh 脚本:检查 Homebrew、克隆 dotfiles、创建软链、安装 oh-my-zsh、重载 shell
- 脚本开头加入
set -e,任一命令失败即中断,避免半截配置污染环境 - 配合 Git tag 或分支管理不同阶段的配置(如
v2.3-secure表示启用了 SSH 密钥保护策略) - 定期运行
git status和ls -l ~/.zshrc快速验证软链是否有效、配置是否最新











