前言
对于在mac上迁移到windows平台的朋友们来说,windows环境上缺少linux可用环境,经常用起来恼火。本系列文章主要介绍一下自己在搭建一套舒适的linux环境过程中踩过的坑。
先来看看最终的样子
- 电脑开机后,虚拟机后台自动启动,无需手动操作,无需开启图形界面
- 占用内存少,小水管也能用
- 借助utools启动器,可以使用简单命令来快速开关、重启虚拟机
开机 关机 重启
- xshell自动连接,终端酷炫
- 支持命令高亮、命令tab提示、历史命令一键补全(代替Ctrl+R),更多绚丽技巧可以看知乎有位水友
- 开机自动把宿主机代码目录、工具目录、下载目录挂载到我们指定的目录中
为什么要用虚拟机
其实很多同学对linux的需求更多是使用docker,windows平台也有docker desktop,安装方便,开箱即用,为什么还要用虚拟机呢?
主要是目前使用的电脑内存只有8G,docker desktop和hyper-v启动之后,直接占用内存1G多。开发过程中通常要浏览器、IDE、文档等等东西一起开着,开多了就很卡,而且容易死机。
在vmware workstations跑的centos上运行docker,通常来说占用的内存很小。可以看下,在我启动的虚拟机上运行了一个mysql和redis之后,占用内存很少。
话不多说,我们直接开始安装
安装并设置虚拟机
请自行下载vmware workstation和centos
创建并安装虚拟机
命名虚拟机的时候最好使用英文,路径也最好是英文。如果是中文的话,在设置虚拟机后台自启动的过程中会有编码问题,到时候来回折腾比较麻烦,还不如直接用中文。 点击启动,并安装centos,安装过程省略,就一直下一步就好,傻瓜式安装。
配置网络
选择编辑->虚拟网络编辑器 点击更改设置 选择NAT模式,点击NAT设置 记住这三个地址 启动虚拟机并登录系统,输入命令
vi /etc/sysconfig/network-scripts/ifcfg-ens33
按照如下方式进行修改,并加入ip地址 修改完成并保存后,重置网络
systemctl restart network
之后可以测试一下网络连接通不通
使用vmrun命令启动和关闭虚拟机
找到vmware workstation的安装目录,通常目录下有个执行文件叫做vmrun。vmware workstation就是用这个命令来启动虚拟机的。 可以在cmd命令行中执行命令来测试虚拟机启动
# 开机指令
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -T ws start "D:\tools\centos\CentOS.vmx" nogui
# 关机指令
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -T ws stop "D:\tools\centos\CentOS.vmx" nogui
# 重启指令
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -T ws stop "D:\tools\centos\CentOS.vmx" nogui
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -T ws start "D:\tools\centos\CentOS.vmx" nogui
其中第一个参数 "D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
表示vmrun的绝对路径
"D:\tools\centos\CentOS.vmx"
表示你虚拟机的安装路径
nogui
表示不需要图形界面,直接在后台启动。等几秒钟后,即可通过xshell等终端工具进行连接了。
如果把命令中的 start
换成 stop
则表示关机。
我们把这两个命令,分别写入两个bat文件,并点击执行,就可以直接通过命令来开关虚拟机了。
但是平时无论是使用鼠标点击脚本,还是输这一长串命令都很麻烦。我们就可以借助utools和wox等快速启动工具,直接找到脚本即可正常启动和关闭
设置虚拟机开机自启动
Windows键 + R 调出运行界面 -> gpedit.msc -> 用户配置 -> windows设置 -> 鼠标双击脚本(登录/注销) -> 鼠标双击“登录”或“注销”分别添加 那么系统每次在启动前会自动开启虚拟机,在注销后设置虚拟机关机。
安装vmware tools
vmware tools可以用来设置共享文件夹 点击虚拟机->安装vmware tools
- 首先挂载安装程序
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
看到...mounting read-only,表示挂载成功。
- 解压vmware tools
cd /mnt/cdrom
ls -al
tar -zxvf VMwareTools-10.2.0-7259539.tar.gz -C /tmp
- 执行安装程序
cd /tmp/vmware-tools-distrib/
./vmware-install.pl
理论上只有在最开始的时候回输入一个 y
确认的,其他的一路回车即可。
如果出现以下错误
The path "" is not valid.
What is the location of the directory of C header files that match your running
kernel?
可以使用命令,来更新内核,更新之后重启机器即可
yum update kernel
设置共享目录
我们安装完成vmware tools的目的最重要的还是设置宿主机和虚拟机之间的文件共享。
点击确定后,进入虚拟机,输入命令 vmware-hgfsclient
即可看到我们设置的三个目录已经有了
但是里面的文件目前还访问不到,首先我们创建几个我们自己希望挂载这些共享文件的目录。
比如我想把这个目录都挂载/root/host这个目录下
# 创建目录
mkdir -p /root/host/workspace
mkdir -p /root/host/tools
mkdir -p /root/host/download
# 执行挂载命令
/usr/bin/vmhgfs-fuse .host:/workspace /root/host/workspace -o subtype=vmhgfs-fuse,allow_other
/usr/bin/vmhgfs-fuse .host:/tools /root/host/tools -o subtype=vmhgfs-fuse,allow_other
/usr/bin/vmhgfs-fuse .host:/download /root/host/download -o subtype=vmhgfs-fuse,allow_other
然后查看/root/host目录下,这三个目录已经正常挂载上了。
设置目录挂载开机自启动
通常这种目录挂载的方式在机器重启后,就会消失,我们需要设置一个开机自动执行脚本,来让虚拟机每次启动后都可以自动把这三个目录挂载到我们指定的目录上。 编写脚本:
#!/bin/bash
/usr/bin/vmhgfs-fuse .host:/workspace /root/host/workspace -o subtype=vmhgfs-fuse,allow_other
/usr/bin/vmhgfs-fuse .host:/tools /root/host/tools -o subtype=vmhgfs-fuse,allow_other
/usr/bin/vmhgfs-fuse .host:/download /root/host/download -o subtype=vmhgfs-fuse,allow_other
给这个脚本赋予执行权限
chmod +x mount.sh
将这个脚本加到开启启动中
# centos7 中这个文件的默认权限被放低了,所以要先赋予执行权限
chmod +x /etc/rc.d/rc.local
# 修改文件,把挂载脚本写在最后面
vi /etc/rc.d/rc.local
重启即可看到目录被自动挂载了。
终端设置
以前在mac上用item2+oh_my_zsh加上各种插件十分方便,但是item在windows平台上没有,XShell也不失为一款优秀的终端管理软件,除了可能没有Ctrl+C/Ctrl+V,没那么方便之外,只要用习惯了其实也还不错。
一样话不多说,直接开干
安装zsh
使用命令 cat /etc/shells
查看当前安装了哪些shell,通常来说zsh是没有安装的
使用 yum install zsh
进行安装,安装完成后,使用命令 chsh -s /bin/zsh
来切换shell
然后我们再使用 echo $SHELL
来看下是否切换成功,如果已经修改为 /bin/zsh
那说明正常了
此时重启即可进入zsh的世界
安装oh my zsh和相关插件
想要终端更炫,有更多好用的功能,需要安装oh my zsh,这款软件是托管在github上的,所以我们首先要使用 yum install git
来安装git。
安装git完成后,使用如下代码,来安装oh my zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
如果出现下面的图形,则表示安装成功
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
p.s. Follow us at https://twitter.com/ohmyzsh.
p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.
使用 vi ~/.zshrc
可以修改主题
# 我用的主题是agnoster,还有其他的主题,大家可以按照自己喜欢的选
ZSH_THEME="agnoster"
至此酷炫的终端安装完成,更多酷炫技巧大家想必大家玩的比我溜了,就不献丑了。