40

告别 Windows 终端的难看难用,从改造 PowerShell 的外观开始

 5 years ago
source link: http://sspai.com/post/52868?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

终端,是用户与操作系统进行交互的最原始的输入输出环境,也是执行一些高级系统操作的必要工具。而 Windows 的终端「小黑框」,一直给大家一种「难看难用」的印象。接下来,我将介绍一些小方法,来对 Windows 的终端环境进行改造,让其使用体验比肩 macOS 和 Linux 的终端。

Console、Terminal 和 Shell 的区别

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

推荐阅读: What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'?

对于现在来讲:

  • 我们打开 Windows 的那个「小黑框」(Command Prompt),实际上就是打开了一个 终端(Terminal)
  • 在终端里面「输入命令,得到结果」的交互程序,就是 命令行解释器(Shell)

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

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

rA3Abej.gif Terminal 和 Shell 的区别和联系

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

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

默认的 PowerShell 终端

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

改进 PowerShell 的字体

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

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

IJ7zMnz.png!web 更纱黑体的 PowerShell

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

AJJvMjV.png!web 配置默认终端的字体

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

更换 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
qQbYFnj.png!web 几个自带配色主题

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

# 临时查看
colortool <主题名称>
# 定义默认值
colortool -d <主题名称>

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

colortool OneHalfDark
vaEnaui.gif 更换主题

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

第三方终端

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

Fluent Terminal

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

Q7Bb2my.png!web Fluent Terminal

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

ie6nArF.png!web 下载 Fluent Terminal

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

EfqiMfN.png!web 安装 Fluent Terminal

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

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

  • 设置界面里,我们可以方便地选择合适的字体。
Azaeum3.png!web 配置 Fluent Terminal 的字体
  • 同时,我们也可以在 Profiles 里面将 PowerShell 设置为默认的 Shell。
aUNvuyv.png!web 配置默认的 Shell 为 PowerShell
  • 值得注意的是,Fluent Terminal 也支持 iTerm 主题配置文件,因此我们刚刚下载的主题同样可以在这里使用。
zIZbYzf.png!web 导入并使用相应的主题

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

Hyper

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

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

JFjEb2n.png!web 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 方式的,更用户友好。

rq2MBvj.png!web Terminus

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

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

NBBn6ri.png!web 使用 Fluent 设计的背景

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

  • 在这里我们可以修改字体(Font)和配色主题(Color Scheme):
vAbqMzi.png!web 配置字体和主题
  • 在这里我们可以选择使用 PowerShell 作为默认的 Shell:
yI7rUrA.png!web 设置默认的 Shell

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

:computer: 这篇文章到这里也就大概结束了,我们:

  • 不仅介绍了如何修改默认终端,让我们不需要每天面对新宋体和蓝色背景发愁
  • 还推荐了三个更现代的终端,供大家选择

但是 Windows 终端美化之路还没有到尽头,接下来我还会继续介绍如何让 Power Shell    Shell   更炫酷,敬请期待。感谢阅读。

> 下载少数派客户端、关注少数派公众号 ,让你的工作更有效率 ⏱

> 特惠、好用的硬件产品,尽在 少数派sspai官方店铺


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK