软件介绍

  1. PowerShell是一个功能强大的Shell,最初由微软开发,简洁且灵活。
  2. PowerShell目前已经被微软内置在Windows操作系统中,只要你的系统不是太老,基本上都可以通过 Win + R然后输入 powershell来启动。我们可以通过 $PSVersionTable.PSVersion命令来查询PowerShell版本,如下图所示,我的版本为5.1。
  3. 事实上,PoweShell还有另外一个开源版本,它是微软推出的跨平台版本,可以在Windows、Linux、macOS等操作系统上运行,这也是本篇文章要介绍的对象。相比起内置的PowerShell,它少了启动时的广告,如下图所示。同时,由于有开源社区的支持,使得该版本更新较快,可以及时体验很多新特性。

软件安装

PowerShell开源版的官方网站为:https://github.com/PowerShell/PowerShell

使用Scoop安装

PowerShell可以通过Scoop一键安装和管理,安装命令如下。如果不知道Scoop是什么的,请参考我之前的文章:Scoop | Windows下的软件包管理神器

scoop install powershell

使用WinGet安装

  1. WinGet是微软推出的一种包管理工具,内置于Windows中,无需额外安装。
  2. 执行以下命令,查询可以获取的PowerShell版本。一般会出现两个版本,一个稳定版和预览版。
    winget search Microsoft.PowerShell
    
  3. 执行以下命令安装PowerShell稳定版,--id参数指明了Powershell的版本,如果想安装预览版,则修改 --id的参数值即可。
    winget install --id Microsoft.PowerShell --source winget
    

启动PowerShell

  1. 启动PowerShell有两种常用方法:
    1. 重启终端,在命令行下输入 pwsh即可进入PowerShell
    2. 使用 Win + R,输入 pwsh,也可以直接进入PowerShell
  2. 推荐将PowerShell设置为默认启动项,设置方法如下图所示。打开设置,调整默认配置文件为PowerShell。这样只要点击终端选项卡右边的 +号,就会默认打开PowerShell了。

美化PowerShell

虽然PowerShell比起之前的微软版,简洁了不少,但我们可以在此基础上进行美化,打造属于我们的专属Shell。我们用来美化PowerShell的工具为Oh My Posh,它的官方网站为:https://ohmyposh.dev/

安装Oh My Posh

  1. 安装方式有两种,任选其一即可
    1. 使用Scoop安装
      scoop install oh-my-posh
      
    2. 使用官网安装
      Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://ohmyposh.dev/install.ps1'))
      
  2. 安装完成后,重启终端,输入oh-my-posh,如下图所示,则说明安装成功。

安装Nerd字体

  1. 由于Oh My Posh基于Nerd字体(一种Shell常用的字体),因此需要进行安装。首先你要在Nerd Fonts中进行挑选,选择一个你觉得好看的字体。比如我这里选中了 BitstromWera,那我就点击Download来下载安装包,如下图所示。
  2. 下载好安装包后,有两个方法安装:
    1. 将压缩包的名称拷贝下来(不要有后缀),使用Scoop搜索并安装该字体(注意是搜索该字体压缩包的名称,而不是网站上标注的名称),如下图所示,直接安装带有NF后缀的字体即可。注意,该方法的前提是你已经安装了 nerd-fonts的bucket。如果你是按照我之前的Scoop安装教程安装的Scoop,则应该已经安装了该bucket,直接搜索字体安装即可。
    2. 你也可以直接选择将压缩包解压缩,全选所有字体,右键选择安装,即可一键安装对应字体。

配置Oh My Posh启动

  1. 打开终端配置文件,如下图所示。
  2. 找到 profiles下面的 defaults,然后把 "font":{"face": "BitstromWera Nerd Font"}粘贴到 defaults后的大括号内。其中,face后面的字体名称需要换成你刚刚选择并安装的字体名称,并且是Nerd Fonts中标注的名称,而不是字体压缩包的名称,如下图所示。
  3. 粘贴完成后,保存配置文件,然后打开Powershell,输入以下代码,更改安全策略
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
    
  4. 输入以下命令打开配置文件。
    notepad $PROFILE
    
  5. 如果上述命令执行后,结果为文件不存在,并且打开了一个空白的记事本,则先关闭记事本,执行以下命令创建配置文件,再执行以上命令。
    New-Item -Path $PROFILE -Type File -Force
    
  6. 在打开的配置文件中添加以下代码并保存关闭。
    oh-my-posh init pwsh | Invoke-Expression
    
  7. 回到PowerShell,执行以下命令,重新加载配置,就可以见到默认的Oh My Posh。之后你只要打开PowerShell,就会默认启动Oh My Posh。
    . $PROFILE
    

安装主题

  1. Oh My Posh提供了非常多的主题给用户选择,我们可以通过Themes | Oh My posh在线查看所有主题。
  2. 选择一个你喜欢的主题,比如这里我选择kushal主题,那们就点击其主题名称,进入详情页。
  3. 详情页通常是GitHub上的一个json文件,我们拷贝其文件名称,如下图所示。
  4. 在PowerShell中打开配置文件
    notepad $PROFILE
    
  5. 在配置文件中添加 --config参数,并加入你所选择的主题文件名,如下所示。注意,这里文件名是完整的,包括扩展名。比如我选择了kushal主题,则相应的主题文件名为 kushal.omp.json
    oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/kushal.omp.json" | Invoke-Expression
    
  6. 将配置文件保存并关闭,在PowerShell中输入以下命令,重新加载配置,即可看到你刚刚选择的主题已经生效了
    . $PROFILE
    

参考资料

Windows Terminal/终端 Powershell 美化——oh my posh教程(保姆级)