PowerShell 7 + Oh My Posh 终端美化指南

PowerShell 7 + Oh My Posh 终端美化指南
小米里的大麦PowerShell 7 + Oh My Posh 终端美化指南
1. 前言
Windows 自带的 PowerShell 5.1 功能有限,界面也比较朴素。通过安装 PowerShell 7 和 Oh My Posh,我们可以获得一个更强大、更美观的终端环境。
2. CMD、PowerShell 5.1、PowerShell 7 的区别
在开始安装之前,先了解 Windows 上三种命令行工具的区别:
1. 综合对比
| 项目 | CMD | PowerShell 5.1 | PowerShell 7 |
|---|---|---|---|
| 定位 | 旧时代遗留 | Windows 专属 | 跨平台增强版 |
| 可执行文件 | cmd.exe | powershell.exe | pwsh.exe |
| 基础框架 | DOS | .NET Framework 4.x | .NET 8+ (跨平台) |
| 是否内置 | Windows 自带 | Windows 自带 | 需手动安装 |
| 对象管道 | ❌ | ✅ | ✅ |
| 脚本语言 | 有限 | 完整 | 完整+ |
| 跨平台 | ❌ | ❌ | ✅ |
| 三元运算符 | ❌ | ❌ | ✅ |
| 并行处理 | ❌ | ❌ | ✅ |
| 性能 | 一般 | 一般 | 更好(快 30-50%) |
| Linux 命令兼容 | ❌ | ❌ | ❌(仅部分别名) |
| 推荐场景 | 简单命令、兼容旧脚本 | 系统管理、Windows 专用脚本 | 开发、跨平台脚本、性能要求高 |
2. 三者关系说明
PowerShell 7 不是 Windows PowerShell 5.1 的升级,而是独立安装的新版本。安装后,powershell.exe 仍然保留,不会覆盖现有环境。三者 完全共存,互不冲突:
- 用
pwsh启动 PowerShell 7 - 用
powershell启动旧版 5.1(向后兼容) - 用
cmd启动命令提示符
简单说:PowerShell 7 是 PowerShell 5.1 的 增强版 + 跨平台版,功能更强大,性能更好,可以完全替代 CMD 和 PowerShell 5.1 的所有功能。
3. PowerShell 7 与 Linux 命令的关系
PowerShell 7 的 “Linux 兼容” 只是别名映射:
1 | # 这些 Linux/Unix 命令在 PowerShell 7 中可以使用(通过别名) |
但很多 Linux 命令无法使用:
| Linux 命令 | PowerShell 7 等效命令 |
|---|---|
grep | Select-String |
find | Get-ChildItem |
awk | 对象管道 |
sed | -replace |
chmod | icacls |
ps | Get-Process |
top | Get-Process |
ifconfig | Get-NetIPAddress |
如果想用 Linux 命令操作 Windows,其实更推荐 WSL,当然二者结合更好!
3. 为什么选择 Scoop?
安装 PowerShell 7 常见的方式有 3 种,但我更推荐使用 Scoop:
| 方式 | 安装路径 | 权限要求 | 环境隔离 | 管理便利性 | 卸载残留 |
|---|---|---|---|---|---|
| Scoop | ~/scoop/apps/ 用户目录 | 无需管理员 | 完全独立,不写系统 PATH/注册表 | scoop update * 一键更新 | 无残留 |
| Winget | C:\Program Files\ | 需管理员 | 标准系统安装 | 一般 | 可能有 |
| 微软商店 | C:\Program Files\WindowsApps\ | 无需 | 沙盒化但路径深、难访问 | 被动更新,不可控 | 较少 |
1. Scoop 的介绍
Scoop 是 Windows 上的 命令行软件管家,类似于 Linux 的 apt 或 macOS 的 Homebrew。核心特点:
- 不弹窗广告:安装过程全自动,一行命令搞定。
- 不污染系统:软件默认装在独立目录(
C:\Users\用户名\scoop),不写注册表,卸载直接删文件夹。 - 自动配环境变量:装完工具(如
gcc、git、python)直接能在终端用,不需要手动配置 PATH。
核心优势:一切都是用户态 —— 不碰
Program Files、不写系统注册表、所有软件集中在一个目录,换机器或重装系统时把~/scoop拷走即可。
2. Scoop vs Winget
Windows 现在也有官方包管理器 Winget,两者对比如下:
| 项目 | Scoop | Winget |
|---|---|---|
| 开发者喜欢程度 | 高 | 高 |
| 软件隔离 | 更好 | 一般 |
| 环境变量管理 | 很方便 | 一般 |
| GUI 软件 | 支持 | 支持更多 |
| 微软官方 | 否 | 是 |
| 适合程序员 | 非常适合 | 适合 |
很多开发者会同时安装 Scoop 和 Winget,因为有些软件只有其中一个仓库有。
4. 安装步骤
1. 安装 Scoop
在 powershell 中执行:
1 | # 设置当前用户的脚本执行策略为 RemoteSigned,允许运行本地脚本和已签名的远程脚本;并从 Scoop 官网下载安装脚本并执行 |
安装路径在 C:\Users\你的用户名\scoop,全程不写注册表、不碰系统目录。Scoop 安装时会自动拉取以下依赖,不能删除:
| 应用 | 作用 |
|---|---|
| 7zip | 压缩/解压工具,Scoop 用它解压各种安装包 |
| dark | Scoop 内部依赖,用于处理文本文件编码转换 |
| innounp | Inno Setup 安装包解包工具,Scoop 用它解压某些 exe 安装包 |
| oh-my-posh | 终端主题引擎,美化提示符 |
| pwsh | PowerShell 7 本体 |
7zip、dark、innounp 是 Scoop 的运行时依赖,删除会导致
scoop install/scoop update全部失败!
2. 安装 PowerShell 7
1 | # pwsh 是 PowerShell 7 在 Scoop 中的包名 |
3. 安装 Oh My Posh
1 | # Oh My Posh 是一个终端主题引擎,用于美化提示符 |
4. 安装 Nerd Fonts 字体
Oh My Posh 需要使用 Nerd Fonts 字体才能正确显示图标,以管理员身份安装字体(重要!):
1 | # 以管理员身份运行 PowerShell,安装 Meslo 字体到系统级 |
⚠️ 必须以管理员身份安装字体! 如果以普通用户身份安装,字体只会安装到用户字体目录,在某些特定场景中会导致崩溃退出,如:终端标签栏点击
∨(下拉按钮)直接选择 PowerShell 7 就会导致崩溃闪退!官方说明:When running as root/administrator, the fonts will be installed system-wide. When running as a regular user, the fonts will be installed in the user’s font directory. By default, Oh My Posh installs the .ttf version of the font in case multiple versions are available.
配置 Windows Terminal 字体:
- 打开 Windows Terminal 设置(任意终端标签栏右侧
∨(下拉按钮)的设置) - 选择 PowerShell 配置文件(注意:这里的 PowerShell 7 就叫 PowerShell ,而 Windows PowerShell 5.1 则是 Windows PowerShell)
- 进入 外观 设置
- 将字体改为
MesloLGM Nerd Font - 保存
配置 VS Code 终端字体:
如果在 VS Code 中使用终端,需要在 settings.json 中添加:
1 | "terminal.integrated.fontFamily": "MesloLGM Nerd Font Mono" |
注意:这里是为 VS Code 终端(PowerShell 7)配置的字体,可以更改为自己已安装且喜欢的字体。
5. 配置 PowerShell 7
创建配置文件:
1 | # 确保 PowerShell 7 的配置文件存在 |
用记事本打开配置文件:
1 | notepad $PROFILE |
在配置文件中添加以下内容:
1 | # 初始化 Oh My Posh,加载主题 |
如果你不清楚,可以先参考我的配置:
1 | oh-my-posh init pwsh --config "C:\Users\minbit\scoop\apps\oh-my-posh\29.12.0\themes\1_shell.omp.json" | Invoke-Expression |
我使用的是 1_shell 主题 + MesloLGM Nerd Font Mono 字体,当然你也可以选择其他主题和字体,Oh My Posh 提供有 100+ 款主题!详见 Oh My Posh 内置主题。
6. PowerShell 7 的强大补全功能
PowerShell 7 拥有非常强大的终端补全功能,远超传统 CMD 和 PowerShell 5.1,基本操作:
- 输入命令前几个字母 → 后面出现 灰色预测文本
- 按 → 右箭头:接受完整预测
更多智能补全请自行 Google~补全原理说明:
- 不是 AI:当前的预测功能是基于 历史记录 + 插件 驱动的。
- 历史记录:根据曾经执行过的命令进行预测。
- 插件扩展:可以安装
CompletionPredictor插件获得更智能的补全。 - 未来展望:微软可能会集成 AI 功能(如 Copilot),实现更智能的命令预测。
安装 CompletionPredictor 插件(更智能):
1 | # 安装 CompletionPredictor 插件 |
安装后,补全会更加智能,能够根据上下文提供更准确的建议。
保存后执行以下命令使配置生效:
1 | . $PROFILE |
.是点源操作符,在当前会话中重新加载配置文件,等价于重启终端。
7. 验证安装
在命令行输入 pwsh 回车,如果能进入 PowerShell 7,说明安装成功。
5. 添加右键菜单
如果想在文件资源管理器中右键文件夹直接用 PowerShell 7 打开,可以运行以下注册表文件:
- 文件夹右键:
C:\Users\你的用户名\scoop\apps\pwsh\current\install-explorer-context.reg - 文件右键:
C:\Users\你的用户名\scoop\apps\pwsh\current\install-file-context.reg
直接双击运行即可。
6. 注意事项
1. 更新 PowerShell 7
更新 PowerShell 7 时,需要在 旧版 Windows PowerShell (powershell.exe) 中执行:
1 | scoop update pwsh |
在 PowerShell 7 中更新自己可能会冲突。
2. 如何进入和退出 PowerShell 7
- 进入:在任意终端输入
pwsh回车。 - 退出:输入
exit回车。
7. 进阶:Scoop 软件仓库(Bucket)
Scoop 把软件列表叫做 Bucket。默认只启用 main 仓库,可以添加更多:
1. 添加 extras 仓库
1 | scoop bucket add extras |
安装更多软件:
1 | scoop install everything # 文件搜索工具 |
2. 添加 versions 仓库
1 | scoop bucket add versions |
安装特定版本:
1 | scoop install python311 # 安装 Python 3.11 |
参考资料:












