windows Shell 窗口美化
一、工具准备和参考文档
1.工具准备
- WindowsTerminal:本次配置的终端工具,当然也可将本文作为参考
- WSL2:Windows Linux子系统
2.参考文档
- Microsoft官方教程 :教程:使用 Oh My Posh 为 PowerShell 或 WSL 设置自定义提示符
- oh-my-posh官方教程:oh-my-posh
二、WindowsTerminal的基础设置(必做步骤)
1.字体设置
首先去 Github 下载 nerd-fonts 字体。字体设置的目的是为了保证在安装了 oh-my-posh 后不产生特殊字符显示的问题。
下载releases的FiraCode.zip:FiraCode3.3.0.zip 其他版本可自行下载。下载完成后解压、安装字体。
在WindowsTerminal 中设置字体:

2.设置WindowsTerminal背景美化(可选)

三、PowerShell命令行美化
提示:请提前以管理员身份运行 PowerShell
1. 安装 Powershell 7
相比于 Windows 默认提供的 Powershell,Powershell 7 拥有以下几个优势:
- 支持跨平台使用,增强了其灵活性和适用范围。
- 提供了更优越的性能表现。
- 处于持续更新状态,保证了功能的不断完善和安全性的提升。
简而言之,Powershell 7 是 Powershell 的升级版。
官网地址:
Github 地址:
https://github.com/PowerShell/PowerShell
下载地址:
2.安装 Terminal(终端)
从 微软商店(Microsoft Store) 当中安装即可。
安装地址(懒得搜点这里的链接):Windows Terminal - Microsoft Apps

3. 安装 Oh my posh
如上,从微软商店安装。 安装地址(懒得搜点这里的链接):oh-my-posh - Microsoft Apps

4 安装字体
由于 Oh My Posh 的众多主题广泛应用了各式图标,但并非所有字体都对这类图标提供支持,导致显示可能出现问题。
官方推荐使用Meslo LGM NF字体以获得最佳体验,可通过点击上述链接下载并安装该字体。此外,如果想尝试更多种的 NF 字体,可以进下面链接查看更多种的。
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
我个人,比较喜欢使用 JetBrainsMono Nerd Font,因为日常写 Python 需要使用 PyCharm,所以这个字体看习惯了,也不想使用其他字体了~

5. 配置
1. 创建 Powershell 7 的配置文件
输入如下命令,下面的命令会先检查配置文件存不存在,如果不存在才创建:
if (-not (Test-Path $PROFILE)) { New-Item -Path $PROFILE -Type File -Force}接下来,打开配置文件(以下示例展示的是使用记事本进行操作)。
notepad $PROFILE2. 输入 Oh my posh 的配置
在打开的文件中输入如下命令:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/half-life.omp.json" | Invoke-Expression这意味着每次启动 PowerShell 时,都会自动执行上述命令。该命令中引用的 JSON 文件是 Oh My Posh 的主题配置文件。
Oh My Posh 内置了众多主题,大家可以根据个人偏好选择喜爱的一款。如果想浏览所有预设主题的样式,可通过下方链接进行查看:
完成以上步骤后,将获得一个初步美化过的 Terminal 界面:

6 常见错误
- 错误1 ,在编辑好5.2 后重新打开终端出现一下错误

