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

命令行式本地与服务器互传文件

文章目录

    • 1. 背景
    • 2. 传输方式
      • 2.1 SCP 协议传输
      • 2.2 SFTP 协议传输
    • 3. 注意

命令行式本地与服务器互传文件

1. 背景

多设备协同工作中,因操作系统的不同,我们经常需要将另外一个系统中的文件传输到本地PC进行浏览、编译。多设备文件互传,在嵌入式开发中也经常会遇到,本篇介绍命令行下文件传输的方式。

2. 传输方式

服务器与本地PC之间互传文件,有多种方式,常见的有使用tftpd小工具,mobaxterm ide自带的"upload"和“download"按钮,securt crt安装的时候提供的secure fx工具。但是很多时候,一些环境不允许安装这些第三方软件,这时候就只能使用最原始的命令行进行交互了。

2.1 SCP 协议传输

SCP(Secure Copy Protocol):基于SSH协议的安全文件复制工具,用于在本地主机和远程主机之间或两台远程主机之间安全地复制文件。

  • 指令格式

    scp [选项] [源文件/目录] [目标路径]
    
    • 源文件/目录:可以是本地路径或远程路径。
    • 目标路径:可以是本地路径或远程路径。
  • upload 文件到服务器

    • 单文件传输
    SCP F:/学习/cjson/cJSON/README.md root@服务器IP地址:/root/project/001_json_c_learn/
    

在这里插入图片描述

  • 整个目录传输
scp -r F:/学习/cjson/cJSON/ root@IP地址:/root/project/002_test

在这里插入图片描述

  • download文件到本地

    • 单文件传输
    scp root@IP地址:/root/project/001_json_c_learn/README.md F:/学习/cjson/cJSON/
    

    在这里插入图片描述

    • 整个目录传输
    scp -r root@IP地址:/root/project/001_json_c_learn/ F:/学习/cjson/cJSON/
    

在这里插入图片描述

2.2 SFTP 协议传输

SFTP(SSH File Transfer Protocol):基于SSH的安全文件传输协议,提供加密的数据传输和身份验证,确保文件传输过程的安全性。

  • 指令连接

    # 默认端口连接
    sftp username@host_ip
    
    • username:远程服务器用户名。
    • host_ip:服务器IP地址或域名。
    • 示例:sftp root@192.168.1.100
    # 指定端口连接
    sftp -P port_number username@host_ip
    
    • -P:指定SSH端口(非默认22)。
    • 示例:sftp -P 48101 root@192.168.1.100
    # 密钥认证连接
    sftp -i /path/to/private_key username@host_ip
    
    • -i:指定私钥文件路径(需提前生成密钥对并将公钥配置服务器)。
    • 示例:sftp -i ~/.ssh/id_rsa user@192.168.1.100
  • 上传文件到服务器(put)

    • 指令格式

      put local_file_path [remote_file_path]
      
    • 将本地文件上传到远程服务器。

    • 若未指定remote_file_path,默认上传到当前远程目录(可以使用pwd查看默认远程目录)。

在这里插入图片描述

  • 下载文件到本地 (get)

    • 指令格式

      get remote_file_path [local_file_path]
      
    • 将远程文件下载到本地。

    • 若未指定local_file_path,默认下载到当前本地目录。

在这里插入图片描述

  • 递归传输目录

    • 上传目录(递归)

      put -r local_directory_path [remote_directory_path]
      
      • 递归上传整个目录及其子文件。
      • 示例:put -r /home/user/projects /var/www/
    • 下载目录(递归)

      get -r remote_directory_path [local_directory_path]
      
      • 递归下载整个目录及其子文件。
      • 示例:get -r /var/log /backup/logs/
  • 批量传输

    mput *.txt  # 上传当前目录所有.txt文件
    mget *.log  # 下载远程目录所有.log文件
    
  • 目录与文件管理

    • 切换远程目录cd remote_directory
    • 切换本地目录lcd local_directory
    • 查看远程目录ls
    • 查看本地目录lls
    • 删除远程文件rm remote_file
    • 重命名远程文件rename old_name new_name
    • 退出SFTPexitquit
      `
    • 查看远程目录ls
    • 查看本地目录lls
    • 删除远程文件rm remote_file
    • 重命名远程文件rename old_name new_name
    • 退出SFTPexitquit
    • 查看帮助help?

3. 注意

sftp 连接远程时需要输入密码,微避免每次输入密码,可以在本地生成 rsa 秘钥,然后将公钥上传到服务器下的 authorized_keys中。 可以参考 ssh连接云服务器记录 中 2.3小节,使用ssh-cpoy-id指令进行。

http://www.lryc.cn/news/2396840.html

相关文章:

  • MPTCP 聚合吞吐
  • JavaScript性能优化实战技术文章大纲
  • LabelImg: 开源图像标注工具指南
  • 计算机网络 TCP篇常见面试题总结
  • 树欲静而风不止,子欲养而亲不待
  • Kotlin中的::操作符详解
  • 【Linux】(1)—进程概念-③Linux进程概念与PCB
  • 神经网络中的梯度消失与梯度爆炸
  • 深入详解编译与链接:翻译环境和运行环境,翻译环境:预编译+编译+汇编+链接,运行环境
  • 系统架构设计师案例分析----经典架构风格特点
  • 基于大模型的急性乳腺炎全病程风险预测与综合治疗方案研究
  • HTML实战:爱心图的实现
  • 定时任务:springboot集成xxl-job-core(二)
  • DeviceNET转EtherCAT网关:医院药房自动化的智能升级神经中枢
  • 一:UML类图
  • 数据库三范式的理解
  • Java 中 MySQL 索引深度解析:面试核心知识点与实战
  • DeepSeek 部署中的常见问题及解决方案
  • Nvidia Intern 笔试回忆
  • 鸿蒙OS基于UniApp的WebRTC视频会议系统实践:从0到1的HarmonyOS适配之路#三方框架 #Uniapp
  • 设计模式之结构型:装饰器模式
  • mysql分布式教程
  • MySQL安装及启用详细教程(Windows版)
  • Vue3.5 企业级管理系统实战(二十一):菜单权限
  • kafka幂等生产者和事务生产者区别
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十九) -> 开发云数据库
  • 批量导出CAD属性块信息生成到excel——CAD C#二次开发(插件实现)
  • 可视化大屏如何制作
  • Goreplay最新版本的安装和简单使用
  • Android Studio 解决报错 not support JCEF 记录