告别 XShell 打造强大的Windows 终端

不同于mac OS及Linux的终端,window的cmd想来很难用,为了连接服务器,很多人首先都会用xshell,但是第一界面就很难看,而且试用期过了后很麻烦,这里我找到一款很不错的工具。

Console、Terminal 和 Shell 的区别

由于我们接下来要分别从「终端」和「命令行解释器」的角度去改造 Windows 终端环境,所以在动手魔改 Windows 终端之前,先听我絮叨一些专有名词:控制台(Console)、终端(Terminal)命令行解释器(Shell)

对于现在来讲:

我们打开 Windows 的那个「小黑框」(Command Prompt),实际上就是打开了一个终端(Terminal)

在终端里面「输入命令,得到结果」的交互程序,就是命令行解释器(Shell)也就是CMD

也正因如此,Windows 最新的 Shell 叫 PowerShell。(控制台 Console 则是相对古老的概念,是大型机物理意义上面的独立终端,我们在这里先不探讨这个话题。)使用 macOS 和 Linux 的同学如果听说过bash和zsh的话,它们同样也是 Shell。

打个比方,Terminal 就像是一个人的衣服,可以有各种颜色、形状甚至功能;那么 Shell 则是这个人,你和他沟通来获得信息,并且他可以在与你沟通的过程中事先告诉你许多信息、提醒,甚至自动帮你补充你想说的话。


Terminal 和 Shell 的区别和联系

就像我前面提到的:PowerShell 是 Windows 新一代 Shell。而大家可能更为了解的「小黑框 Command Prompt」则是 Windows 向前兼容的古老作品,bug 多不说,还有诸多不方便。所以我们不用犹豫,直接使用 PowerShell 吧!

接下来,我们来先改造 Windows PowerShell 的外在「默认终端」。

默认的 PowerShell 终端

Windows 为我们提供了一个默认的 PowerShell 终端,可以在 Windows 开始菜单上右键,点击「Windows PowerShell」打开。虽然默认终端有很多限制,但是其技术相对底层,响应就高效迅速,碾压其他所有第三方终端模拟器。我们从默认终端开始魔改。🍌

改进 PowerShell 的字体

不得不承认的是,在中文环境下,默认 PowerShell 的「新宋体」确实很(zhen)不(ta)耐(ma)看(chou)。然而由于默认 PowerShell 终端是一个非常底层的应用,其界面甚至没有利用 WinForm、WPF 等通用 UI 渲染框架来实现,而是直接调用底层 Windows API 来实现,因此其字体要求非常严格。(这也是我们不能随随便便下载一个我们喜欢的等宽字体给 PowerShell 默认终端使用的缘故。)

目前据我所知,唯一支持这一严格要求的字体(中文环境下)只有「Sarasa Gothic / 更纱黑体 / 更紗黑體 / 更紗ゴシック」(后面简称更纱黑体),可以从更纱黑体的 GitHub 页面下载

更纱黑体的 PowerShell

下载解压安装更纱黑体之后,我们重新启动一个 PowerShell 终端,就可以在菜单栏右键,选择「属性-字体」,并在字体中选择更纱黑体。适合终端使用的等宽字体是「等距更纱黑体 T SC」或「Sarasa Mono T SC」。

配置默认终端的字体

这样一来,我们就不必面对新宋体发愁了。

更换 PowerShell 的配色

微软官方提供了一个更换 PowerShell 配色的小工具:ColorTool.exe,我们可以利用它来更换 PowerShell 的主题颜色。ColorTool 支持 iTerm 主题(以.itermcolors结尾的主题文件)。

我们可以从ColorTool 的 GitHub 页面下载这个小工具。当然,如果你使用Scoop,也可以这样安装:

scoop install colortool

值得注意的是,如果你是直接从 GitHub 上面下载了colortool.zip并解压,colortool.exe的路径就并没有自动加入环境变量,所以你没有办法全局调用这个工具。因此我更加推荐利用 Scoop 这个优质的包管理来安装 ColorTool。

推荐阅读:「一行代码」搞定软件安装卸载,用 Scoop 管理你的 Windows 软件

ColorTool 使用非常简单。工具自带了几种主题,我们可以利用下面这个命令进行查看:

# 注:-s 代表 schemes

colortool -s

几个自带配色主题

其中前面列出的几个.ini和.itermcolors就是主题配置文件,我们可以直接通过下面这个命令设置主题:

# 临时查看

colortool <主题名称>

# 定义默认值

colortool -d <主题名称>

比如我们希望将主题配色更换为OneHalfDark.itermcolors,只需要输入下面这个命令就可以更换并预览更新:

colortool OneHalfDark

更换主题

由于 ColorTool 直接支持 iTerm 主题配置文件,因此我们可以在iterm2colorschemes这个网站找到我们想要的主题背景进行配置,方法和上面介绍的一样:在 PowerShell 中定位至你希望更换的主题文件,使用命令colortool <主题名称>.itermcolors进行配置即可。同时,如果你对上面的主题都不满意,你也可以直接在这个网站: terminal.sexy自行配置自己想要的主题,并通过同样的方式进行应用。

