当前位置: 首页 > web >正文

必会利器:scp 命令

这里写自定义目录标题

  • 一、使用 scp 在本地和远程主机之间或者两台远程主机之间安全地复制文件
  • 二、scp 是一种跨平台的命令行工具

一、使用 scp 在本地和远程主机之间或者两台远程主机之间安全地复制文件

scp 命令是 Secure Copy Protocol(安全复制协议)的缩写,用于在本地和远程主机之间或者两台远程主机之间安全地复制文件。它基于 SSH(安全外壳协议),因此它传输的文件会被加密,保证安全。

scp 命令的基本语法:

scp [选项] [源文件路径] [目标路径]

参数说明:

  • 源文件路径:指的是你要拷贝的文件或者目录的位置。
  • 目标路径:指的是目标位置,可能是本地机器或者远程机器。

常见的用法:
将文件从本地复制到远程服务器:

scp /path/to/local/file username@remote_host:/path/to/remote/directory

例如:将本地的 test.txt 文件复制到远程服务器的 /home/user/ 目录:

scp test.txt user@192.168.1.100:/home/user/

将文件从远程服务器复制到本地:

scp username@remote_host:/path/to/remote/file /path/to/local/directory

例如:将远程服务器上的 test.txt 文件复制到本地桌面:

scp user@192.168.1.100:/home/user/test.txt ~/Desktop/

复制整个目录(递归拷贝):
使用 -r 选项来递归复制目录。

scp -r /path/to/local/folder username@remote_host:/path/to/remote/directory

例如:将本地目录 myfolder 复制到远程服务器的 /home/user/ 目录:

scp -r myfolder user@192.168.1.100:/home/user/

指定端口:
如果远程服务器使用非默认的 SSH 端口(默认是 22),可以使用 -P 参数指定端口。

scp -P port_number /path/to/local/file username@remote_host:/path/to/remote/directory

使用公钥认证:
如果你使用公钥认证而非密码,scp 会自动使用你本地的 SSH 密钥。

常见选项:

  • -r:递归复制目录。
  • -P:指定 SSH 连接的端口(注意是大写的 P,因为小写的 -p 用于保留文件属性)。
  • -v:启用详细模式,显示调试信息(适用于调试)。
  • -i:指定使用的私钥文件。

例如,使用私钥文件来连接:

scp -i /path/to/private_key /path/to/local/file user@192.168.1.100:/path/to/remote/directory

二、scp 是一种跨平台的命令行工具

具体支持的操作系统:

  • Linux:几乎所有的 Linux 发行版都自带 scp 命令。
  • macOS:macOS 也原生支持 scp 命令,可以直接通过终端使用。
  • FreeBSD、OpenBSD、NetBSD:这些类 Unix 系统同样支持 scp 命令。
  • Windows:Windows 不原生支持 scp 命令,但可以通过以下方式使用:
  • Windows 10 及更高版本:通过启用 Windows Subsystem for Linux (WSL),可以直接使用 scp。
  • PuTTY:Windows 用户可以通过安装 PuTTY 工具包来使用类似功能的命令(如 pscp)来实现安全文件传输。

在 Windows 上使用 scp:

  1. 通过 WSL 使用 scp:
    如果你安装了 WSL,可以在 WSL 的 Linux 环境中直接使用 scp 命令。

  2. 通过 PuTTY 的 pscp 工具使用:
    你可以下载 pscp.exe(PuTTY 提供的 SCP 命令行工具),然后通过命令行进行操作。

例如,将本地文件 file.txt 拷贝到远程服务器:

pscp file.txt username@remote_host:/path/to/remote/directory
http://www.xdnf.cn/news/9939.html

相关文章:

  • Linux程序管理练习题
  • Python中的enumerate函数:优雅地遍历序列索引与元素
  • 一个开源脚本,可自动安装在 AMD Radeon 7900XTX 上运行选定 AI 接口所需的所有内容
  • 【Java Web】速通CSS
  • DeepSeek与AI提示语设计的全面指南
  • 使用大模型预测结节性甲状腺肿的全流程系统技术方案
  • 花哨桌面 V 3.0.0 (火影忍者版)
  • 模型评估指标详解:准确率、召回率、AUC 是什么?
  • WebVm:无需安装,一款可以在浏览器运行的 Linux 来了
  • 使用有名管道(FIFO)实现循环通信的客户端-服务端
  • 深入了解linux系统—— 库的链接和加载
  • 最大流-Ford-Fulkerson增广路径算法py/cpp/Java三语言实现
  • 春秋云镜 Brute4Road Writeup
  • 互联网商业模式全景解读:B2B、B2C、C2C及更多
  • docker常见考点
  • Qt 中的 d-pointer 与 p-pointer小结
  • 每日一题——提取服务器物料型号并统计出现次数
  • Jupyter Notebook 是否需要与环境绑定
  • [C]基础17.自定义类型:结构体
  • [ctfshow web入门] web124
  • `qDebug`消息重定向到`QLabel`中。
  • 安卓手机照片在这个目录/storage/emulated/999/DCIM/Camera下的导出解决方案
  • 解决报错error: ‘void_t’ is not a member of ‘std’
  • Python reduce()函数详解:累积计算的艺术
  • 机器学习课设
  • 麒麟v10+信创x86处理器离线搭建k8s集群完整过程
  • 定点小数 不需要指数部分 不采用移码
  • ASP.NET TreeView控件使用指南
  • Java复习Day22
  • 前端使用qrcode来生成二维码的时候中间添加logo图标