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

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

文章目录

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

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

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?
http://www.xdnf.cn/news/747433.html

相关文章:

  • python:在 PyMOL 中如何查看和使用内置示例文件?
  • MySQL存储架构深度解析:从引擎选型到云原生实践(2025最新版)
  • 【系统配置与部署类】docker的深度配置和应用
  • 5G 网络中的双向认证机制解析
  • 跟单业务和量化交易业务所涉及到的设计模式
  • CP2K 软件介绍与使用指南
  • 34、请求处理-【源码分析】-Model、Map原理
  • MySQL访问控制与账号管理:原理、技术与最佳实践
  • switch-case判断
  • 【PostgreSQL 02】PostgreSQL数据类型革命:JSON、数组与地理信息让你的应用飞起来
  • 若依框架定制化服务搭建
  • 开源是什么?我们为什么要开源?
  • gtsam正确的安装姿势
  • 每日八股文5.31
  • Windows上用FFmpeg推流及拉流的流程概览
  • 操作系统学习(八)——同步
  • 【python深度学习】Day 41 简单CNN
  • STM32F103通过Zigbee实现多分用户向主用户发送信息
  • LeetCode Hot100 (贪心)
  • VS Code / Cursor 将默认终端设置为 CMD 完整指南
  • 算法打卡12天
  • Leetcode LCR 187. 破冰游戏
  • cuda_fp8.h错误
  • Python 中Vector类的格式化实现,重点拆解其超球面坐标系的设计精髓
  • C# 面向对象特性
  • 吉林第三届全国龙舟邀请赛(大安站)激情开赛
  • 打卡day41
  • Kanass入门教程- 事项管理
  • 科普:Linux `su` 切换用户后出现 `$` 提示符,如何排查和解决?
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-面试官和面试记录的分享功能(2)