在Windows中美化你的PowerShell

在Windows 8中,巨硬已觉得自带的CMD无法满足调试需要,便默认将CMD变更成了PowerShell(以下简称PS)。

为什么要选用PowerShell ?

Powershell是cmd的超集,基于.NET Framework开发,包含了一百余个基本的核心cmdlet。甚至,您可以编写自己的cmdlet并上传到GitHub等开源社区。

简单来说,PS有以下优点:

  • 更强大的扩展性与安全性
  • 更高的适用性,可加载C/C++编写的dll
  • pipe传递的是.net object,没有数据不合法导致的各种问题
  • 籍于 .NET Framework 庞大的类库,有大量的可能性
  • 指令逻辑更加靠齐与Linux,可以适应Linux用户的大量习惯

看到这里,如果你使用的依然是CMD,我想你会Switch to PowerShell的。不过,PowerShell有一点让人难以忍受的缺点:他真的太丑了!

动手美化你的PowerShell!

鉴于PowerShell的模块管理十分强大,我这边直接简述美化方式。我们需要用到的模块如下:

  • oh-my-posh
  • posh-git
  • NuGet

步骤①,确认策略组的执行权限

首先,我们需要确认权限,以便使模块顺利运行,这也是许多文档并未提到的问题。依据巨硬官方文档中的策略管理方式,我们需要这么执行指令:

Get-ExecutionPolicy -List

显示效果在Win 10下通常如下:

没有更改成功的权限

注意:以下操作必须要将Windows PowerShell在管理员模式运行!

此时,我们需要输入以下指令,将CurrentUserExecutionPolicy(执行权限)从原来的Undefined(未定义)更改成RemoteSigned ¹,需要输入指令:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

执行成功后通常会出现如下输出,按Y并回车即可

操作示例

我们可以通过以下指令确认更改效果

Get-ExecutionPolicy -Scope CurrentUser

如果显示为以下:

成功后的显示效果

更改就成功了。

步骤②,安装模块

由于上文提到的PowerShell有十分强的扩展性,我们可以使用自带的模块安装进行操作:

首先,安装oh-my-posh的依赖模块posh-git

Install-Module posh-git -Scope CurrentUser

在安装时如果以前没有安装NuGet,会提示安装NuGet以及“不受信任的储存库”,一路输入Y即可。

下面,直接安装oh-my-posh即可

Install-Module oh-my-posh -Scope CurrentUser

接下来,只需启动安装的模块:

Import-Module oh-my-posh

为了保证模块每次在PS启动时就被加载,我们需要把他加入用户参数中:

$profile

输出值为你的用户参数位置,你可以直接用Notepad++、VS code等Editor编辑他。如果找不到这个文件,就创建一个,在里面键入:

Import-Module oh-my-posh

在VS code中编辑此文件

之后,你就可以自由的使用你想要的主题了!并且在做完了以上的更改之后,我们无需使用管理员模式启动PowerShell了。

不过,默认的PowerShell更改字体十分麻烦,在部分主题使用上会出现乱码和错误,我们需要使用第三方PowerShell。笔者此处推介使用著名的Chocolatey

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))

随后,我们要安装ConEmu

choco install ConEmu

安装成功的字样

之后,您只要设置好ConEmu即可。

如果你愿意接下来陪我折腾,也可以直接在PS中更改字体,并且在使用原汁原味的PowerShell同时获得良好观感。如果不想,可直接跳过此段。

首先,用管理员模式打开PS,并执行以下命令²:

注:进行以下操作需要修改PS并且违反巨硬的相关规定,也就说明您不是所谓“小白”、“菜鸟”,拥有足够的运维经验以及紧急处理手段。如果您的PS出现任何问题笔者不负任何责任,请做好备份以便之后重装PowerShell。

choco feature enable -n allowGloba

Confirmation |choco install git

然后开始应用PowerLine字体

因为博客主题问题,相关代码详见https://github.com/microexs/PowerAdmin/blob/master/PCInit.md

然后,就可见到您的PS焕然一新!

本文就暂时到这里了。折腾这篇文章耗了MoeDev大约三个小时,遇到的问题包括但不限于:Git出问题,虚拟机崩溃,PS文件错误。希望您能支持MoeDev继续做这种创作!

注释:

1、此处操作来源于微软官方文档中的更改你的执行策略一篇,详见https://docs.microsoft.com/zh-cn/previous-versions/windows/powershell-scripting/hh847748(v=wps.640)#remotesigned

2、此处的配置文档来源于GitHub的microexs/PowerAdmin/blob/master/PCInit.md,感谢开源作者syns98提供的操作手册

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

1条评论