Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >与虚拟机交互文件的3种方式

与虚拟机交互文件的3种方式

作者头像
LogicPanda
发布于 2018-08-30 03:47:16
发布于 2018-08-30 03:47:16
2.5K00
代码可运行
举报
运行总次数:0
代码可运行
前言

大家好,我是公众号逻辑熊猫带你玩Python的小编LogicPanda,今天的主题是“与虚拟交互文件的3种方法”。

在我们的学习过程中很多人都选择了使用虚拟机安装Linux操作系统或者是以其他目的安装虚拟系统。这样做有很多好处 比如:

  • 相当于直连,远程登录比较快
  • 可利用Windows的网络直接上网
  • 不影响电脑的正常使用
  • 胡乱搞事情不怕事大

但是,使用虚拟机也存在一些问题,比如,文件的交互。如何把本地的文件送到虚拟机里面?如何把虚拟机里面的东西送到本地?有时候希望调试自己的跨平台代码,或者是下载好的安装包想要送到虚拟机里面该怎么办?

这里呢,小编指出三种利用虚拟机传输文件的方法:

  1. 使用FTP协议
  2. 使用磁盘工具
  3. 使用SMB协议(重点)
使用FTP协议

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

使用FTP协议,需要安装FTP客户端。比如Xftp,FileZilla

也可使用Xshell、MobaXterm等软件的FTP功能。

一般从镜像安装好Linux操作系统,ftp服务是配置好的。如果没有可以使用如下方法配置:

安装vsftpd服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install vsftpd

配置vsftpd.conf文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vi /etc/vsftpd.conf

需要修改的内容如下:

  1. anonymous_enable = NO # 不允许用户匿名登录
  2. local_root = /home/username/ftp # 置顶ftp上传和下载目录
  3. local_enable = YES # 允许本机登录
  4. chroot_list_enable = YES chroot_list_file = /etc/vsftpd.chroot_list # 允许vsftpd.chroot_list中的用户登录服务器
  5. write_enable = YES # 允许上传文件到服务器
  6. sudo vim /etc/vsftpd.chroot_list # 建立文件添加用户
  7. 将/home/username/ftp减去w权限,即文件夹的拥有者不能拥有写全向
  8. 在/home/username/ftp中建立一个share文件夹
  9. sudo /etc/init.d/vsfftpd restart # 重启服务,使配置生效

PS:SFTP协议

FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资源。而SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低(不过现实使用当中,没有发现多大差别)。

使用磁盘工具

比如:DiskGenius,Ext2IFS等工具。

使用DiskGenius需要在虚拟机关机状态下使用。使用方法是:

  • 打开软件
  • 硬盘-->打开虚拟硬盘文件 如:G:\VMwareSys\U16\Ubuntu16.04.vmdk
  • 打开之后,可以复制文件进去出来了。
  • Win10上打开Linux系统虚拟硬盘有些问题。可能需要配置bios。
  • win10上打开windows系统的虚拟硬盘没问题。
SMB协议

SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。

SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet File System),并且加入了许多新的特色。

首先在需要在虚拟机上安装samba软件。

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

PS:演示环境为DeepinLinux!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install smaba smaba-common

创建一个用来交互的目录,比如我:/home/lzc/share

将目录的权限改为777

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod 777 /home/lzc/share

然后修改samba的配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vim /etc/samab/smb.conf

在末尾添加如下几行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[share]
    path = /home/lzc/share # 请用绝对路径
    available = yes
    browsable = yes
    # public = yes # 不需要密码
    writable = yes

给smaba创建账户:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a username

重启samba让配置生效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo /etc/init.d/smbd restart

在win下如何访问?

打开资源管理器,在地址栏输入虚拟机的“\\”+IP地址,输入账号密码即可,如果不想费事 ,那就将下面内容中的public打开

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[share]
    path = /home/lzc/share # 请用绝对路径
    available = yes
    browsable = yes
    public = yes # 不需要密码
    writable = yes

这个时候,打开资源管理器,然后网络,可以看到多出来了一个虚拟机。

