以下内容源于日常学习的整理,欢迎交流。
下图是Windows主机、虚拟机Ubuntu、开发者三者之间文件互传的方式示意图:

注意,下面谈及的所有方式,都要求两者的IP地址处于同一网段,涉及到的软件资源见felm。
一、Windows主机、虚拟机Ubuntu
可以通过Filezilla这个软件进行互传。

二、虚拟机Ubuntu、开发板
方法1:使用NFS方式传输文件
首先理解一下NFS的原理。简单地说,就是将远端操作系统(即服务端,这里指虚拟机Ubuntu)下的某个目录,挂接在本地操作系统(即客户端,这里指运行着操作系统的开发板)下的某个目录。这样一来,就可以通过本地目录访问远端目录的内容。

**然后看一下设置方法:**很简单,使用mount命令进行挂载时,-t 选项后面设置为 NFS 即可:
bash
mount -t nfs -o nolock,vers=3 192.168.1.142:/home/book/nfs_rootfs /mn
//虚拟机ubuntu的IP:将哪个目录挂载 //挂载到开发板哪个目录
比如上面的例子,mount 成功之后,开发板在/mnt 目录下读写文件时,实际上访问的就是Ubuntu 中的/home/book/nfs_rootfs 目录,所以开发板和 Ubuntu 之间通过NFS 可以很方便地共享文件。
方法2:使用TFTP服务传输文件
开发板上可以使用 tftp 命令与 Ubuntu 互传文件,不过需要在Ubuntu上先安装 TFTP 服务。
1、安装TFTP服务
(1)在 Ubuntu 中执行以下命令安装 TFTP 服务:
bash
sudo apt-get install tftp-hpa tftpd-hpa //在ubuntu上按照tftp服务
(2)创建 TFTP 服务器工作目录(你自己创建,下面只是一个举例):
bash
mkdir -p /home/book/tftpboot
sudo chmod 777 /home/book/tftpboot
sudo vim /etc/default/tftpd-hpa
(3)修改TFTP服务配置文件 /etc/default/tftpd-hpa中,添加以下字段(将上面自己创建的工作目录写进配置文件中;以及其他一些配置,这配置啥意思先不管,照着学就好):
cpp
TFTP_DIRECTORY="/home/book/tftpboot"
TFTP_OPTIONS="-l -c -s"
(4)最后重启TFTP服务(该命令和重启网络命令好像,把tftpd-hpa改为network就好):
cpp
sudo service tftpd-hpa restart
(5)查看 tftp 服务是否在后台运行:
cpp
ps -aux | grep "tftp"
2、开发板从Ubuntu下载文件
(1)把待下载文件,放到Ubuntu中TFTP服务器工作目录中,比如123.txt。
(2)使用以下命令,从Ubuntu中下载文件:
cpp
tftp -g -r 123.txt 192.168.1.142
//要下载什么文件 //Ubuntu桥接方式下的IP地址
3、开发板上传文件到Ubuntu
使用以下命令,将开发板当前目录下的345.txt文件,上传到Ubuntu的TFTP服务器工作目录中:
cpp
tftp -p -l ./345.txt 192.168.1.142
//要将开发板的哪个文件上传到Ubuntu //Ubuntu桥接方式下的IP地址
4、tftp命令简介
更多介绍,见 Linux tftp 命令 | 菜鸟教程。

tftp命令是Linux系统中的一个用于进行文件传输的工具,它是基于UDP协议的、简单文件传输协议(TFTP)的客户端命令行工具。
tftp命令的主要作用是在网络中传输文件。它可以通过TFTP协议与远程主机进行通信,将文件从本地主机传输到远程主机,或者从远程主机下载文件到本地主机。比如可以将固件、配置文件、日志文件等传输到网络设备,或者从网络设备上下载这些文件进行分析和备份。
与其他文件传输协议(如FTP)相比,TFTP协议更加简单和轻量级,适用于在局域网或者本地网络中进行快速的、小体积的文件传输。
在使用tftp命令时,需要注意确保tftp服务器已正确配置、网络连接正常、文件权限和路径设置正确、注意文件名的大小写、设置传输模式和超时时间、使用合适的命令选项,并注意安全性。
三、Windows主机、开发板
这两者之间也可以使用TFTP服务传输文件,需要使用到一款软件:tftpd64。
如下图所示,在Windows主机下运行tftpd64,设置好TFTP服务的工作目录(以后开发板从这个目录中下载文件,或者上传文件到这个目录),选择有线网卡(桥接网卡)的IP地址。

如果开发板想下载Windows主机中的文件(比如123.txt),先将文件放入Windows主机TFTP服务的工作目录下,然后使用下面命令:
cpp
tftp -g -r 123.txt 192.168.1.10
//要下载什么文件 //Windows主机有线网卡的IP地址
如果开发板想上传文件(比如345.txt)到Windows主机,则采用下面命令:
cpp
tftp -p -l ./345.txt 192.168.1.142
//将开发板哪个文件上传到Windows //Windows有线网卡的IP地址