在 Mac 上卸载 iTerm2
卸载 iTerm2 前,先导出自定义的配置、Dynamic Profiles 和自己写的脚本,并确认有没有打开过「从自定义文件夹加载偏好设置」,因为这个设置会改变真正的设置存放位置。这份指南覆盖官网直接下载和 Homebrew cask iterm2,两者安装的是同一个应用。
退出 iTerm2 并移除应用
从应用菜单退出 iTerm2,再把 iTerm.app 从「应用程序」拖进废纸篓。iTerm2 不运行自己的登录项或后台助手,不需要先停掉什么。
iTerm2 的文件放在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
~/Library/Preferences/com.googlecode.iterm2.plist |
你的配置文件、按键绑定和常规设置(如果没有改到自定义文件夹) | 卸载前备份,除非你用的是自定义文件夹 |
~/Library/Application Support/iTerm2/DynamicProfiles |
在偏好设置界面之外添加的、用 JSON 或 plist 定义的配置文件 | 备份自己写的文件 |
~/Library/Application Support/iTerm2/Scripts |
自动化脚本,以及 iTerm2 为它们创建的内置 Python 环境 | 备份自己写的脚本;Python 环境本身可以重新生成 |
~/Library/Application Support/com.apple.sharedfilelist/...iterm2*.sfl* |
最近打开的文档记录 | 可以删除 |
~/Library/Caches/com.googlecode.iterm2 |
可重新生成的缓存 | 可以删除 |
~/Library/Saved Application State/com.googlecode.iterm2*.savedState |
保存的窗口和标签页布局 | 可以删除 |
如果打开过「偏好设置 › General › Preferences › 从自定义文件夹或 URL 加载」(iTerm2 也可以用 defaults write com.googlecode.iterm2 LoadPrefsFromCustomFolder -bool true 加一个 PrefsCustomFolder 路径来设置),真正的设置就存在那个文件夹里,不在上面的 plist 里;需要单独核对它,移除应用不会碰到它。常规偏好设置文档 · Dynamic Profiles 文档 · 脚本文档
Shell 集成文件
如果用过「iTerm2 › Install Shell Integration」,会生成一个 ~/.iterm2_shell_integration.<shell> 文件(比如 zsh 是 ~/.iterm2_shell_integration.zsh),并在你的 shell 启动文件(~/.zshrc、~/.bash_profile、~/.profile 或 ~/.config/fish/config.fish,取决于用什么 shell)里加了一行引用它的代码。移除 iTerm2 不会动这两处;想清掉的话,打开启动文件,删掉或注释掉那行 source ".iterm2_shell_integration...,再删除 ~/.iterm2_shell_integration.<shell> 文件本身。留着也无妨:那一行只有在 iTerm2 运行时才起作用。
检查结果
在另一个终端应用里运行下面这些只读命令:
pgrep -il iterm
ls -d ~/Library/Application\ Support/iTerm2
grep -l iterm2_shell_integration ~/.zshrc ~/.bash_profile ~/.profile 2>/dev/null
pgrep 没有输出,说明 iTerm2 已经退出(进程名 "iTerm2" 专属于这个应用,其他终端应用用自己的名字)。ls 命令显示 ~/Library/Application Support/iTerm2(存放 Dynamic Profiles 和 Scripts)是否还在盘上。grep 命令列出哪些 shell 启动文件还在引用这个集成脚本;没有输出说明都没有。
用 Homebrew 安装时
下一次 Mole 更新会先检查 zap 清单,涉及未勾选的数据、其他应用共用的文件或无法确认的内容时不执行 --zap,已勾选的残留仍由 Mole 清理。Preview 290 尚未包含这项保护。
iterm2 这个 cask 在卸载时会替你退出 iTerm2。Mole Preview 290 移除 Homebrew 安装的 iTerm2 时执行 brew uninstall --cask --zap iterm2,zap 清单覆盖 ~/Library/Application Support/iTerm2 和 ~/Library/Application Support/iTerm(下面的 Dynamic Profiles、Scripts 和其余一切)、偏好设置 plist、缓存、cookies、HTTPStorages、WebKit 数据、保存的窗口状态,以及和 AI 相关的 iTermFileProvider 容器,不管你在 Mole 里勾选了什么,这些都会被删除。它不会动自定义偏好设置文件夹或 shell 集成文件。先备份自己写的 Dynamic Profiles 或脚本,或者跳过 zap,只删应用、保留其余内容:
brew uninstall --cask iterm2
Mole 会列出什么
以下是 Mole 1.15(目前为 Preview)的处理:
~/Library/Application Support/iTerm2会列出但被锁定,放在一个单独的、没有勾选框的「受保护数据」区块里,不是「列出但不默认勾选」那种可以勾上的行。iTerm2 这个应用会注册打开 http 和 https 链接,这让 Mole 把它当成浏览器,把它的 Application Support 文件夹当作个人数据保护起来;这个文件夹里还有一个来自 iTerm2 AI Chat 功能的chatdb文件。完成页里它会显示为保留,不会显示为已移除。Mole 的「清理」页也从不把它当缓存列出,因为名字里带 "iterm" 的应用在 Mole 的保护名单上,和密码管理器、VPN 客户端排在一起。~/Library/Preferences/com.googlecode.iterm2.plist、~/Library/Caches/com.googlecode.iterm2和保存的窗口状态默认勾选。- 主目录里的 shell 集成文件和自定义偏好设置文件夹都不在 Mole 的扫描范围内;按上面说的自己清理。
这次检查覆盖了什么
iTerm2 是通过 Homebrew 安装的,2026 年 9 月 17 日作为 8 个应用一批测试的一部分,用 Mole 的开发构建移除。完成页报告 8 项移除 · 1 项保留:保留的一项是 ~/Library/Application Support/iTerm2 的 chatdb(约 48KB),按上面说的浏览器数据保护规则保留,而不是作为未勾选的行展示。卸载后的盘面对比发现这个文件夹,以及一个指向它的 ~/.config/iterm2 符号链接,两者都没有出现在之后的「清理」残留扫描里。卸载后「系统设置」里留下了 iTerm2 的登录项历史记录,和其他被移除应用留下的记录一样无害。测试用的 Mac 上没有 Dynamic Profiles、Scripts 或自定义偏好设置文件夹,这次没有测到;官网直接下载版也没有在这次测试中卸载。
