前言

经历了数天的磨难,终于把 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.

上面那句话来自 Oh My Zsh README,意思是“装逼是第一生产力”。(大雾

我使用 Oh My Zsh 倒不是为把终端搞得花里胡哨去装逼,作为一个实用主义者,我非常喜欢自动建议、补全和代码高亮功能,这极大的提高了终端的输入效率。

安装 zsh

apt update && apt install -y zsh

安装 Oh My Zsh

使用 curl 下载安装

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

使用 wget 下载安装

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

Oh My Zsh 安装完成后会提示你设置 zsh 为默认 sehll 。如果没有提示,输入下面的命令进行设置:

chsh -s $(which zsh)

修改 Oh My Zsh 主题

Oh My Zsh 有很多内置主题,只需要修改配置文件即可启用。也可以选择安装外置主题,比如 Powerlevel10k

我使用的主题是 ys,简单实用,不花里胡哨。使用sed命令一键修改:

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

修改后输入下面的命令刷新配置就可以看到效果:

source ~/.zshrc

安装 Oh My Zsh 插件

安装 zsh-syntax-highlighting(代码高亮)

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

安装 zsh-autosuggestions(自动建议)

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

安装 zsh-completions(自动补全)

git clone https://github.com/zsh-users/zsh-completions $ZSH_CUSTOM/plugins/zsh-completions

zsh-completions 插件还需把autoload -U compinit && compinit添加到.zshrc。输入命令可一键添加:

[ -z "`grep "autoload -U compinit && compinit" ~/.zshrc`" ] && echo "autoload -U compinit && compinit" >> ~/.zshrc

把需要启用的插件写入到配置文件中,使用sed命令一键操作:

sed -i '/^plugins=/c\plugins=(git sudo z zsh-syntax-highlighting zsh-autosuggestions zsh-completions)' ~/.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

尾巴

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

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