前言

经历了数天的磨难,终于成功编译了 OpenWrt ,为了表达成功的喜悦放了张图,没想到引起了小伙伴们的骚动。于是我决定写一篇关于我现在在 Windows 10 下使用的终端方案的配置教程。

WSL

适用于 Linux 的 Windows 子系统(英语:Windows Subsystem for Linux,简称WSL)是一个为在 Windows 10 和 Windows Server 2019 上能够原生运行 Linux 二进制可执行文件(ELF格式)的兼容层。(源自维基百科

强行翻译:Windows 10 是最好的 Linux 发行版

安装 WSL

如果你没有使用过 WSL ,那么可以按照微软官方教程来操作。

以管理员身份运行 PowerShell ( WIN+X , A ),输入下面的命令,并重启。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

然后去应用商店下载自己喜欢的 Linux 发行版。

下载好后打开,会提示输入用户名和密码。到这里 WSL 就算安装完成了。

Terminus

Terminus 是一个高度可配置的终端模拟器,适用于 Windows、macOS 和 Linux。官方称它是 Windows 标准终端(conhost),PowerShell ISE,PuTTY 或 iTerm 的替代品。

官方宣传图长这样,于是我被吸引了。但其实我的第一反应是又拿 Mac 的图片来骗我,因为之前见过太多软件在 Windows 和 Mac 上的外观差距了。

下载并安装完长这样,跟官方图比有种淘宝卖家秀和买家秀的感觉。

点击右上角的齿轮打开设置,首先看到的是主题外观设置的选项。打开 Acrylic background 选项可以开启透明模糊效果。然后会出现Background type选项,Fluent效果更好,有官方图的感觉了,但拖动窗口时不跟手。“Fluent”翻译成中文是“流畅”,而“Blur”是“模糊”,然而效果恰恰相反,这就有点讽刺了。(注:此处的“Fluent”应该是指的微软的 Fluent Design,感谢评论区大佬 @XYenon 指正)

接着打开Shell设置,在Profile选择WSL/Ubantu,这样默认新建的窗口就是 WSL 了。

Oh My Zsh

Oh My Zsh will not make you a 10x developer...but you may feel like one.

安装 zsh

apt-get update
apt-get install zsh -y

安装完成后,输入下面的命令设置当前用户使用 zsh 并重启 WSL(其实操作是关闭再打开,愚蠢的我在第一次用 WSL 时输入过reboot

chsh -s /bin/zsh

重启后会出现初始化配置的提示,如果没有什么特殊需求,按 0 退出即可。

如果没有出现可以输入这行命令:zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f

安装 Oh My Zsh

sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装好后重启 WSL 使用的就是 oh my zsh 了

修改 Oh My Zsh 主题

我自己使用的主题是 ys,其他主题的介绍见 oh-my-zsh wiki

使用sed命令一键修改

sed -i '/^ZSH_THEME=/c\ZSH_THEME="ys"' ~/.zshrc

或者使用nano打开配置文件进行编辑

nano ~/.zshrc

修改 ZSH_THEME

ZSH_THEME="ys"

最后应用配置

source ~/.zshrc

安装 Oh My Zsh 插件

推荐两个插件 zsh-syntax-highlightingzsh-autosuggestions 。看名字就知道它们的作用,一个是语法高亮,一个是自动建议。

首先下载这两个插件:

git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

然后修改配置文件,这里使用sed命令进行替换,方便快捷。

sed -i '/^plugins=/c\plugins=(git sudo zsh-syntax-highlighting zsh-autosuggestions)' ~/.zshrc

如果你有自己想添加的插件,写在括号内即可,插件名称用空格隔开。

最后应用配置

source ~/.zshrc

The Fuck

当你想在终端里启动一个程序,并潇洒自信的输入了一个命令时,却发现指令貌似出错了,但找了半天又不知道错在哪里。

此时自然会血压飙升,一句“ What the fuck ?!”就挂在嘴边,快要喷口而出了!

有了 The Fuck ,你就不会需要 WTF 这句芬芳之语。

你只需要再在终端里输入一个fuck,这个软件就能帮你迅速的找出指令的错误在哪里了。

(文案源自差评,写得太好了,所以我也没必要自己水了。图片源自官方 README )

安装 The Fuck

我的 WSL 使用的是 Ubuntu ,按照官方教程输入以下命令进行安装

sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
sudo pip3 install thefuck

安装完后输入fuck会提示将eval $(thefuck --alias)添加到~/.zshrc中。此时你只需要再输入一次fuck,就会自动进行添加,这也算你第一次成功体验到 The Fuck 的功能了。

最后应用配置

source ~/.zshrc

其他

分屏显示终端使用的是 Tmux ,右边查看 CPU 、内存使用率和管理进程的是 htop。以后可能会水几篇文章来讲。

尾巴

以上就是这套“最强终端”方案的配置方法。其实做出来完全是无心插柳,因为觉得 Xshell 不好用,就想找替代品,于是在 GitHub 的 Terminal 话题下,找到了 Terminus 这款终端软件,最后经过瞎JB折腾,搞了这套方案。

Terminus 在 SSH 的功能体验上还比不上 Xshell ,而且因为软件还处于测试阶段,其实 bug 还挺很多的,就比如模糊透明效果在我的另一台设备上使用就出现了问题,偶尔还会卡死,没有滚动条等问题。由于是基于 Electron 打造的,内存占用很感人,打开就有200M+。再看看 Xshell 才10M+。虽然目前暂时还不能取代 Xhsell ,但这套方案替代了我在 Git Bash 和部分 Linux 虚拟机上的使用场景,而且截图时也能拿来装装X,算是没有白费力气。也希望开发者们加油,把 Terminus 做得更好。