写在前面
Windows 下的终端环境一直让人吐槽,虽然现在的 powershell 已经很强大了,但是它的界面还是让人不敢恭维。前段时间一直在使用 Linux 作为工作环境,感叹 zsh 的强大与方便,最近就一直想着如何能在 Windows 下打造一个支持 Linux Bash 的美观高效的终端环境。下面是我这段时间踩坑后,对基于 WSL 和 Hyper 的 Windows 终端优化的一些总结。
Windows Subsystem for Linux
简介
Windows Subsystem for Linux(WSL)是一个可以直接执行 Linux 二进制可执行文件(ELF)的兼容层。和 Hyper-v虚拟化不同,WSL 是底层把 Linux 系统调用翻译成 Native Windows API 。例如安装 Ubuntu 子系统,就基本可以当作一个 Ubuntu 系统来用,例如使用 Linux Bash,apt-get 安装软件,编译和运行 Linux 程序,文件系统交互等。
开启Ubuntu子系统
开启开发者模式
打开 开始->设置->更新和安全->开发者选项,勾选开发人员模式
开启 windows 子系统功能
打开 控制面板->程序->启用或关闭 Windows 功能
重启电脑,等待更新。
在 Microsoft Store 中搜索 Ubuntu ,并安装(其他的 Linux 系统也可以)
注意:如果遇到 Microsoft Store 中出现网络错误连接的问题,并且你确定你的网络连接没有问题的话,那么很有可能是 VPN 的问题,关掉 VPN 再试一下就行。
安装完后,就可以直接打开 Ubuntu 了,默认是一个终端,如下:
注意:Ubuntu 默认把磁盘挂载到 /mnt 目录下,可以直接 cd /mnt/c 进入 C 盘,进而操作文件。
更改科大源
Ubuntu 默认的源服务器在国外,速度慢,需要打开下面文件
/etc/apt/sources.list
,在首行添加如下内容:1
2
3
4
5
6
7
8
9
10deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse保存后更新
1
2apt-get update
apt-get upgrade
Hyper
简介
Hyper Terminal 是一个基于 JS/HTML/CSS 的终端 (Terminal) 指南,类似于 macOS 自带的 terminal ,只不过具有更高的可塑性以及更美观的外观。
安装
访问官方网站,选择适合的版本下载。
设置自动以 WSL 启动
在左上角 edit->preferences 打开配置文件,找到对应行并更改成如下内容:
1 | updateChannel: 'canary', |
主题选择
Hyper 中有很多主题可以供我们选择,官网中已经提供了安装方法,我们在这里就不再介绍了。现在 Hyper 还比较小众,社区资源还不是很丰富,但现有的特性已经很让人激动了!
Zsh
Zsh 是一个功能强大的交互式 shell 脚本命令解释器。它不仅支持 bash ,还提供一些强大和高效的功能,例如更好的自动补全和纠错。
安装
1 | sudo apt-get install zsh |
检查当前的 shell 有哪些
1 | cat /etc/shells |
检查当前的 shell
1 | echo $SHELL |
设置默认 shell 为 zsh,在 ~/.bashrc 中加入
1 | if [ -t 1 ]; then |
然后执行
1 | source ~/.bashrc |
安装 oh-my-zsh
oh my zsh 用来管理 zsh 的配置
1 | # 安装 Oh My Zsh |
插件安装
-
快速访问文件或目录
安装:
1
sudo apt install fasd
用法:
1
2
3
4
5
6
7
8
9alias f='fasd -f' # 文件
alias d='fasd -d' # 目录
alias a='fasd -a' # 任意
alias s='fasd -si' # 显示并选择
alias sd='fasd -sid' # 选择目录
alias sf='fasd -sif' # 选择文件
alias z='fasd_cd -d' # 跳转至目录
alias zz='fasd_cd -d -i' # 选择并跳转至目录 -
命令行命令键入时的历史命令建议插件
按照官方文档提示,直接执行如下命令安装:
1
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-
命令行语法高亮插件
按照官方文档提示,直接执行如下命令安装:
1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
最后记得在~/.zshrc文件中配置插件:
1
2
3plugins=(
git fasd zsh-autosuggestions zsh-syntax-highlighting
)
主题修改
on-my-zsh 中提供了很多主题,大家可以在下面这个网站预览
oh_my_zsh的主题和设置一般都在主目录下
1 | # 进入主题目录 |
主题修改需要对 ~/.zshrc 文件进行相应的修改
1 | ZSH_THEME="你喜欢的主题" |
但是有可能你对这个主题的 title 不太满意,比如多余的主机名或者太长的路径名之类的,这个时候我们最好的做法是把我们想要修改的主题文件做一个复制,然后在这个文件里边修改,最后再将.zshrc 文件中的主题修改为我们复制的这个主题。
成果截图
下面就是我经过优化后的终端环境,不得不说,Hyper 再配上 zsh 的使用真的是丝滑般的用户体验!
参考文档
Windows10开启Ubuntu子系统简易步骤
WSL + Ubuntu + ZSH + Hyper终端
Ubuntu 下 Oh My Zsh 的最佳实践「安装及配置」
oh-my-zsh终端用户名设置
写在最后
通过这一番优化,基于 WSL 和 Hyper 的 Windows 终端已经很大程度上的能够满足我的需求了。这篇文章只是一个简单的总结,就拿 WSL 来说,这已经是 Windows 上一个很成熟的技术了,它能够发挥的作用还有很多。通过这个过程,感觉自己收获到了很多东西,意义还是蛮大的。
本篇文章纯属于个人的学习总结,如果文章中出现错误或不严谨的地方,希望大家能够指出,谢谢!