先预览下美化前后的对比:
更新 PowerShell
打开 Shell 终端,通过以下指令查看版本:
$PSVersionTable.PSVersion
Win10 系统默认安装的应该还是5.1版:
Major Minor Build Revision
----- ----- ----- --------
5 1 19041 1320
如果如下显示,则不用另外升级版本:
Major Minor Patch PreReleaseLabel
----- ----- ----- ---------------
7 2 1
之所以要升级到新版,是因为接下来的很多配置信息会不兼容旧版。升级可以前往 GitHub 页面下载安装包:
https://github.com/PowerShell/PowerShell
截至到发文,最新的正式版的版本号为v7.2.1
,这里选择PowerShell-7.2.1-win-x64.msi
的64位安装包的文件形式进行下载安装。安装后默认是跟5.1老版本共存的,所以日常打开使用的时候注意不要选错执行文件。
安装 Windows Terminal
既然主题叫美化,那么仅用默认的 PowerShell 程序肯定无法满足需求,因此还需要安装终端 Windows Terminal 作为日常启动程序。可以通过软件商店进行安装,下载地址:
Windows Terminal 是一个面向命令行工具和 shell(如命令提示符、PowerShell 和适用于 Linux 的 Windows 子系统 (WSL))用户的新式终端应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。
以上都完成后,准备工作结束,开始逐步美化。
修改 Windows Terminal 配色
打开安装好的Windows Terminal.exe
程序,通过快捷键Ctrl
+,
调出设置面板,根据喜好选择顺眼的默认配色方案:
虽然更新升级了 PowerShell,但是终端默认启用的还是旧版程序,所以需要手动修改默认启动新版 PowerShell:
根据喜好进一步修改外观:
如果希望终端能够根据文件格式不同,添加对应格式的图形前缀,可以执行以下命令安装Terminal-Icons
:
# 安装 Terminal-Icons
Install-Module -Name Terminal-Icons -Repository PSGallery
# 用记事本编辑终端配置文件
notepad $PROFILE
# 在后缀为 .ps1 的配置里粘贴下面的信息
Import-Module -Name Terminal-Icons
配置文件修改保存后,还需要安装Nerd Font
系列字体。字体下载地址:
https://www.nerdfonts.com/font-downloads
这个网站列出的字体都带有图形字符,根据喜好选择下载即可,下载后的字体压缩包解压缩后复制粘贴到C:\Windows\Fonts\
字体文件夹里。
然后重新打开终端设置面板,在对应的配置方案里选择外观,然后将字体设置成刚才安装的带图形字符的字体,比如我选择的是SourceCodePro NF
字体:
修改并保存配置后,在终端输入wt
指令重启新窗口,然后使用Get-ChildItem -Path . -Force
指令查看是否生效:
Terminal-Icons 官方页面:https://github.com/devblackops/Terminal-Icons
美化命令提示符
输入指令编辑配置文件:
notepad $PROFILE
将下方的代码复制粘贴到配置文件的末尾:
function prompt {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = [Security.Principal.WindowsPrincipal] $identity
$adminRole = [Security.Principal.WindowsBuiltInRole]::Administrator
$(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
elseif($principal.IsInRole($adminRole)) { "🔓" }
else { '' }
) + "📂 " + $(Get-Location) +
$(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
}
保存退出后重启 PowerShell 试试效果:
以上规则是让命令提示符在普通、管理员、嵌套模式下的显示格式各不相同。
更多关于Promp
函数的用法可以参考:
https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_prompts
其它方案
终端美化方案还有很多方案,感兴趣的可以自行延申阅读:
posh-git
posh-git
是一个 PowerShell 模块,它通过提供可以在 PowerShell 提示符中显示的 Git 状态摘要信息来集成 Git 和 PowerShell。
https://github.com/dahlbyk/posh-git
Oh My Posh
使用Oh My Posh
为 PowerShell 或 WSL 设置自定义提示符,提供完全自定义的命令提示符体验的主题功能,提供 Git 状态颜色编码和提示符:
https://docs.microsoft.com/zh-cn/windows/terminal/tutorials/custom-prompt-setup
Tabby
Tabby
(前身是 Terminus) 是一个可高度配置的终端模拟器和 SSH 或串口客户端,支持 Windows,macOS 和 Linux:https://tabby.sh
- 集成 SSH,Telnet 客户端和连接管理器
- 集成串行终端
- 定制主题和配色方案
- 支持 PowerShell(和 PS Core)、WSL、Git-Bash、Cygwin、MSYS2、Cmder 和 CMD
- 在 SSH 会话中通过 Zmodem 进行直接文件传输
- 完整的 Unicode 支持,包括双角字符
- 不会因快速的输出而卡住
- Windows 上舒适的 shell 体验,包括 tab 自动补全(通过 Clink)
- 为 SSH secrets 和设置集成了加密容器
以上。