介绍
作为一名程序员很多时候需要 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
因为日用为主所以这里选择 Ubuntu, 用 Ubuntu 作为示范 (WSL 里的 Ubuntu 自带 git,vim,ssh 等常用软件, 其他的没用过不清楚).
傻瓜式安装完成之后 (连下一步都没有), 会弹出通知直接打开就行, 如果没有通知可以去开始里找到刚刚安装好的 Ubuntu 打开就行了
但是, 这个时候会发现, 不能用提示没有打开 WSL, 需要启动后重试
需要到 控制面板\所有控制面板项\程序和功能 中选择 启用或者关闭 Windows 功能
找到 适用于 Linux 的 Windows 子系统 并勾选, 然后 确定 选择 立即重新启动
重启之后再次打开 Ubuntu 就可以使用了, 根据提示输入用户名, 两次输入密码就可以看见熟悉的命令行
然后熟悉的套路, 先设置 root 用户
先输入刚刚设置的用户密码, 然后两次输入要设置的 root 用户密码
然后输入 root 用户的密码即可, 接着更换 apt 的数据源
cd /etc/apt #进入配置文件所在目录
cp sources.list sources.list.bak #备份配置文件
vim sources.list #编辑配置文件
将下面的配置覆盖 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 #更新软件
更新源的过程中有可能会报错 (如上图) 重新执行即可(404 可以无视), 更新软件需要等待的时间稍微偏长大概 5-10 分钟, 但是没关系我们可以再开一个窗口干别的事啊, 不然怎么是 Linux 呢, 在开始菜单再次点击 Ubuntu 就可以再打开一个会话窗口 (或者在状态栏的图标上右键, 然后点击 Ubuntu 也行).
这个时候可以秀一波 screenfetch (滑稽), 好了现在来解决下一个坑, 在某些电脑中会话窗口的配色有很严重的问题, 即蓝色很暗看不清, 但是有些电脑又没有问题 (不清楚触发条件, 我给公司电脑装的时候有问题, 家里电脑又没问题, 系统内部版本相同,难道是 I 卡和 A 卡的区别?逃),WSL 的会话窗口配色实际上取决于 CMD 属性里颜色标签里面的配色, 发现两台电脑的配色的色值还真不一样 (如下图)
这就需要用到一个开源的 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 的配色也被修改了)
上面是公司的非正常配色修改之后,下面是我的笔记本用的原始配色的比对图
好了接下来就和正常玩 shell 一样了,尽情的享受运行 WSL 吧(另附标准结局)