Windows平台下打造舒服的linux研发环境

·  阅读 188

前言

对于在mac上迁移到windows平台的朋友们来说,windows环境上缺少linux可用环境,经常用起来恼火。本系列文章主要介绍一下自己在搭建一套舒适的linux环境过程中踩过的坑。

先来看看最终的样子

  1. 电脑开机后,虚拟机后台自动启动,无需手动操作,无需开启图形界面
  2. 占用内存少,小水管也能用

image.png

  1. 借助utools启动器,可以使用简单命令来快速开关、重启虚拟机

开机 image.png 关机 image.png 重启 image.png

  1. xshell自动连接,终端酷炫
  2. 支持命令高亮、命令tab提示、历史命令一键补全(代替Ctrl+R),更多绚丽技巧可以看知乎有位水友

image.png

  1. 开机自动把宿主机代码目录、工具目录、下载目录挂载到我们指定的目录中

image.png

为什么要用虚拟机

其实很多同学对linux的需求更多是使用docker,windows平台也有docker desktop,安装方便,开箱即用,为什么还要用虚拟机呢?

主要是目前使用的电脑内存只有8G,docker desktop和hyper-v启动之后,直接占用内存1G多。开发过程中通常要浏览器、IDE、文档等等东西一起开着,开多了就很卡,而且容易死机。

在vmware workstations跑的centos上运行docker,通常来说占用的内存很小。可以看下,在我启动的虚拟机上运行了一个mysql和redis之后,占用内存很少。 image.png image.png

话不多说,我们直接开始安装

安装并设置虚拟机

请自行下载vmware workstation和centos

创建并安装虚拟机

image.png image.png

命名虚拟机的时候最好使用英文,路径也最好是英文。如果是中文的话,在设置虚拟机后台自启动的过程中会有编码问题,到时候来回折腾比较麻烦,还不如直接用中文。 image.png image.png image.png 点击启动,并安装centos,安装过程省略,就一直下一步就好,傻瓜式安装。 image.png

配置网络

选择编辑->虚拟网络编辑器 image.png 点击更改设置 image.png 选择NAT模式,点击NAT设置 image.png 记住这三个地址 image.png 启动虚拟机并登录系统,输入命令

vi /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码

按照如下方式进行修改,并加入ip地址 image.png 修改完成并保存后,重置网络

systemctl restart network
复制代码

之后可以测试一下网络连接通不通 image.png

使用vmrun命令启动和关闭虚拟机

找到vmware workstation的安装目录,通常目录下有个执行文件叫做vmrun。vmware workstation就是用这个命令来启动虚拟机的。 image.png 可以在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等终端工具进行连接了。 image.png 如果把命令中的 start 换成 stop 则表示关机。 image.png 我们把这两个命令,分别写入两个bat文件,并点击执行,就可以直接通过命令来开关虚拟机了。 image.png 但是平时无论是使用鼠标点击脚本,还是输这一长串命令都很麻烦。我们就可以借助utools和wox等快速启动工具,直接找到脚本即可正常启动和关闭 image.png

设置虚拟机开机自启动

Windows键 + R 调出运行界面 -> gpedit.msc -> 用户配置 -> windows设置 -> 鼠标双击脚本(登录/注销) -> 鼠标双击“登录”或“注销”分别添加 image.png 那么系统每次在启动前会自动开启虚拟机,在注销后设置虚拟机关机。

安装vmware tools

vmware tools可以用来设置共享文件夹 点击虚拟机->安装vmware tools image.png

  1. 首先挂载安装程序
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
复制代码

看到...mounting read-only,表示挂载成功。

  1. 解压vmware tools
cd /mnt/cdrom
ls -al
tar -zxvf VMwareTools-10.2.0-7259539.tar.gz -C /tmp
复制代码
  1. 执行安装程序
cd /tmp/vmware-tools-distrib/
./vmware-install.pl
复制代码

理论上只有在最开始的时候回输入一个 y 确认的,其他的一路回车即可。 image.png 如果出现以下错误

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的目的最重要的还是设置宿主机和虚拟机之间的文件共享。 image.png image.png 点击确定后,进入虚拟机,输入命令 vmware-hgfsclient 即可看到我们设置的三个目录已经有了 image.png 但是里面的文件目前还访问不到,首先我们创建几个我们自己希望挂载这些共享文件的目录。 比如我想把这个目录都挂载/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目录下,这三个目录已经正常挂载上了。 image.png

设置目录挂载开机自启动

通常这种目录挂载的方式在机器重启后,就会消失,我们需要设置一个开机自动执行脚本,来让虚拟机每次启动后都可以自动把这三个目录挂载到我们指定的目录上。 编写脚本:

#!/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
复制代码

image.png 重启即可看到目录被自动挂载了。

终端设置

以前在mac上用item2+oh_my_zsh加上各种插件十分方便,但是item在windows平台上没有,XShell也不失为一款优秀的终端管理软件,除了可能没有Ctrl+C/Ctrl+V,没那么方便之外,只要用习惯了其实也还不错。

一样话不多说,直接开干

安装zsh

使用命令 cat /etc/shells 查看当前安装了哪些shell,通常来说zsh是没有安装的 image.png

使用 yum install zsh 进行安装,安装完成后,使用命令 chsh -s /bin/zsh 来切换shell

image.png

然后我们再使用 echo $SHELL 来看下是否切换成功,如果已经修改为 /bin/zsh 那说明正常了

image.png

此时重启即可进入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"
复制代码

image.png

至此酷炫的终端安装完成,更多酷炫技巧大家想必大家玩的比我溜了,就不献丑了。

分类:
开发工具
标签:
收藏成功!
已添加到「」, 点击更改