当前位置 博文首页 > 我的地盘我做主:【Linux】【开发环境】Linux/windows传输文件手

    我的地盘我做主:【Linux】【开发环境】Linux/windows传输文件手

    作者:[db:作者] 时间:2021-07-15 15:41

    缘起

    • 在嵌入式开发过程中,经常需要在windows和Linux系统之间或Linux系统之间传输文件,但受限于服务器或开发环境等(有的时候服务器并未安装某种服务或者处于信息安全的考虑,限制了samba、ftp的使用等),并不一定能随心所欲的使用某一种方式,本文将相关手段做一梳理,供各位参考。

    相关手段

    1、samba

    • samba不用多说,用起来非常爽,服务器上的文件和本地文件一样;
    • 常用技巧:
      – 将samba服务器映射成本地磁盘;
      – 同一个服务器(同一个IP),在windows上仅支持一个用户访问,如需更换用户,可使用net use或凭据管理器进行切换。

    2、ftp/sftp/tftp

    • Linux环境上,ftp相关软件包比较多:
      Ftp/vsftp/wu-ftp/proftp/gssftp/sftp/tftpfer
    • windows环境:系统自带,也可使用各种FTP客户端软件,如FileZilla等。
    • Linux搭建ftp服务器的时候,可使用curlftpfs挂载ftp空间;

    3、scp

    • Linux之间操作,直接使用命令行:
      本地->远端
    scp -r /opt/soft/root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz 
    

    远端->本地

    scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
    
    • scp的一种隐式用法:
    gzip -c /home/qxhgd/data | ssh yankay01"gunzip -c - > /home/qxhgd/data" #将/home/qxhgd/data经过GZIP压缩,通过ssh传输到qxhgd的机器上
    
    • Windows和Linux之间,可借助相关软件,如Winscp、MobaXterm等都自带scp功能。

    4、rcp

    • 用于复制远程文件或目录;
    • 安装命令:
    yum isntall -y rsh
    
    • rcp命令有两种格式:
      – 第一种格式用于文件到文件的拷贝;
      – 第二种格式用于把文件或目录拷贝到另一个目录中。
    rcp [-pr][源文件或目录][目标文件或目录]
    rcp [-pr][源文件或目录...][目标文件]
    

    5、rsync

    • 安装命令
    sudo yum install rsync
    
    • 命令格式:
    rsysnc [options] source path destination path
    
    • 特点:

    与其他文件传输工具(如 FTP 或 scp)不同,rsync的最大特点差异化传输(支持断点续传,数据同步)。

    6、sz/rz

    • Linux/Unix同Windows进行ZModem文件传输的命令行工具
    • RHEL系列Linux环境安装命令:
    yum install lrzsz
    
    • 具体命令格式:
    sz filename       #下载文件filename;
    sz file1 file2    #下载多个文件;
    sz dir/*        #下载dir目录下所有文件;
    rz [-a][-b][-e]    #上传,ascii,binary,escape;
    
    • SecureCRT软件是windows侧支持ZModem的客户端。

    7、wget

    • Linux中的一个下载文件的工具,支持HTTP/HTTPS、FTP/FTPS 等协议;
    • 安装命令:
    yum install -y wget
    
    • 具体用法:
    wget [选项]... [URL]...
    

    例子:

    wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
    
    • 具体操作中,可在一个系统上搭建http服务器,另一个服务器上执行wget下载文件。
    • wget也有windows的版本;

    8、cURL

    • cURL支持 HTTP、HTTPS、FTP 等协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、User-Agent、限速、文件大小、进度条等特征;
    • 具体命令格式:
    curl protocol://address:port/url
    
    • 一个实例:
    curl http://www.baidu.com
    
    • cURL也有windows的版本;

    9、nc

    • 安装命令:
    yum install -y nc
    
    • 发送、接收操作
    nc  -l  8888 > recv.txt           #将8888端口接收的数据保存到recv.txt文件
    nc  192.168.1.100 8888 < send.txt #将send.txt发送到1.100的8888端口
    

    10、Uuto/Uucp

    • Linux uuto命令将文件传送到远端的UUCP主机。
    • uuto为script文件,它实际上会执行uucp,用来将文件传送到远端UUCP主机,并在完成工作后,以邮件通知远端主机上的用户。
    • Uucp用于将文件从一台计算机复制到另一台计算机。uucp 将创建工作文件和数据文件,对要传输的作业进行排队,并调用 uucico 守护进程,随即该守护进程将尝试与远程计算机进行联络。
    • uuto将文件从本地计算机复制到远程计算机上的公共假脱机目录 /var/spool/uucppublic/receive。uucp 用于将文件复制到远程计算机上的任何可访问目录中,与之不同的是,uuto 将文件置于适当的假脱机目录中,并指示远程用户使用 uupick 来选取该文件。

    11、vim

    • 全部复制:
      按esc后,然后gg"+yG :
    • 粘贴:
      p或P;
      复制全部内容只能在linux上粘贴,在windows上粘贴,只有第一个屏幕的内容。

    12、Resilio Sync

    • 原名BitTorrent Sync;
    • 运用 BitTorrent 技术在各平台间无限快速同步

    13、Syncthing

    • Syncthing 是一个轻量级的点对点文件同步系统
    • Syncthing 可在 Linux、MacOS、Windows 和多种 BSD 中使用

    14、Teamviewer

    Teamviewer除了作为远程工具外,也可以作为远程传输文件的工具,支持Linux和Windows系统。

    15、Raysync

    • 镭速,支持多个平台
    • 尤其适用于大文件传输场景

    16、nfs

    • 服务器之间共享某一块磁盘,通过网络传输将分散的文件集中存储在一块指定的共享磁盘,实现基本的文件共享;
    • 实现这种方案,分服务端和客户端,将服务端的磁盘mount到客户端指定目录下,在客户端操作就像操作本地磁盘一样;

    17、管道

    gzip -c /home/test/data | ssh qxhgd@192.168.1.100 "gunzip -c - > /home/qxhgd/data" 
    #将/home/test/data经过GZIP压缩,通过ssh传输到qxhgd的机器上
    #gzip压缩,"-c"表示输出到stdout,即通过管道传送
    #gunzip压缩,"-c"表示接收从管道传进的sdtin
    

    18、Croc

    • 号称是下一代文件传输利器;
    • 可跨多个平台使用,支持CLI。

    相关链接

    • wget
    • curl
    • wget for windows
    • curl for windows
    • linux版teamviewer如何进行文件传输
    • raysync
    • Croc

    如本文对你有些许帮助,欢迎打赏:
    支付宝打赏方式及我的购物小店

    cs