在 Linux 系统中,rz 和 sz 命令通常用于在支持的终端环境中进行文件的上传和下载。rz 用于上传文件到远程服务器,而 sz 用于从远程服务器下载文件。它们是基于 ZMODEM 协议实现的,因此通常用于图形化的终端程序中(如 xterm 或 putty)。

1. rz 命令(上传文件)

rz 命令用于将本地文件上传到远程服务器。这个命令一般在终端中输入,它会通过 ZMODEM 协议启动文件上传过程。你需要确保终端支持 ZMODEM,并且远程服务器端安装了相关工具(如 lrzsz)。

安装 lrzsz 工具

如果你使用的是 Debian/Ubuntu 系统,可以通过以下命令安装:

sudo apt install lrzsz

在 CentOS/RHEL 系统中使用:

sudo yum install lrzsz

使用 rz 上传文件

  1. 在远程主机通过 SSH 登录后,输入 rz 命令:rz
  2. 终端将等待用户选择要上传的文件。此时,你会看到一个文件选择窗口(基于你所使用的终端类型)。选择文件后,文件会被上传到当前目录。

注意事项

  • rz 命令必须在支持 ZMODEM 协议的终端中运行,像 xterm 和 putty 等终端程序常见支持。
  • 确保安装了 lrzsz 包,支持 rz 和 sz 命令。

2. sz 命令(下载文件)

sz 命令用于从远程服务器下载文件到本地。它也是基于 ZMODEM 协议,通常与 rz 配对使用。

使用 sz 下载文件

  1. 在远程主机上,选择文件并运行 sz 命令:sz filename
  2. sz 会开始通过 ZMODEM 协议发送文件到本地计算机。与 rz 命令类似,终端将弹出文件接收框,等待本地终端接收文件。
  3. 如果需要下载多个文件,可以使用:sz file1 file2 file3

注意事项

  • 确保你使用的终端支持 ZMODEM 协议。
  • sz 命令只会在支持 ZMODEM 的终端中工作。

3. 上传下载文件的其他命令(SCP)

除了 rz 和 sz,另一种常用的文件传输工具是 SCP(Secure Copy)scp 是通过 SSH 协议在本地和远程计算机之间安全地复制文件。它支持加密传输,并且不需要像 rz 和 sz 那样依赖终端支持 ZMODEM 协议。

使用 scp 命令

  1. 从本地上传文件到远程服务器scp /path/to/local/file username@remote_host:/path/to/remote/directory 示例:scp file.txt user@192.168.1.100:/home/user/
  2. 从远程服务器下载文件到本地scp username@remote_host:/path/to/remote/file /path/to/local/directory 示例:scp user@192.168.1.100:/home/user/file.txt /home/localuser/
  3. 传输整个目录scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory
  4. 使用指定端口(如果 SSH 服务在非标准端口运行)scp -P 2222 /path/to/local/file username@remote_host:/path/to/remote/directory

优点

  • 安全:scp 使用 SSH 协议传输文件,确保了传输过程的加密。
  • 简单:scp 命令非常简洁,适用于各种操作系统。

总结:

  • rz 和 sz:基于 ZMODEM 协议,常用于终端环境中进行文件的上传和下载,适用于传统的终端程序。
    • rz:上传文件
    • sz:下载文件
  • scp:更为通用、安全且适用于几乎所有类型的文件传输任务,基于 SSH 协议,适用于本地与远程服务器之间的文件传输。

对于大多数需要跨系统、跨网络传输文件的场景,scp 是推荐的工具,而对于专门需要通过终端上传下载文件的情形,rz 和 sz 是合适的选择。