惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
月光博客
月光博客
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
Vercel News
Vercel News
量子位
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
腾讯CDC
有赞技术团队
有赞技术团队

博客园 - Questions张

每次打开webstorm需要重新source才能找到node,Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.74.dylib vscode 的md文件,如何设置默认用Markdown插件打开 如何清理各种Linux系统的磁盘空间以及日志文件大文件等 如何科学的通过学习词根词缀快速扩大自己的词汇量 微信如何开通wx.getPhoneNumber权限 淘宝NPM镜像地址https://registry.npm.taobao.org不可用 iPhone上使用VLC app导入本地英语听力文件(支持定时关闭sleep timer功能) idea打开properties文件中文乱码问题 如何系统的学习AI相关的知识,进入到AI行业-grok的答案 MacOs解决rz waiting to receive.**B0100000023be50 iterm的rz命令只能选择文件夹不能选择文件的问题 CentOs8中vi以及vim编辑中文乱码问题 Centos8的镜像仓库停服无法连接切换国内镜像源 curl: (7) Failed to connect to 127.0.0.1 port 1087 after 6 ms: Couldn't connect to server 白嫖claude code的100美元额度,anyrouter中转服务 git push报错remote: hooks/pre-receive:14:in require_relative' MacOs下todesk网络连接错误,无法登录 MacOs如何解决brew update卡住问题 Docker国内镜像加速配置 request to https://registry.npm.taobao.org/cyarn failed, reason: certificate has expired
iTerm2 中使用 `rz` 命令无法弹出文件选择窗口,以及正确配置
Questions张 · 2025-09-06 · via 博客园 - Questions张

在 iTerm2 中使用 `rz` 命令无法弹出文件选择窗口,通常不是因为 `rz` 本身没安装,而是因为 **iTerm2 没有正确配置以支持 Zmodem 文件传输协议**。

请按照以下步骤逐一排查和解决:

### 第 1 步:确保系统已安装 lrzsz

`rz` 和 `sz` 命令来自于 `lrzsz` 这个软件包。首先确认它是否已安装。

1. 在终端中执行以下命令来安装或检查:
```bash
# 使用 Homebrew 安装(如果没有安装)
brew install lrzsz

# 或者检查是否已安装以及安装位置
which rz
which sz
```
正常情况下,会返回类似 `/usr/local/bin/rz` 的路径。如果 `brew` 提示已安装或安装成功,说明命令行工具本身没问题。

---

### 第 2 步:配置 iTerm2 的 Zmodem 触发器(最关键的一步)

iTerm2 本身并不知道 `rz`/`sz` 命令何时被调用。你需要通过配置 **触发器 (Triggers)**,让它监听终端输出的特定字符串(这些字符串是 `rz` 命令在等待接收时发出的),然后自动触发对应的脚本来处理文件上传/下载。

1. **下载 Zmodem 辅助脚本**
我们需要两个脚本:`iterm2-send-zmodem.sh` (用于发送 `sz`) 和 `iterm2-recv-zmodem.sh` (用于接收 `rz`)。
将它们下载到本地一个合适的目录,例如 `~/bin` 或 `/usr/local/bin`。

```bash
# 创建目录(如果不存在)
mkdir -p ~/bin

# 下载 recv-zmodem.sh (用于 rz 上传)
curl -Lo ~/bin/iterm2-recv-zmodem.sh https://github.com/robberphex/iTerm2-zmodem/raw/master/iterm2-recv-zmodem.sh

# 下载 send-zmodem.sh (用于 sz 下载)
curl -Lo ~/bin/iterm2-send-zmodem.sh https://github.com/robberphex/iTerm2-zmodem/raw/master/iterm2-send-zmodem.sh

# 给脚本添加执行权限
chmod +x ~/bin/iterm2-*.sh
```

> **注意**:经典的原作者仓库(`mmastrac`)已经归档,上述链接是一个活跃的复刻(fork),通常更有效。如果失效,可以搜索 “iTerm2 Zmodem” 寻找其他来源。

2. **在 iTerm2 中配置触发器**
* 打开 **iTerm2 -> Settings (或 Preferences) -> Profiles**。
* 选择你正在使用的 Profile(通常是 `Default`)。
* 进入 **Advanced -> Triggers** 标签页。
* 点击右下角的 **Edit** 按钮。
* 点击 **+** 号添加两条触发器规则:

**第一条(用于 `rz` 上传):**
* **Regular Expression**: `rz waiting to receive.\*\*B0100`
* **Action**: `Run Silent Coprocess`
* **Parameters**: `~/bin/iterm2-recv-zmodem.sh`
* **Instant**: ✅ 勾选

**第二条(用于 `sz` 下载):**
* **Regular Expression**: `\*\*B00000000000000`
* **Action**: `Run Silent Coprocess`
* **Parameters**: `~/bin/iterm2-send-zmodem.sh`
* **Instant**: ✅ 勾选

![iTerm2 Trigger Configuration](https://img-blog.csdnimg.cn/direct/b16cbbfd9c044f8d841b65c3e200c7b5.png)

* 配置完成后,点击 **Save**。

---

### 第 3 步:使用正确的姿势操作

1. **在远程服务器上执行 `rz` 命令**。
2. 此时,**iTerm2 的触发器会检测到 `rz` 命令发出的特定字符串**。
3. 紧接着,iTerm2 会自动运行你刚才配置的 `iterm2-recv-zmodem.sh` 脚本。
4. 这个脚本会**弹出一个本地的文件选择窗口**,让你选择要上传的文件。
5. 选择文件后,上传过程会自动开始。

---

### 常见问题排查

* **检查脚本路径**:确保你在 Triggers 里配置的脚本路径(如 `~/bin/...`)与实际下载脚本的路径完全一致。使用绝对路径最保险(例如 `/Users/YourUsername/bin/iterm2-recv-zmodem.sh`)。
* **检查脚本权限**:再次确认你已经用 `chmod +x` 命令给脚本添加了执行权限。
* **重启 iTerm2**:配置完成后,完全关闭 iTerm2 再重新打开,让配置生效。
* **检查远程服务器**:确保远程服务器上也安装了 `lrzsz`。
```bash
# 在远程服务器上执行(对于基于 Debian/Ubuntu 的系统)
sudo apt-get install lrzsz

# 对于基于 CentOS/RHEL 的系统
sudo yum install lrzsz
```
* **使用 `-e` 参数**:有些版本的 `rz` 可能需要 `-e` 参数来避免转义字符问题,可以试试 `rz -e`。

### 替代方案:使用 SSH 客户端

如果以上配置对你来说过于繁琐,可以考虑使用其他更方便的图形化SSH客户端,它们通常内置了更简单的文件传输功能:

* **Termius**: 自带文件传输面板。
* **Tabby**: 开源免费,支持直接拖拽上传下载。
* **Electerm**: 开源免费,支持拖拽和Zmodem。
* **FinalShell**: 国产,功能强大,内置文件管理窗口。

但对于很多深度终端用户来说,在 iTerm2 中配置好 Zmodem 是一次配置、终身受益的便捷方式。希望以上步骤能帮你解决问题!