rz
命令:本地上传到远端
rz
命令:用于从本地主机上传文件到远程服务器
rz
是一个用于在 Linux 系统中通过 串口 或 SSH 上传文件的命令,它实际上是 lrzsz
工具包中的一个命令。rz
命令可以调用一个图形化的上传窗口,方便用户从本地主机(如 Windows)向远程 Linux 服务器上传文件,即用于从本地主机上传文件到远程服务器。
这些命令通常与终端工具(如 SecureCRT、Xshell、PuTTY + plink 或其他支持 Zmodem
协议的工具)配合使用。
我就是使用的 Xshell
1、如何使用 rz
命令
前提条件
(1)确保远程 Linux 系统已安装 lrzsz
工具包。
-
检查是否已安装:
rz --version
-
如果未安装,可以通过以下命令安装:
-
在基于 Debian 的系统(如 Ubuntu)上:
sudo apt-get update sudo apt-get install lrzsz
-
在基于 Red Hat 的系统(如 CentOS)上:
sudo yum install lrzsz
-
(2)使用支持 Zmodem
协议的终端工具(如 SecureCRT、Xshell 或 PuTTY + plink)。
操作步骤
-
在终端中输入
rz
并按回车键:这将触发终端工具启动文件上传窗口。
-
在弹出的文件选择窗口中,选择要上传的本地文件并确认。
-
文件上传完成后,终端会显示上传成功的提示信息。
下图就是 rz
命令打开的文件选择窗口,图形化窗口还是比较方便的
2、注意事项
-
终端工具支持:并非所有终端工具都支持
Zmodem
协议。如果使用的是不支持Zmodem
的工具(如默认的 PuTTY),则需要额外配置或使用其他工具(如pscp
或scp
)。 -
文件路径:上传的文件会保存到当前工作目录下。可以通过
pwd
命令查看当前目录位置。 -
替代方案:如果无法使用
rz
,可以考虑使用scp
或sftp
等更通用的文件传输方式。
scp
命令:远端下载到本地
scp
命令:从远程 Linux 服务器上传文件到本地主机(如 Windows 或其他操作系统)
scp
是基于 SSH 的安全文件传输工具,可以从远程服务器拉取文件到本地。
1、操作步骤
-
在本地主机(如
Windows
)上打开命令提示符(CMD
)、PowerShell
或安装了Cygwin/Git Bash
的终端。 -
使用以下命令将文件从远程服务器下载到本地:
scp username@remote_server_ip:/path/to/remote/file /path/to/local/directory
username
: 远程服务器的用户名。remote_server_ip
: 远程服务器的 IP 地址。/path/to/remote/file
: 远程服务器上文件的路径。/path/to/local/directory
: 本地保存文件的目标路径。
示例(假设要从远程服务器下载
/home/user/example.txt
文件到本地C:\Users\YourName\Downloads
目录):scp user@192.168.1.100:/home/user/example.txt C:\Users\YourName\Downloads\
- 输入远程服务器密码后,文件会自动传输到本地指定目录。
2、注意事项
问题:远程服务器的 IP 地址是用公网IP还是私有IP?
使用的 远程服务器的 IP 地址 是需要使用 公网 IP 或 私有 IP 取决于你的网络环境和目标服务器的可达性。
1. 公网 IP 的情况
- 如果你的本地主机(如 Windows 或其他设备)与远程 Linux 服务器不在同一个局域网内,或者远程服务器位于互联网上的某个位置(例如云服务器),你需要使用 公网 IP。
- 公网 IP 是指可以通过互联网直接访问的 IP 地址。
2. 私有 IP 的情况
- 如果你的本地主机和远程 Linux 服务器位于同一个局域网(LAN)中,可以直接使用 私有 IP。
- 私有 IP 是指仅在局域网内有效的 IP 地址,例如
192.168.x.x
或10.x.x.x
。
问题:出现了下面这个报错怎么解决?
C:\Windows\System32\OpenSSH\scp.exe: download /home/mine/linux-
learning/_2025_02_15_MyThreadPool/: not a regular file
这个错误信息表明,你尝试通过 scp
命令下载的内容不是一个普通的文件(regular file),而可能是一个目录或其他类型的文件(如符号链接、设备文件等)。scp
默认情况下只能直接传输普通文件或递归传输目录。
scp
的行为:
- 如果目标路径是一个普通文件,
scp
会直接传输该文件。 - 如果目标路径是一个目录,则需要显式使用
-r
参数来递归传输整个目录。
递归传输目录
如果目标路径是一个目录,你需要使用 -r
参数来递归传输整个目录。例如:
scp -r user@remote_server_ip:/home/mine/linux-learning/_2025_02_15_MyThreadPool/ C:\local\destination\
-r
: 表示递归传输目录及其内容。C:\local\destination\
: 是本地保存目录的路径。