4. scp 命令

scp(Secure Copy)命令是基于 SSH 协议的安全文件远程传输命令,用于在本地与远程主机之间加密传输文件或文件夹,提供与 cp 命令类似的用法,但支持跨网络操作。

作用:

  1. 本地 向 远程主机 复制文件或文件夹。
  2. 远程主机 向 本地 复制文件或文件夹。

命令格式:

scp [选项] 本地路径 远程路径
# 或
scp [选项] 远程路径 本地路径

远程路径的表示方式:

远程主机用户名@远程主机域名或IP地址:路径

常用选项

选项
说明
-P <端口>
指定远程主机的 SSH 端口(默认为 22)
-r
递归复制整个目录(用于传输目录)
-C
启用压缩传输(节省带宽)
-p
保留文件的权限、修改时间等属性
-q
静默模式(不显示传输进度)
-i <密钥文件>
指定用于认证的私钥文件
-l <限速>
限制带宽使用(单位:Kbit/s,如 -l 1000 限制为 1Mbps)
-v
显示详细调试信息(排错时有用)

示例

将我的用户主目录 下的 hello.py 文件复制到 远程主机 weimingze.com(用户名:weimingze) 的 /home/weimingze 文件夹下。

weimingze@mzstudio:~$ scp ~/hello.py weimingze@weimingze.com:/home/weimingze/
weimingze@weimingze.com's password: 

再复制回来

weimingze@mzstudio:~$ scp weimingze@weimingze.com:/home/weimingze/hello.py ~/

将我的用户主目录 下的 mywebsite 文件夹复制到 远程主机 weimingze.com(用户名:weimingze) 的 /home/weimingze 文件夹下。

weimingze@mzstudio:~$ scp -r ~/mywebsite weimingze@weimingze.com:/home/weimingze/

练习:

  1. 开启两台 Linux 虚拟机(或者两台Linux 电脑)A 和 B。
  2. 查看其中一台电脑 A 的用户名和 IP 地址
  3. 登陆电脑 B,使用 scp 将电脑 B 的 /usr/include/stdio.h 复制到 电脑 A 的用户主文件夹下。
  4. 在电脑 B,将电脑 A 刚复制过去的 stdio.h 复制到此电脑 B 的用户主文件夹下。