mac 中 iTerm2 使用 rz、sz 上传下载文件详解,附 scp 操作指南

1. 引言

在日常开发中,我们经常需要通过终端与远程服务器之间传输文件。macOS 用户常用的终端工具是 iTerm2,而 rz、sz 是 Linux 服务器上非常经典的上传下载命令。本文将详细介绍如何在 mac 的 iTerm2 中使用 rz、sz 上传下载文件,并附上 scp 命令操作详解,帮助你高效完成文件传输。

2. 准备工作

在开始之前,需要确认以下环境是否就绪:

  • macOS 终端工具:推荐使用 iTerm2,可从官网下载安装。
  • 远程服务器:Linux 系统,已安装 lrzsz 工具包。
  • SSH 连接:确保可以正常通过 SSH 登录远程服务器。

3. 安装 lrzsz 工具

rz、sz 命令依赖服务器端的 lrzsz 工具包。以 CentOS 和 Ubuntu 为例,安装命令如下:

bash 复制代码
# CentOS / RHEL
yum install -y lrzsz
Ubuntu / Debian
apt-get install -y lrzsz

安装完成后,可以在服务器上执行以下命令验证:

bash 复制代码
which rz
which sz

如果输出对应的路径,说明安装成功。

4. iTerm2 配置 rz、sz 支持

iTerm2 默认不支持 rz、sz 的弹窗交互,需要借助触发器(Trigger)来实现。具体配置步骤如下:

4.1 下载脚本

首先需要下载两个辅助脚本,用于处理 rz、sz 的文件传输交互。推荐使用以下开源脚本:

bash 复制代码
# 创建本地脚本目录
mkdir -p ~/.iterm2
下载 iterm2-zmodem 脚本
cd ~/.iterm2
curl -O https://raw.githubusercontent.com/aikuyun/iterm2-zmodem/master/iterm2-zmodem.sh
chmod +x iterm2-zmodem.sh

4.2 配置触发器

打开 iTerm2 的偏好设置,按以下步骤操作:

  1. 打开 Preferences (快捷键 Command + ,)。
  2. 进入 Profiles 标签页,选择当前使用的 Profile。
  3. 点击 Advanced 选项卡,找到 Triggers 区域。
  4. 点击 Edit 按钮,添加两条触发器规则。

第一条规则用于捕获 rz 请求:

  • Regular Expression :\*\*B0100
  • Action :Run Silent Coprocess...
  • Parameters :~/.iterm2/iterm2-zmodem.sh

第二条规则用于捕获 sz 请求:

  • Regular Expression :\*\*B00000000000000
  • Action :Run Silent Coprocess...
  • Parameters :~/.iterm2/iterm2-zmodem.sh

配置完成后,点击 OK 保存即可。

5. 使用 rz 上传文件

rz 命令用于从本地 mac 上传文件到远程服务器。操作步骤如下:

5.1 进入目标目录

首先在服务器上进入希望存放文件的目标目录:

bash 复制代码
cd /data/uploads

5.2 执行 rz 命令

在终端输入 rz 并回车:

bash 复制代码
rz

此时 iTerm2 会弹出系统文件选择窗口,选择本地需要上传的文件,点击确定即可开始上传。上传完成后,终端会显示传输结果。

6. 使用 sz 下载文件

sz 命令用于从远程服务器下载文件到本地 mac。操作步骤如下:

6.1 执行 sz 命令

在服务器上输入 sz 并指定要下载的文件路径:

bash 复制代码
sz /data/logs/app.log

执行后,iTerm2 会弹出本地保存目录选择窗口,选择保存位置后点击确定即可开始下载。

6.2 下载多个文件

sz 支持一次下载多个文件,只需在命令后列出多个路径:

bash 复制代码
sz /data/logs/app.log /data/logs/error.log

7. scp 命令详解

scp(Secure Copy)是基于 SSH 的安全文件传输命令,无需在服务器上额外安装工具,使用更加通用。下面介绍 scp 的常用操作。

7.1 从本地上传到服务器

基本语法:

bash 复制代码
scp 本地文件路径 用户名@服务器IP:远程目标路径

示例:

bash 复制代码
scp ~/Desktop/report.pdf root@192.168.1.100:/data/uploads/

执行后会提示输入密码,输入正确密码即可开始上传。

7.2 从服务器下载到本地

基本语法:

bash 复制代码
scp 用户名@服务器IP:远程文件路径 本地目标路径

示例:

bash 复制代码
scp root@192.168.1.100:/data/logs/app.log ~/Desktop/

7.3 上传整个目录

使用 -r 参数可以递归复制整个目录:

bash 复制代码
scp -r ~/project root@192.168.1.100:/data/

7.4 指定端口

如果 SSH 端口不是默认的 22,需要使用 -P 参数指定端口:

bash 复制代码
scp -P 2222 ~/Desktop/report.pdf root@192.168.1.100:/data/uploads/

7.5 保留文件属性

使用 -p 参数可以保留文件的修改时间、访问时间和权限:

bash 复制代码
scp -p ~/Desktop/report.pdf root@192.168.1.100:/data/uploads/

8. rz、sz 与 scp 的对比

对比项 rz / sz scp
依赖工具 服务器需安装 lrzsz 无需额外安装
交互体验 弹出文件选择窗口,操作直观 命令行指定路径,适合脚本化
传输目录 需先打包再传输 支持 -r 递归传输目录
断点续传 不支持 不支持
适用场景 少量文件、交互式操作 批量传输、自动化脚本

9. 常见问题与注意事项

9.1 rz、sz 命令找不到

如果执行 rz、sz 提示命令不存在,说明服务器未安装 lrzsz,请参考第 3 节安装。

9.2 弹窗未出现

如果执行 rz、sz 后 iTerm2 没有弹出文件选择窗口,请检查触发器配置是否正确,并确认脚本路径无误。

9.3 传输大文件建议

对于大文件传输,建议优先使用 scp 或 rsync,rz、sz 在传输大文件时速度较慢且不支持断点续传。

9.4 安全性提醒

rz、sz 和 scp 均基于 SSH 加密传输,但请务必保管好服务器密码,避免使用弱密码。

10. 总结

本文详细介绍了在 mac 的 iTerm2 中使用 rz、sz 上传下载文件的方法,包括 lrzsz 安装、iTerm2 触发器配置以及实际操作步骤。同时附上了 scp 命令的详细用法,涵盖上传、下载、目录传输、指定端口等常见场景。两种方式各有优势,rz、sz 交互直观,scp 更适合脚本化批量操作,你可以根据实际需求灵活选择。

相关推荐
星恒随风23 分钟前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府33 分钟前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
无足鸟ICT1 小时前
【RHCA+】IO调度算法
linux·服务器
wacsii2 小时前
【Linux进程(四)】命令行参数与环境变量
linux·服务器
无奈笑天下2 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
科研邪修法3 小时前
培训PDF保护配置:把需求转换成可验收权限
linux·服务器·网络
Felven3 小时前
中科驭数100G网卡RDMA性能测试
linux·rdma·中科驭数·100g网卡
雪落漂泊6 小时前
Liunux进程(七):程序控制篇(中)
linux·运维·windows
俊俊几年的6 小时前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c
星恒随风15 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql