前言
在学习使用开发板的时候,使用虚拟机的时候,难免会碰到要将本地的文件传输到开发板/虚拟机的情况,这里总结四种方法
1. RZ & SZ
- 这个方法适用于有网的情况
- rz,sz是是Linux/Unix同Windows进行ZModem文件传输的命令行工具,windows端需要支持ZModem的telnet/ssh客户端
- 该方法的传输速度比较慢,推荐使用中小文件的传输
安装 & 使用
sudo apt-get install lrzsz
rz # 打开本地文件管理器,将本地文件传输到虚拟机
sz filename # 将先帮你寄的文件发送到本地
2. Xshell / Xftp
这个方法是通过ssh远程连接两个设备进行文件传输的,参考文章Xshell远程连接虚拟机
3. SCP
Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
# 从服务器下载文件到本地
scp root@文件所在服务器ip地址:/文件绝对路径 /本地路径(或者其他服务器路径)
# 从本地上传文件到服务器
scp /本地文件绝对路径 root@目的服务器ip地址:/存放的路径
# 从服务器下载文件夹到本地
scp root@文件所在服务器ip地址:/文件所在文件夹路径 /本地路径(或者其他服务器路径)
# 从本地上传文件夹到服务器
scp /本地文件所在路径 root@目的服务器ip地址:/存放的路径
4. NFS
这个方法使用于两个设备需要经常进行文件交互的情况,比如嵌入式开发时,编译好的程序需要拷贝到开发板上,调试不是一次就可以成功的,这就需要多次的文件传输。这种情况下可以使用nfs,在编译服务器上构建一个共享文件夹,作为两端设备共享资源
nfs是通过TCP/IP网络进行共享资源,首要条件是两个设备处于同一网段,如两个设备使用同一个交换机,或者将开发板的网口通过网线连接到PC,再配置网口IP地址即可(在开发板或虚拟机上操作)
- 查看设备上的ip地址及网口状态
ifconfig
- 为开发板设备添加一个网口,作为与服务器进行交互的网络通道
sudo ifconfig eth0:1 192.168.0.130 netmask 255.255.0.0
- 为新添加的网口加入网关路由
route add default gw 192.168.2.1 dev eth0
- 查看是否已添加新的路由
route -n
- 查看是否能ping通服务器
ping 你所在服务器的ip地址
- 在开发板上创建一个目录,作为共享文件夹
mkdir nfs
- 在服务器上搭建共享文件夹,并连接到开发板
mount -t nfs -o nolock 服务器ip地址:/需要共享的文件夹 /nfs