【1】文件互通

做编程开发,经常需要将文件在不同的机器之间来回倒腾,比如安装了vmware之后,经常需要在宿主机(Widndows)和Ubuntu之间转移文件。

【2】 虚拟机共享文件夹

使用共享文件来互通win和ubuntu的文件是最简单的,方法如下:

点击虚拟机设置按钮,找到想要共享给虚拟机的文件夹。下图以Downloads文件夹为例,将其设置为Windows与Ubuntu的共享文件夹:
在这里插入图片描述
打开命令终端,输入 cd /mnt/hgfs 进入共享文件夹,通过命令ls,便可看到Downloads

gec@ubuntu:~$ cd /mnt/hgfs/
gec@ubuntu:/mnt/hgfs$ ls
Downloads
gec@ubuntu:/mnt/hgfs$ 

通过在终端输入不同的命令,就可以在Ubuntu内部操作宿主机的共享文件了。

【2】samba文件共享

samba是Linux下的一款网络磁盘服务,在ubuntu安装samba,并做好恰当的配置,即可在其他系统中方便地访问ubuntu系统的文件。

在这里插入图片描述
配置 samba

gec@ubuntu:~$ sudo vi /etc/samba/smb.conf

在上述samba的配置文件的末尾追加如下信息:
[share] 是 Windows 主机看到的samba文件夹的名称,可以任意修改
path 是 Ubuntu 主机通过 samba 共享出去的路径

[share]
path=/home/gec/shareDir
browseable=yes
writable=yes
public=yes
available=yes

上述配置文件追加的信息中[share]是对共享文件的重命名,可以随意修改,path就是通过 samba 服务共享出去的目录路径。

重启 samba
配置好smb.conf之后,重新加载配置文件并重启samba服务:

gec@ubuntu:~$ sudo service smbd reload
gec@ubuntu:~$ sudo service smbd restart

连接 samba

以上述配置为例,在网络配置通畅的情况下,在windows系统中可以在运行窗口直接输入ubuntu系统的网络IP来直接访问ubuntu系统中的 /home/gec/shareDir 目录:
在这里插入图片描述
注意,如果要在samba共享目录中创建文件,还必须在ubuntu给该目录增加可写权限,以上述 /home/gec/shareDir 为例:

gec@ubuntu:~$ sudo chmod 777 /home/gec/shareDir

另外注意到,Windows 的共享文件夹本质上也是 samba 服务,因此在 Ubuntu 中也可以通过 samba 访问。
在这里插入图片描述
在windows中设置共享文件夹
要想把某个文件夹共享给 ubuntu,只需要右键设置指定文件夹的共享属性即可,选择“特定用户”,在弹出的窗口中选择“Everyone”即可,如下图所示:
在这里插入图片描述

在ubuntu中访问共享文件夹

【3】安装 smbclient 工具

gec@ubuntu:~$ sudo apt install smbclient

查看windows中共享的文件夹:

# 命令格式
gec@ubuntu:~$ smbclient -L windows主机IP -U 用户名%密码

# 例如:
gec@ubuntu:~$ smbclient -L 192.168.90.2 -U 张三%12345678

	Sharename       Type      Comment
	---------       ----      -------
	ADMIN$          Disk      远程管理
	C$              Disk      默认共享
	IPC$            IPC       远程 IPC
	Users           Disk      
	xyz             Disk      
gec@ubuntu:~$
gec@ubuntu:~$

可以看到,上述共享出来的文件夹 xyz 了

挂载windows的共享文件夹分区

# 命令格式:
gec@ubuntu:~$ sudo mount -t cifs -o rw -o username=xxx,password=xxx //windows主机IP/共享文件夹名称 挂载点

例如:

gec@ubuntu:~$ sudo mount -t cifs -o rw -o username=张三,password=12345678 //192.168.90.2/xyz /opt/

这样,就可以在ubuntu中访问windows的共享文件夹了。

【4】FTP文件传输

在这里插入图片描述

FTP是一种网络协议,在文件传输领域被广泛使用,采用该协议的各种FTP服务端和客户端不胜枚举,例如Linux下的vsftpd服务器,Windows下的FlashXP客户端。

Ubuntu中的 vsftpd 的含义是 very security FTP daemon(即非常安全的FTP服务器),我们可以在ubuntu中配置vsftpd服务端,然后在windows中使用FTP客户端来达到文件互联互通的目的。

【5】安装 vsftpd

gec@ubuntu:~$ sudo apt install vsftpd

配置 vsftpd

gec@ubuntu:~$ sudo vi /etc/vsftpd.conf
# 在上述配置文件中,找到 write_enable=YES ,将其前面的井号去掉就可以了

重启 vsftpd

gec@ubuntu:~$ sudo service vsftpd reload
gec@ubuntu:~$ sudo service vsftpd restart

查看运行状态

gec@ubuntu:~$ sudo service vsftpd status
vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2021-06-07 15:31:08 CST; 9s ago
  Process: 25797 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 25805 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
 Main PID: 25806 (vsftpd)
    Tasks: 1 (limit: 4631)
   CGroup: /system.slice/vsftpd.service
           └─25806 /usr/sbin/vsftpd /etc/vsftpd.conf

6月 07 15:31:08 aidevelop-vm systemd[1]: Starting vsftpd FTP server...
6月 07 15:31:08 aidevelop-vm systemd[1]: Started vsftpd FTP server.
gec@ubuntu:~$ 

注意到,上述输出信息中有active(running)字样,表示ubuntu中的vsftpd已经在正常运行,这时就可以启动windows中的ftp客户端去连接FTP服务了。

在这里插入图片描述
下回见

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