使用hyper+zsh打造更好用的Windows 10 WSL终端

使用hyper+zsh打造更好用的Windows 10 WSL终端

前言

适用于 Windows 的 Linux 子系统(Windows Subsystem on Linux, WSL)是一个能够在Windows 10上原生运行Linux二进制可执行文件的兼容层,只需要通过简单的配置,就能够在微软应用商店上下载自己喜欢的Linux发行版。

经过两年的开发,WSL也十分完善,本文记录一些自己在WSL上的折腾,使用zsh+ohmyzsh+hyper以及一些插件来达到美观,实用的目的。

开启WSL

  1. 设置->更新和安全->开发者选项,选择开发者模式


  1. 控制面板->程序->程序和功能->启动或关闭Windows功能,勾选适用于Linux的Windows子系统


重启电脑后进入应用商店搜索Linux安装即可,我自己选择的是Ubuntu18.04LTS。

oh my zsh

1.安装zsh

 # 安装zsh
 sudo apt-get install zsh
 # 将zsh设置为默认shell
 chsh -s /bin/zsh

2.安装oh my zsh

 # 安装oh my zsh
 wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

3.主题选择

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


 # 打开配置文件
 vim ~/.zshrc

将ZSH-THEME改成ys

 ZSH_THEME="ys"
 # 更新配置
 source ~/.zshrc

4. 插件

这里推荐一款自动补齐插件,linux下有不少命令,虽然wsl也支持补全,但是使用上总有点难受,因此这个推荐还是很实用的。

下载插件

 wget http://mimosa-pudica.net/src/incr-0.2.zsh   

将此插件放到oh-my-zsh目录的插件库下

 cd ~/.oh-my-zsh/plugins/
 # 创建文件夹incr
 mkdir incr
 # 复制文件到此文件
 cp ~/incr-0.2.zsh ./incr
 #打开配置文件
 sudo vi ~/.zshrc

在~/.zshrc文件末尾加上

 source ~/.oh-my-zsh/plugins/incr/incr*.zsh

更新配置

 source ~/.zshrc   

hyper

Hyper Terminal 是一个基于JS/HTML/CSS的终端(Terminal)指南,类似于macOS自带的terminal,具有更高的自定义性。

1.下载安装

直接进入Hyper的官网下载Windows版本即可。Hyper官网

2.启动进入WSL

我们希望打开终端即可进入WSL,但是hyper默认是进入windows的cmd,因此需要对其进行一定的配置。

打开菜单->Edit->'Preferences',打开的是配置文件

 # 编辑shell和shellArgs
 shell: 'C:\\Windows\\System32\\wsl.exe',
 shellArgs: ['~'],

这样我们打开hyper即可直接进入WSL.

3.主题和插件

使用以管理员身份打开打开Hyper,选择菜单->Plugins->Install hyper CLI command in PATH

使用以管理员身份打开打开Powershell/cmd

 # 安装主题verminal
 hyper i verminal
 ​
 # 安装插件
 # hypercwd,让你打开新的Tab页时自动保持上一个Tab页的路径
 hyper i hypercwd
 # hyper-search,支持对命令行窗口里的内容全文检索
 hyper i hyper-search
 # hyper-opacity,解决windows下hyper原生不支持的窗口透明化
 hyper i hyper-opacity
 # hyper-always-on-top,提供windows下窗口置顶的功能
 hyper i hyper-always-on-top

安装完主题后可能会影响原有的字体等设置,因为主题本身也有一个主题配置文件,因此我们可以对主题包的配置文件进行修改。

说明以下,因为hyper本身会对插件进行版本控制以及更新,所以不建议在插件的配置文件上直接修改,因为修改会被覆盖掉,所以最好的还是在hyper的配置文件中修改。

安装完插件之后,打开hyper,菜单->Edit->Preferences,在config的最后加入以下内容,根据个人喜好设置透明度等

 module.exports = {
   config: {
     // for advanced config flags please refer to https://hyper.is/#cfg
     opacity: {
      focus: 0.7,
      blur: 0.7
    },
    verminal: {
      fontFamily: 'Consolas',
      fontSize: 16
    },
    alwaysOnTop: {
      debug: false,
      default: false // enabled on application start
    }
   },

其实正常来说直接在Hyper终端上运行hyper命令即可,但是我自己在尝试的时候出现了以下问题,无法正常使用

 # ghost @ LAPTOP-7J91U8JD in ~ [17:23:08]
 $ hyper i hyperpower    
 Warning! Due to WSL limitations, you can't use CLI commands here. Please use Hyper CLI on cmd, PowerShell or GitBash/CygWin. 
 Please see: https://github.com/Microsoft/WSL/issues/1494 
 ​
 ​
 Plugin verminal (1.4.5) loaded. 
 Plugin hypercwd (1.4.0) loaded. 
 Plugin hyper-pane (2.1.4) loaded.
 Plugin hyper-opacity (1.0.0) loaded.       
 Plugin hyper-always-on-top (1.0.4) loaded. 
 Disabling Chromium GPU blacklist 
 running in prod mode
 electron will open file://C:\Users\Ghost\AppData\Local\hyper\app-3.0.2\resources\app.asar\index.html 
 Your config use deprecated `cmd` in key combination. Please use `command` instead. 
 Hyper CLI already in PATH 
 Hyper CLI installed You may need to restart your computer to complete this installation process. 
 Your config use deprecated `cmd` in key combination. Please use `command` instead. 
 Checking for notification messages 
 No matching notification messages 

因此决定使用powershell来进行插件与主题的安装

随便聊聊

其实很早之前就开始折腾了,一开始是WSL,然后是美化,然后今天看到了hyper,我觉得学习到的东西不记录下来,很容易就遗忘了,今天在写这篇笔记的时候,很多内容都是重新翻阅了一遍,过程可能跟自己以前的操作有点不一样,所以如果出现一些问题也请见谅。希望自己能养成良好记笔记的习惯。

杂谈

到2019年05月为止,Microsoft商店已有Kali Linux、Arch Linux、Ubuntu、Debian、openSUSE等Linux发行版,在WSL上你可以体验到绝大多数Linux系统能做到的事情,不过由于WSL中没有真正的Linux内核,因此无法运行内核模块,包括设备驱动程序,同时使得WSL无法运行Docker等服务,至少非家庭版是无法运行的。

在过去的一年的时间里,我使用WSL完成了操作系统的部分作业(一些操作涉及到内核,所以无法进行操作),数据挖掘的学习、代码的编译都是在WSL上完成的,对我这种不想装双系统(离不开windows),又羡慕Linux的便利的人,WSL还是带给了我很多的便利,我也是非常喜欢这个特性。

在BUILD2019大会上,微软推出了Windows Subsystem for Linux 2(WSL2),为WSL带来了重大更新,并且支持Linux Docker容器。微软一下子成为了"Linux"最大的发行商,真是颇具戏剧性,微软近年来逐渐拥抱开源,收购github,希望未来的发展越来越好。

微软发布Windows Linux子系统 2:性能大提升


参考博客

  1. WSL + Ubuntu + ZSH + Hyper终端
  2. oh-my-zsh,让你的终端从未这么爽过
  3. Windows10下打造漂亮好用的WSL(Linux)终端
  4. win10终端(WSL)优化 : 高颜值 windows命令行工具 Hyper全面介绍


编辑于 2019-05-22 15:34