WSL 是 Windows Subsystem for Linux 的简称
Win10很久以前就推出了WSL功能,我也一早就安装了,但是由于实际上并没有使用它来工作,因此也就是简单的体验一下。由于最近我有在家里工作的需求,摆两台电脑又很麻烦,所以干脆就试着深入使用一下WSL,看看它到底能不能用 ^ ^。
PS:想要让Win10满足工作需求,我实际上不只做了调教终端这一个事情,但是在这篇文章中我们只说这个一个事情
PS2:这边文章中介绍的很多东西其实是Linux的内容。如果你想调教你的Linux终端,除了和windows图形界面操作有关的部分之外,其他的都一样
安装WSL
打开Win10应用商店,搜索Ubuntu,进行安装。安装成功后,在开始菜单中输入Ubuntu即可启动linux终端。
PS:安装部分不是我们的重点,我们假设你的安装没有问题
刚装上以后的终端大概是这个样子的:
zsh 和 oh-my-zsh
zsh是一个用来替换默认的bash的终端程序,用了zsh后,我们就可以通过配置和安装插件享受到一个更加美观和强大的终端。
然而,直接配置zsh比较繁琐,因此我们要使用oh-my-zsh来辅助配置
官方介绍:
Oh My Zsh is an open source, community-driven framework for managing your zsh configuration.
简言之,就是一个帮助你管理zsh的配置和插件的工具。
可以使用这个命令来安装zsh和oh-my-zsh
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安装成功后,我们就可以对zsh进行配置了。
颜色,主题和字体
zsh颜色主题和终端颜色主题 (Color Theme)
要让我们的终端变得更加漂亮,要配置两个部分:zsh主题(zsh theme)和终端的颜色主题(Color Theme)
由于使用了oh-my-zsh
,修改zsh的主题很容易,只要编辑~/.zshrc
文件,找到ZSH_THEME
一行,改为agnoster
即可
但是Windows默认终端的Color Theme改起来比较费劲,需要使用一个叫做colortool的工具。他是微软自带的一个修改终端配色方案的工具
首先在这里 下载:
下载
colortool.zip
并解压后,进入文件夹,按住shift
并点击右键选择在此处打开Powershell窗口在其中输入
.\colortool.exe -d solarized_dark
回车后,关闭这个新打开的Powershell窗口,回到之前的WSL窗口,输入如下命令以使zsh配置生效:
source ~/.zshrc
现在,你的zsh应该便漂亮了!
PS1: 更多关于colortool的资料可以看这里: https://blogs.msdn.microsoft.com/commandline/2017/08/11/introducing-the-windows-console-colortool/
PS2: 如果你对这个配色不满意,可以在这里找到更多选择:https://github.com/robbyrussell/oh-my-zsh#themes
安装 FiraCode
看上面的图可能你会注意到,虽然看起来颜色比较好看了,但是貌似有一些地方有很大的空白(比如master
字样的左端),感觉怪怪的?
其实这是有一些特殊字符没有显示出来导致的,这些字体在默认的windows中没有。因此我们需要安装一个叫做FiraCode的字体
点击这里下载:https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/ttf/FiraCode-Retina.ttf
下载后,打开它,点击左上角的安装按钮
安装后,对着终端窗口顶部菜单栏点击设置,在终端设置里面找到字体选项,并应用这个新字体
点击确定后,你的终端就可以使用完全体的主题了!
配置插件
使用zsh的另一个好处是可以安装插件来增强终端的功能,而oh-my-zsh让这个过程变得更加容易。
oh-my-zsh的插件都是配置在~/.zshrc
文件中的plugins
选项里。在括号中填写插件名称,并用空格隔开即可
插件推荐
z
oh-my-zsh自带插件,开启即可
快捷访问常用目录的插件,可以让你非常方便的访问经常要使用的目录
比如我经常使用 cd ~/workspace/mpa-web
,安装后可以z m[tab][return]
来快速访问
PS: 刚装上后需要输入几次正常的 cd 命令之后他才能搜集到足够的信息整理出常用路径
d
oh-my-zsh自带插件,开启即可
使用命令d
列出历史纪录中10个最近的目录,输入数字可以直接跳转
在跳来跳去配置环境时很有用,因为你往往不记得刚才的配置文件在哪个路径里面
colored-man-pages
oh-my-zsh自带插件,开启即可
给man命令中的文档加上一些语法高亮。man命令可以用来查看其他命令的文档,比如man git
就会展示git命令的介绍。使用这个插件之后可以让这个文档可读性稍微好一点点
syntax-highlighting & zsh-autosuggestions
插件repo
https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md#oh-my-zsh
https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
这两个插件可以让你在终端输入命令时有语法高亮和自动补全。虽然放在了最后,但是这两个插件才是zsh真正的killer plugin :p
使用同样很简单,先通过如下命令安装:
cd ~/
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
然后和上面一样,在 .zshrc
加上插件名即可。
上面所有插件都打开的话,~/.zshrc
中应该这样写:
plugins=(z d colored-man-pages zsh-autosuggestions zsh-syntax-highlighting)
最后看一下效果
可是终端还是不如linux的好用?
尽管经过了这么多配置,我们的终端还是运行在windows自带的终端模拟器中,功能比较弱。对比Linux下的Guake等终端模拟器,缺少了诸如tab和全局唤起之类的功能。
所幸的是,Windows其实是有不错的方案的,你如果想进一步优化你的终端,可以试试 Cmder,他提供了tab和类似guake的全局快速唤出功能,能够配置的选项也很多,同时也可以解决默认终端打开了其他程序(比如man
nano
或 less
)后就会变成默认字体的问题。
如果你们有兴趣请留言告诉我,我会在这里继续更新关于Cmder的配置。
扩展阅读
https://medium.com/@jrcharney/bash-on-ubuntu-on-windows-the-almost-complete-set-up-1dd3cb89b794