# 如何在Windows下运行Linux程序
如何在Windows下运行Linux程序
一、搭建 Linux 环境
1.1 安装 VMware Workstation
1.2 下载 CentOS 映像文件
下载 CentOS-7-x86_64-DVD-2009.iso 即可。
1.3 新建虚拟机
二、主机与虚拟机互通
2.1 获取虚拟机的 IP 地址
在终端输入指令ifconfig获取虚拟机的 IP 地址,关注点(ens33):
- inet 后的地址:192.xxx.xxx.128
- netmask:255.255.255.0

2.2 获取主机 IP 地址
打开 cmd,输入指令ipconfig获取主机 IP 地址,关注点:
- VMnet8
- IPv4 地址:192.xxx.xxx.1
- 子网掩码:255.255.255.0

要保证主机地址和虚拟机地址在同一个网段中。
2.3 互通
主机
打开 cmd,输入指令ping 192.xxx.xxx.128,出现如下界面,则表示成功:

虚拟机
打开终端,输入指令ping 192.xxx.xxx.1出现如下界面,则表示成功:

一定要确保主机和虚拟机能够互相 ping 的通,这是实现 Windows 下运行 Linux 的关键步骤。
三、共享文件夹
一般而言,我们希望能在 Windows 下编写代码,然后通过 Linux 虚拟机编译并运行代码,这时候我们就可以通过共享文件夹实现。
3.1 建立共享文件夹
3.1.1 Windows 设置文件夹共享
- 首先,在 Windows 下新建一个共享文件夹(D:\Documents\SharedFolders)。
- 「右击」打开共享文件夹 Shared Folders 的属性面板,并通过如下方法设置共享:

3.1.2 Linux 虚拟机添加共享
- 打开虚拟机的设置,按照下图设置共享文件,把 Windows 下共享的文件夹添加进去:


3.1.3 便捷入口
可以通过「映射网络驱动器」的方式将「共享文件夹 SharedFolders」置于「我的电脑」中,这让可以便捷的管里共享文件夹中的内容。
- 右击「此电脑」选择「映射网络驱动器」:


这样,你就可以在「我的电脑」界面看到共享文件夹了:
3.2 虚拟机进入共享文件夹
通过上述步骤添加的共享文件夹在虚拟机下的路径为:/mnt/hgfs/SharedFolders;如果没有,可按照如下方式添加:
- 通过
ls /mnt指令查看 /mnt 目录下有无 hgfs 目录。- 若无,通过
sudo mkdir /mnt/hgfs新建 hgfs 目录
- 若无,通过
- 通过
sudo vmhgfs-fuse .host:/ /mnt/hgfs指令挂载文件夹 hgfs
然后,通过ls /mnt/hgfs指令,你会发现 hgfs 目录下多了一个 SharedFolders 目录,这个就是与 Windoes 交互的共享文件夹,你可以在 Windows 的 SharedFoolders 下编写一些代码,然后在 Linux 下编译、运行~
需要注意的是,每次重启系统,都需要执行「命令 2」进行挂载。
四、其他
4.1 SecureCRT
安利一个软件 SecureCRT:该软件是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是 Windows 下登录UNIX或Linux服务器主机的软件。
之所以使用这个软件,是因为用这个软件可以很方便的操控Linux虚拟机。举个例子,假如你百度了一条很长很长的指令,现在需要你输入至 Linux 终端,你第一想法肯定是「复制、粘贴」,但是在虚拟机中你是无法将 Windows 下复制的内容粘贴到终端的,这时候就可以提现出 SecureCRT 的便捷了,因为 SecureCRT 本身就是运行在 Windows 下的软件,所以对于复制粘贴操作,手到擒来。
4.1.1 软件安装
按照「使用说明」进行破解即可。
4.1.2 软件使用
使用该软件前确保 CentOS 7 是开启状态(无需登录)。
打开 SecureCRT,按照如下步骤新建连接:

4.1.2 常用设置
- 关闭SecureCRT的声音 - larry-peng - 博客园 (cnblogs.com)
- SecureCRT 设置背景颜色和字体大小
- SecureCRT 中如何配置颜色 - 知乎 (zhihu.com)
4.2 安装 GCC
首先,通过gcc -v查看 GCC 是否安装,如果没有,可通过如下方法安装:
- 安装低版本的GCC(4.8.5)
yum -y install gcc automake autoconf libtool make
- 将 GCC 在线升级到最新版本,依次运行如下指令:
yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bashecho "source /opt/rh/devtoolset-9/enable" >> /etc/profile
最后通过gcc -v查看GCC版本。
声明
参考资料:
- 解决VMware中共享文件夹hgfs的权限问题 - 云樾的博客 (jarviswwong.com)
- VMware虚拟机与主机之间建立共享文件夹
- Linux安装GCC流程详解 - 熟睡的小天使 - 博客园 (cnblogs.com)
# 如何在Windows下运行Linux程序的更多相关文章
- 如何在windows下运行Linux命令?(转载)
在windows上可以运行或使用linux下面的命令吗?可以,小编今天就来分享怎么样让Windows支持Linux命令,做这些安装和设置后,就可以非常方便的在windows系统中使用linux下面的命 ...
- 如何在Windows下运行linux shell脚本
在工作中情况会在碰到linux下进行执行shell的脚本,而就会使用shell的脚本,但经常使用的Windows的系统,而想在Windows电脑中进行直接shell的脚本,而不用再进行学习其它的脚本语 ...
- 如何实现在Windows上运行Linux程序,附示例代码
微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己 ...
- gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)
cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从 ...
- Windows下运行Linux命令
安装Gow软件,Gow-0.7.0.exe,这样就可以在Windows命令行运行Linux命令,比如通过scp把Windows下的文件拷贝到Linux下. 直接运行安装,不会生成任何客户端,直接使用W ...
- Golang在windows下交叉编译linux程序
1.下载相关程序. Golang下载:http://www.golangtc.com/download Git下载:http://git-scm.com/download/ TDM-GCC下载:htt ...
- 如何在windows下安装linux双系统
首先是看这篇博客,讲得很详细,但是有一点小小的区别,这里把整个过程回顾一下. https://www.cnblogs.com/masbay/p/10745170.html 第一步,刻盘,将一个u盘刻录 ...
- Windows下运行MapReduce程序出现Could not locate executable null\winutils.exe in the Hadoop binaries.
运行环境:windows10 64位,虚拟机:Ubuntu Kylin 14.04,Hadoop2.7.1 错误信息: java.io.IOException: Could not locate ex ...
- 如何在Windows下安装Linux子系统(Ubuntu,openSUSU,SUSU Linux Server)
注意:只有win10才能安装,安装的linux没有图形界面. 1.首先在win10设置 --> 更新与安装 --> 针对开发人员 ,选择开发人员模式. 2.win10 Cortana -- ...
随机推荐
- 【机器学习基础】——另一个视角解释SVM
SVM的另一种解释 前面已经较为详细地对SVM进行了推导,前面有提到SVM可以利用梯度下降来进行求解,但并未进行详细的解释,本节主要从另一个视角对SVM进行解释,首先先回顾之前有关SVM的有关内容,然 ...
- angular好文
Angular常见问题:subscribe()还是 async 管道 ? 终极答案就在这里 Angular Development #10 – RouteReuseStrategy – Maintai ...
- Linux 用户管理相关命令
1 sudo adduser username # 添加用户 2 sudo adduser --system username # 添加系统用户 3 sudo deluser username # 删 ...
- Vue 自定义事件 && 组件通信
1 App.vue 2 <template> 3 <!-- 4 组件的自定义事件: 5 1.一种组件间通信的方式,使用于:子组件===>父组件 6 2.使用场景:A是父组件,B ...
- SQL 字符串去除空格函数汇总
SQL 中使用ltrim()去除左边空格 ,rtrim()去除右边空格 ,没有同时去除左右空格的函数,要去除所有空格可以用replace(字符串,' ',''),将字符串里的空格替换为空 . 例:去除 ...
- 关于hive分区,你知道多少呢?
文末查看关键字,回复赠书 一.理论基础 1.Hive分区背景 在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据,因此建表时引入 ...
- Redis架构之哨兵机制与集群
Redis架构之哨兵机制与集群 哨兵机制 1.介绍: Sentinel(哨兵)是redis高可用性解决方案:由一个或多个由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个 ...
- WebStorm 配置 Vue3 的文件模板
WebStorm 默认的 Vue 模板不是 setup 函数(组合式 API)模板,而是 Options API 模板.在设置中搜索 File and Code Templates 编辑创建 vue ...
- 056_末晨曦Vue技术_处理边界情况之X-template
处理边界情况之X-template 点击打开视频讲解更加详细 另一个定义模板的方式是在一个<script>元素中,并为其带上 text/x-template 的类型,然后通过一个 id 将 ...
- 【NOI P模拟赛】华莱士CNHLS(容斥,数论分块)
题意 出题人吃华 莱 士拉肚子了,心情不好,于是出了一道题面简单的难题. 共 T T T 组数据,对正整数 n n n 求 F ( n ) = ∑ i = 1 n μ 2 ( i ) i F(n)=\ ...