Windows Subsystem for Linux是Win10原生支持的Linux子系统,可以在其上运行GNU用户空间。大部分情况下Linux内核调用会通过相应的驱动映射到对应的Windows内核调用,但同时也有可能缺乏对应的Windows内核调用。因此WSL本身在使用上有一定的限制。也因此WSL并不是运行在Windows上的“虚拟机”,Linux命令可以像Windows应用程序一样访问本地主机,无需使用虚拟化的网络。
目前WSL上可以运行Bash shell和命令语言、命令行工具、编程语言解释器甚至是图形应用程序等。同时也存在一些问题:如朋友反应无法运行docker;自己也遇到某些情况下sudo无法正常使用的情况。并不能完全把WSL当作Linux来进行使用。
但是,
作为一个写不惯CMD和PowerShell的虚假软粉,能够在自己喜欢的桌面系统中同时使用比较熟悉的linux操作,是一种双倍的快乐。再加上Windows本身丑到不行的CMD界面,我更想找一个替代品(Windows Terminal还在alpha版本,只能慢慢等了)。
WSL安装
安装比较简单。在Windows Store里搜索WSL就可以了。商店里现在提供的Linux版本有Ubuntu,Debian,Kali Linux,SUSE Linux Enterprise Server。我选择了我比较熟悉的Ubuntu。值得一提的是,WSL最初即是由Microsfot与Canonical合作开发的。
需要注意的是,在初始化WSL之前,你需要在windows feature中把WSL选项勾上,重启之后才能开始设置WSL。
优雅WSL
默认的Ubuntu源可能因为网络原因会较慢,可以自行切换为国内源,加速软件包的下载速度。
安装之后就会有Windows为WSL准备的默认终端,默认的字体是宋体。
网上有很多关于第三方终端来提升Windows下终端的体验,比如Hyper,Terminus,Fluent Terminal
等等,在美观方面都碾压默认的WSL终端。我都有进行过尝试,被性能劝退了。特别是Hyper,Terminus这两款基于Electron的终端,使用起来让我有点怀疑自己笔记本的配置是不是假的。
最终我决定使用默认的WSL终端,但是实在是原生的太难看了,特别是宋体的加持,让人目不忍视。
首先要搞定的就是字体问题。Windows默认终端是一个较为底层的应用,没有使用通用UI渲染层。终端默认状态下可选的字体较少,需要安装额外的字体。我目前使用的是Sarasa Gothic,选择的是Sarasa Mono T SC
这一等宽字体。
解决掉字体问题,当然是直接上手广为人知的zsh & oh-my-zsh
:
1 | sudo apt install zsh |
oh-my-zsh
主题我比较喜欢酷炫的Powerlevel9k:
配置好之后的界面大概就是这个样子:
此时,右键menu bar->properties->Colors->Opacity调整到自己喜欢的程度,为其注入灵魂(大雾):
Tips
到此基本的配置就完成了。可能有些时候会出现与上述图片不符的情况,这可能是各种各样的原因引起的。本人是在Windows 10 English环境下进行的相关配置,同时参考了Dev on Windows with WSL做了一些修改。
因为有现成的文章描述,更多的细节也就不描述了,这里说一些比较重点的部分。
ls
后背景色问题
可能很多人会发现ls
和cd
命令,会出现非常违和的后背景色。是因为WSL文件系统的权限问题,Windows原有NTFS文件系统中的文件到WSL下权限全部变成0777。
想要从根本上解决此问题,就需要解决WSL下的权限问题。
- 在WSL中创建
/etc/wsl.conf
:1
2
3
4
5[automount]
enabled = true
root = /mnt/
options = "metadata,umask=22,fmask=111"
mountFsTab = true - 重启终端即可
执行Windows命令
是的,WSL可以直接执行CMD命令。当然,要加上.exe
才行。
相关阅读推荐
想要水这篇Blog的时候,看了一些相关的文章,因为懒的缘故,并没有一一在这里介绍。有兴趣的读者可以浏览以下相关文章。