# Windos下虚拟机安装Linux
## Windos下安装虚拟机
### 推荐安装`virtualbox`虚拟机
### 简介
VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。
VirtualBox号称是最强的免费虚拟机软件,它不仅具有丰富的特色,而且性能也很优异!(最重要的是内存占用小,而且免费开源,vm正版需要收费而且内存占用大!)
VirtualBox 简单易用功能强大,一个Box为一个虚拟机,随用随配置,不用即销毁.不用再发愁语言环境配置互相交错,其特有的打包分发功能,一次配置,永久使用,团队开发环境,测试环境,保证相同,再也没有`代码在我这里正常`这一说法.不管你是PHP,Python,Golang,Ruby等,随心切换环境,只需要2行命令即可完成!
将环境配置简单化,省下时间学习新语言!(Laravel官方推荐环境Homestead就是用的`VirtualBox`!)
### 下载:
在这里下载并安装[VirtualBox ](https://www.virtualbox.org/wiki/Downloads),[Vagrant](https://www.vagrantup.com/downloads.html). 直接下载 GUI 安装包安装就行.
>[danger] 注意:
> Vagrant要添加到PATH,具体点这里[Vagrant添加到PATH](https://jingyan.baidu.com/article/7f41ececed3144593d095c2f.html);这样可以在任何地方使用vagrant,这里推荐使用gitBash命令行
>VirtualBox必须和Vagrant版本匹配(都下载最新就好!)
### 下载一个合适的box
进行完以上步骤后,就需要考虑我们的虚拟机需要使用什么操作系统了,vagrant的开源社区,提供了很多已经打包好的操作系统,在vagrant的世界里被称为box。在 http://www.vagrantbox.es/ 这里你可以找到你想要的操作系统box,当然你也可以自己制作一个.
>[info] 资源
> [LNMP的Box下载](https://pan.baidu.com/s/1dGutCid)
> 密码:69vk
### 完成一个box的安装
首先创建目录:
`mkdir -m 777 /d/lnmp`
右键打开gitBash:
```
$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up
```
vagrant box add 是添加box的命令
其中{title}可以自行设置,title是盒子名称,如:`ubuntu`,{url}是`.box`文件的位置,如:`d/lnmp/lnmp.box`;
![](https://box.kancloud.cn/522207248693df46cbd04ac90e01f4b0_756x393.png)
然后可以使用`vagrant box list`来查看安装的box列表
![](https://box.kancloud.cn/a007fcea9ff592b2a841f0daf12617f2_568x96.png)
然后使用`vagrant init lnmp`来初始化box
![](https://box.kancloud.cn/cc3b8b0489e4698700ddaed1ee43ff79_547x52.png)
这样就会在当前目录生成一个 Vagrantfile的文件,里面有很多配置信息,默认不做任何配置改动,也是可以启动系统的。
![](https://box.kancloud.cn/903b894af5d9d8459a6b0e0b6bc403e1_722x900.png)
文件夹共享设置,第一个是windos文件夹位置,第二个是linux文件夹位置(根目录下的code文件夹,没有的话自动创建)!
配置基本结束,如果想了解更多配置,自己百度或google
然后使用`vagrant up`来启动这个awesome的系统吧!(是不是很简单?省去了vm繁琐的设置)
![](https://box.kancloud.cn/93e4edee17eac9b68d31e37a65790e1c_1018x770.png)
>[danger] 注意:
> Vagrant端口22对应2222,ssh连接使用127.0.0.1:2222
>第三个框是文件夹对应
这时,你就可以在gitBash上使用`vagrant ssh`自动连接到lnmp的虚拟主机!
或者使用第三方ssh工具,如xshell等(推荐xshell,简单功能强大)
>[warning] 提醒:
>xshell连接时,地址为127.0.0.1,
>端口:2222
>用户名:vagrant
>密码:vagrant
>
![](https://box.kancloud.cn/c75afed9185196e85251b3a41189b790_822x592.png)
## OK!接下来就享受Linux带来的乐趣吧!
### 下面是vagrant常用命令!
| 命令 | 作用 |
|---|---|
| vagrant box add | 添加box的操作 |
| vagrant init | 初始化box的操作,会生成vagrant的配置文件Vagrantfile |
| vagrant up | 启动本地环境 |
| vagrant ssh | 通过 ssh 登录本地环境所在虚拟机 |
| vagrant halt | 关闭本地环境 |
| vagrant suspend | 暂停本地环境 |
| vagrant resume | 恢复本地环境 |
| vagrant reload | 修改了 Vagrantfile 后,使之生效(相当于先 halt,再 up) |
| vagrant destroy | 彻底移除本地环境 |
| vagrant box list | 显示当前已经添加的box列表 |
| vagrant box remove | 删除相应的box |
| vagrant package | 打包命令,可以把当前的运行的虚拟机环境进行打包 |
| vagrant plugin | 用于安装卸载插件 |
| vagrant status | 获取当前虚拟机的状态 |
| vagrant global-status | 显示当前用户Vagrant的所有环境状态 |