image-20250908114904303
解决方法:
-
执行
set-executionpolicy remotesigned -
如果无异常字符出现,则设置成功。如果有以下提示,则按照步骤3执行
set-executionpolicy : windows powershell 已成功更新你的执行策略,但在更具体的作业域中定义的策略覆盖了该设置。由于发生覆盖,你的外壳程序将保留其当前的有效执行策略 bypass。请键入“get-executionpolicy -list”以查看你的执行策略设置。有关详细信息,请参阅“get-help set-executionpolicy”。 -
查看当前执行策略
首先,使用 get-executionpolicy -list 命令查看当前所有作用域的执行策略。
Terminal window get-executionpolicy -list输出示例:
Terminal window Scope ExecutionPolicy----- ---------------MachinePolicy UndefinedUserPolicy UndefinedProcess UndefinedCurrentUser RestrictedLocalMachine RemoteSigned设置特定作用域的执行策略
Terminal window set-executionpolicy remotesigned -scope currentuser验证设置是否成功
Terminal window get-executionpolicy -scope currentuser输出应为 RemoteSigned,表示设置成功。
Terminal window wangbin in C:\Users λ get-executionpolicy -listScope ExecutionPolicy----- ---------------MachinePolicy UndefinedUserPolicy UndefinedProcess UndefinedCurrentUser RemoteSignedLocalMachine RemoteSigned
扩展
1. 安装Git扩展
posh-git 是一款专为 Windows 系统的 PowerShell 设计的 Git 扩展模块。它的主要目标是在 PowerShell 中提供更为友好、直观的 Git 命令行界面,通过整合 Git 相关的信息到命令提示符中,并提供方便快捷的键绑定,使得日常 Git 操作更为高效、直观。
安装
Install-Module -Name posh-git -Scope CurrentUser安装完成后,重启 PowerShell 并输入以下命令启用 posh-git:Import-Module posh-git
不生效的话可以在前面的配置文件 Microsoft.PowerShell_profile.ps1中追加以下内容
Import-Module posh-git # 引入 posh-git2.历史命令联想
oh-my-zsh 有一个很便利的功能就是输入部分命令后、按 ↑ 或 ↓ 就可以联想历史的完整命令,其实在 oh-my-posh 中也能实现。
首先在 PowerShell 执行以下命令安装插件:
Install-Module -Name PowerShellGet -ForceInstall-Module PSReadLine -AllowPrerelease -Force然后修改前面的配置文件 Microsoft.PowerShell_profile.ps1,在末尾追加以下内容:
Import-Module PSReadLine # 历史命令联想
# 设置预测文本来源为历史记录Set-PSReadLineOption -PredictionSource History# 设置 Tab 为菜单补全和 IntellisenseSet-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete# 每次回溯输入历史,光标定位于输入内容末尾Set-PSReadLineOption -HistorySearchCursorMovesToEnd# 设置向上键为后向搜索历史记录Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward# 设置向下键为前向搜索历史纪录Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward3. 卸载
Uninstall-Module oh-my-posh -AllVersionsCMD终端使用oh-my-posh
首先,安装clink工具,双击exe安装包即可安装
PS: 请记住 clink 的安装目录,下一步会用到~
然后,进入 clink 安装目录,创建 oh-my-posh.lua 文件,添加如下内容:
load(io.popen('oh-my-posh init cmd'):read("*a"))()或者用你自己设置的主题不用默认的
# "$env:POSH_THEMES_PATH/half-life.omp.json"load(io.popen('oh-my-posh init cmd --config C:\\Users\\用户名替换\\AppData\\Local\\Programs\\oh-my-posh\\themes\\half-life.omp.json'):read("*a"))()WSL命令行美化
本次以 wsl-ubuntu22.04 版本进行演示
1.安装 homebrew 包管理器
如果不想使用 homebrew ,可以使用oh-my-posh官网提供的 手动安装方式 ,这里我就演示 homebrew 的安装
下载并安装
# 安装 Homebrew 所需环境sudo apt-get install build-essential procps curl file git# Homebrew/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 重启WSL,输入 brew 查看命令是否能正常运行brew2.安装 on my posh
安装
brew install jandedobbeleer/oh-my-posh/oh-my-posh安装完成后可以执行 oh-my-posh get shell 查看当前终端类型,如果出现 Segmentation fault 提示,表示安装 on my posh 出现问题,请检查步骤二,重启WSL或者尝试手动安装。
3.选择主题
注意哈这里你得灵活一点,找到 oh-my-posh 的安装目录,不要照抄
查看 on-my-posh 的安装目录
# 通过该命令可以跳转到 oh-my-posh 安装目录cd $(brew --prefix oh-my-posh)# 输入 pwd 查看当前目录的路径pwd# 输入 ll 查看当前目录下的内容ll# 应该可以看到 themes 目录拷贝 themes 文件夹
# 先将 主题文件夹 拷贝至 家目录 /home/{username}# 注意哈,拷贝的目标文件夹后面会用到的,这里我放在家目录的themes文件夹下cp -r /home/linuxbrew/.linuxbrew/opt/oh-my-posh/themes ~/themes添加主题,这里可以先看下第五步的说明,将如下代码添加到 ~/.bashrc ~/.profile ~/.bash_profile 三个文件的其中之一的结尾,哪个有效果就是哪个,一个个试
# 注意 ~/ 后面要写你拷贝后 {themes} 的目录,我这里就是~/themes,jandedobbeleer可以换成你喜欢的主题名称例如 wholespaceeval "$(oh-my-posh init bash --config ~/themes/wholespace.omp.json)"使用体验
- 优点
- oh-my-posh 总体还不错,能够方便的展示 git 相关的信息
- 缺点
- 性能拉跨,每次终端可能需要0.5s到2s之间的延迟卡顿,相比于 linux 上的 shell 要慢不少
有就行了,要啥自行车~
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
小王的博客














