Win+Linux单系统解决方案——WSL

介绍

作为一名程序员很多时候需要Linux环境,但是由于PS等某些工具,也不能抛弃Windows,需要双系统来回切 换很是麻烦,用虚拟机又担心性能损耗,但是这么久也是将就着过来了,直到知道了WSL.
这篇文章介绍了安装WSL中的一些坑,希望将来的人能少走一些弯路(教程足够详细萌新都能看懂的那种).

WSL(Windows Subsystem for Linux) 适用于Linux的Windows子系统

(总感觉这个官方翻译有点怪怪的,是不是直译成 Windows的Linux子系统更合适,虽然还是怪怪的).
这个项目已经启动了很长的时间,刚开始有着很多问题,甚至连子系统的存在都没有意义,所以一直没有安装, 但是看更新日志项目似乎已经成熟了就决定试一试,结果看来常用的软件包如GCC.JDK,GIT,SSH等都没有问题值得一用,而且拿来入门也不差啊.

开始

在开始之前先确定一下Windows版本是不是Windows10,然后建议更新到最新版.
打开 Microsoft Store , 搜索 Linux 会有三个结果 Ubuntu , openSUSE Leap42 , SUSE Linux Enterprise Srever

Win+Linux单系统解决方案——WSL

Win+Linux单系统解决方案——WSL
因为日用为主所以这里选择 Ubuntu,用Ubuntu作为示范(WSL里的Ubuntu自带git,vim,ssh等常用软件,其他的没用过不清楚).

Win+Linux单系统解决方案——WSL
傻瓜式安装完成之后(连下一步都没有),会弹出通知直接打开就行,如果没有通知可以去开始里找到刚刚安装好的 Ubuntu 打开就行了

Win+Linux单系统解决方案——WSL


但是,这个时候会发现,不能用提示没有打开WSL,需要启动后重试

Win+Linux单系统解决方案——WSL


需要到 控制面板\所有控制面板项\程序和功能 中选择 启用或者关闭Windows功能

Win+Linux单系统解决方案——WSL


找到 适用于Linux的Windows子系统 并勾选,然后 确定 选择 立即重新启动

Win+Linux单系统解决方案——WSL

重启之后再次打开 Ubuntu 就可以使用了,根据提示输入用户名,两次输入密码就可以看见熟悉的命令行

Win+Linux单系统解决方案——WSL

然后熟悉的套路,先设置root用户

win10上安装的ubuntu18,创建用户

具体报错如下:

$ sudo adduser Anne
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.


解决方法:

把大写的首字母,改成小写即可。
 

Win+Linux单系统解决方案——WSL

sudo passwd root

先输入刚刚设置的用户密码,然后两次输入要设置的root用户密码

Win+Linux单系统解决方案——WSL

su root

然后输入root用户的密码即可,接着更换 apt 的数据源

cd /etc/apt  #进入配置文件所在目录
cp sources.list sources.list.bak  #备份配置文件
vim sources.list  #编辑配置文件

Win+Linux单系统解决方案——WSL

将下面的配置覆盖 sources.list 中的配置

在用vim进行这部操作的时候,用 +p 粘贴系统剪切板会出现错误(具体大家可以试试,如果有人能成功还请告知一下方法)

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
##测试版源  
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
# 源码  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
##测试版源  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
# Canonical 合作伙伴和附加  
deb http://archive.canonical.com/ubuntu/ xenial partner  
deb http://extras.ubuntu.com/ubuntu/ xenial main  

于是我就想,既然这是安装在Windows上的子系统,那是不是应该有着类似于共享文件夹的东西,于是找到了这么一个文件夹

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs

这个就是 Ubuntu WSL版的根目录,接着到 *etc\apt* 下找到 sources.list 用之前贴的配置文件覆盖即可.接着更新数据源

sudo apt-get update  #更新源  
sudo apt-get upgrade  #更新软件 

Win+Linux单系统解决方案——WSL

更新源的过程中有可能会报错(如上图)重新执行即可(404可以无视),更新软件需要等待的时间稍微偏长大概5-10分钟,但是没关系我们可以再开一个窗口干别的事啊,不然怎么是Linux呢,在开始菜单再次点击 Ubuntu 就可以再打开一个会话窗口(或者在状态栏的图标上右键,然后点击 Ubuntu 也行).
这个时候可以秀一波 screenfetch (滑稽),好了现在来解决下一个坑,在某些电脑中会话窗口的配色有很严重的问题,即蓝色很暗看不清,但是有些电脑又没有问题(不清楚触发条件,我给公司电脑装的时候有问题,家里电脑又没问题,系统内部版本相同,难道是I卡和A卡的区别?逃),WSL的会话窗口配色实际上取决于 CMD 属性里颜色标签里面的配色,发现两台电脑的配色的色值还真不一样(如下图)

Win+Linux单系统解决方案——WSL

这就需要用到一个开源的CMD调色工具ColorTool下载解压zip文件,然后用 CMD 打开到解压的路径 ,然后

colortool.exe -b deuteranopia
colortool.exe -b OneHalfDark
colortool.exe -b OneHalfLight
colortool.exe -b solarized_dark
colortool.exe -b solarized_light

这五套主题自己看着选,如果看重了就打开CMD的属性和默认值分别点一次确定,然后重新打开Ubuntu就会发现配色修改好了(当然CMD的配色也被修改了)

Win+Linux单系统解决方案——WSL

上面是公司的非正常配色修改之后,下面是我的笔记本用的原始配色的比对图

好了接下来就和正常玩shell一样了,尽情的享受运行WSL吧(另附标准结局)

Win+Linux单系统解决方案——WSL

上一篇:MYSQL的使用环境


下一篇:眼球取代键盘,指日可待