第三方终端

默认终端虽然响应迅速,但是其限制诸多,如果你对上面介绍的默认终端有所不满,也可以试一试下面这三个配置更方便,颜值更高的第三方终端模拟器。

但是习惯了Mac的终端操作ITerm结合oh-my-zsh神器,很难接受win10的这个环境,偶然间发现了一个很好用的工具,也就是本文主要要介绍的Fluent Terminal,Xshell由于版本更新,试用期等问题在使用的时候导致出现一些很尴尬的问题。

Fluent Terminal

Fluent Terminal 是现代的、也是我最推荐的终端。它是专属于 Windows 平台,利用 UWP 技术打造的颜值超高的终端模拟器。

Fluent Terminal

Fluent Terminal 在 GitHub 上面开源,项目地址在:felixse/FluentTerminal。由于一些原因,作者并没有成功地将软件直接提交给微软商店上架,因此我们需要从其 GitHub Release 页面下载安装它。通常情况下,如果你的 Windows 版本较新,可以直接使用No Dependencies的那个版本,不过如果接下来你安装过程出现问题,那么就使用第一个安装包。

下载 Fluent Terminal

解压之后,我们得到如下的文件目录:

安装 Fluent Terminal

右键点击Install.ps1,选择使用 PowerShell 运行,之后按照提示操作即可安装成功。

Fluent Terminal 设置字体和主题颜色则简单得多:

设置界面里,我们可以方便地选择合适的字体。

配置 Fluent Terminal 的字体

同时,我们也可以在 Profiles 里面将 PowerShell 设置为默认的 Shell。

配置默认的 Shell 为 PowerShell

值得注意的是,Fluent Terminal 也支持 iTerm 主题配置文件,因此我们刚刚下载的主题同样可以在这里使用。

导入并使用相应的主题

Fluent Terminal 是利用原生 Windows 10 最新的 UWP 技术打造而成,其响应速度仅稍逊于自带的默认 PowerShell 终端。值得推荐。👍

安装全部完成后,同样的ssh连接远程服务器即可

注意有的同学第一次使用可能不熟悉,不同于xshell命令ssh ip然后提示你输入username passwd

这里需要ssh username@远程IP

然后提示输入passwd,输入即可,这里记得切换为英文输入法,否则会提示密码错误


Hyper

接下来介绍的 Hyper 以及下面的 Terminus,都是基于 Electron 的跨平台应用,配置方便、插件丰富、界面美丽。当然,避免不了的是 Electron 资源消耗大,打开和响应都没有前面介绍的快,但是它们的拓展性都非常强大,可以试一试。

Hyper 也在 GitHub 上面开源,项目地址在:zeit/hyper,我们可以在Hyper 的 GitHub Release 页面下载安装,也可以利用scoop install hyper来安装。

Hyper

Hyper 的配置相对复杂,需要直接修改其设置文件.hyper.js。这里我仅仅介绍如何配置 Hyper 的默认 Shell 和字体,以及如何安装主题、插件的内容。

Hyper 配置的一切都发生在配置文件中,你可以通过快捷键Ctrl + ,或者直接定位至C:\Users\<你的用户名>\.hyper.js来打开配置文件。可以看到已经有很多配置项留给我们修改,其中:

修改字体:

// 以更纱黑体为例子

fontFamily: '"Sarasa Mono T SC", monospace'

修改默认 Shell 为 PowerShell:

shell: 'C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe',

shellArgs: [],

env: {}

安装主题或其他插件:

// 比如安装这个叫做 hyperterm-cobalt2-theme 的主题

plugins: ["hyperterm-cobalt2-theme"]

很简单,之后我们保存配置文件,Hyper 会自动重新加载,并下载相应的主题或插件并实时更新,只需要等待片刻即可看到我们的配置生效。Hyper 的社区很完善,有大量精美的主题和插件,我们可以在Hyper 插件寻找有趣的插件,在Hyper 主题挑选配色方案,同时这个bnb/awesome-hyper整合仓库也可以参考很多。

Terminus

Terminus 同样也在 GitHub 上面开源,项目地址在:Eugeny/terminus。其实我更推荐 Terminus,因为它原生支持了 Windows Fluent 背景,同时它的设置是 GUI 方式的,更用户友好。

Terminus

安装 Terminus 很方便,我们一样可以从Terminus 的 GitHub Release 页面下载安装它,也可以利用scoop install terminus来安装。

Terminus 也是为数不多的几个有 Fluent Design 背景的 Electron 应用,我们可以在下面这里开启 Fluent 背景渲染,并把 Background type 改为 Fluent:

使用 Fluent 设计的背景

配置 Terminus 的字体、配色和默认 Shell 都很简单:

在这里我们可以修改字体(Font)和配色主题(Color Scheme):

配置字体和主题

在这里我们可以选择使用 PowerShell 作为默认的 Shell:

设置默认的 Shell

Terminus 的可玩性也很足,同样有很多插件可以安装,由于设置界面很清晰,我就不在这里一一列举了。

推荐阅读更多精彩内容