"

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 逻辑熊猫带你玩Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux CentOS 7 安装JDK详细步骤
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
zoro
2019/04/11
8.5K0
openjdk 在线安装
ldapjdk-javadoc.noarch : Javadoc for ldapjdk
用户7741497
2022/02/22
1.1K0
Centos7 安装java1.7和tomcat7并部署应用 Centos7 安装java1.7和tomcat7并部署应用
yum install java-1.7.0-openjdk-devel.x86_64
尾尾部落
2018/09/04
6990
Install Jenkins
参考 Installing Jenkins on Red Hat distributions
franket
2021/08/12
6040
EFK(Elasticsearch+Filebeat+Kibana)日志收集系统
Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。
Java架构师必看
2021/06/10
19.9K2
EFK(Elasticsearch+Filebeat+Kibana)日志收集系统
CentOS7安装JDK8
如上所示,当前已有openjdk的1.7和1.8版本,我们需要将其卸载; 2. 卸载上一步发现的已装的jdk,执行以下命令:
程序员欣宸
2022/05/09
3990
CentOS下安装JDK的三种方法
//安装完之后,默认的安装目录是在: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64
流柯
2018/08/31
2.8K0
CentOS下安装JDK的三种方法
由于各Linux开发厂商的不同,因此不同开发厂商的Linux版本操作细节也不一样,今天就来说一下CentOS下JDK的安装:
用户1518699
2018/09/12
2.3K0
Hadoop 在 Centos7 下的单机布署(一). Standalone Operation
Hadoop 生态圈中的其它项目可以参考 Hadoop-related projects
franket
2021/08/12
5610
搭建Hadoop集群
搭建集群作为一件事,应该一气呵成,希望你腾出一两个小时的时间来完成搭建,提前祝你搭建成功!
用户9615083
2022/12/25
3.2K0
搭建Hadoop集群
Centos中yum方式安装java
查看CentOS自带JDK是否已安装。 ◆输入:yum list installed |grep java。 若有自带安装的JDK,如何卸载CentOS系统自带Java环境? ◆卸载JDK相关文件输入:yum -y remove java-1.7.0-openjdk*。 ◆卸载tzdata-java输入:yum -y remove tzdata-java.noarch。 当结果显示为Complete!即卸载完毕。 注:“*”表示卸载掉java 1.7.0的所有openjdk相关文件。 检查CentOS系
洗尽了浮华
2018/01/22
1.2K0
centos7 卸载openJdk,并安装JDK1.8
本文由 bytebye 创作 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
ByteBye
2019/09/24
1K0
Centos安装jdk1.8出现-bash: //usr/local/soft/jdk1.8.0_191/bin/javac: /lib/ld-linux.so.2: bad ELF interpre
1、从来没有这么郁闷,之前安装都是好好的,自从将Centos升级到7.0版本,安装了jdk报了这个错误,也是郁闷的一毛,参考了一下百度的,记录一下。使用java命令还有java -version命令都是正常的,唯独使用javac报错按照道理来说自从jdk1.7以后可以不用配置classpath了啊。可我配置了classpath依旧报错。自能百度大法了啊。
别先生
2019/07/10
1.6K0
Centos安装jdk1.8出现-bash: //usr/local/soft/jdk1.8.0_191/bin/javac: /lib/ld-linux.so.2: bad ELF interpre
centos 7 安装JDK (Linux安装jdk)
该文介绍了在 CentOS 7 中如何安装 JDK 1.8 及其后续步骤。首先,检查系统是否已经安装了 JDK 1.8,如果没有,则从 Oracle 官方网站下载并安装。然后,配置环境变量,使系统可以识别 JDK 1.8。最后,验证安装是否成功。
王小雷
2018/01/02
6.5K0
Linux配置Java环境变量 详解
JDK官方下载地址:https://www.oracle.com/cn/java/technologies/javase-downloads.html
全栈程序员站长
2022/11/15
5.3K0
Linux配置Java环境变量 详解
Linux安装JDK完整步骤
首先到jdk官网上下载你想要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下,并且命令进入该文件夹下:
周小董
2019/03/25
1.3K0
使用CentOS 7.5卸载自带jdk安装自己的JDK1.8
  删完之后可以再通过:rpm -qa | grep java 或 rpm -qa | grep jdk 命令来查询出是否删除掉
黑泽君
2018/12/10
1.5K0
Linux下如何查看JDK安装路径
使用 echo $JAVA_HOME 命令可以定位到Java安装路径,但是前提是配置了环境变量$JAVA_HOME,否则还是定位不到,如下所示:
浩Coding
2019/07/03
16.2K0
centos创建samba共享_docker共享目录
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
全栈程序员站长
2022/11/08
3.7K0
centos创建samba共享_docker共享目录
java环境配置及jps命令未找到
最近基于CentOS 7下安装hadoop集群,碰到了java环境变量的问题,同时也出现了jps命令无法找到的情况。简要描述一下基于CentOS 7下Java环境的配置及jps命令未找到的处理。
Leshami
2018/08/06
3.5K0
相关推荐
Linux CentOS 7 安装JDK详细步骤
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验