前言

很多人觉得 PowerShell 只是 Windows 自带的“高级 CMD”,功能普通、界面简陋。但实际上,PowerShell 的真正生产力,全部来自「模块(Module)」

PowerShell 模块相当于插件、功能包,可以给终端增加语法高亮、智能补全、命令预测、Git 状态、云运维、脚本检测、系统管理等能力。

本文从零讲清楚:模块是什么、怎么安装、怎么管理、开机自动加载、常用必备模块、终极美化配置、常见报错解决,一次性打通 PowerShell 生产力。

一、先搞懂:PowerShell 模块是什么?

简单理解:

  • CMD:原生固定功能,无法扩展

  • PowerShell:核心功能极简,所有高级能力靠「模块扩展」

模块分为两类:

  1. 内置模块:系统自带,直接可用(如 Archive、NetTCPIP)

  2. 第三方模块:从官方仓库安装(PSGallery),比如 PSReadLine、posh-git

PowerShell 所有插件、增强工具,本质都是 Module

二、模块核心基础命令(必记)

1. 查看已安装模块

Get-Module -ListAvailable

2. 查看当前已加载模块

Get-Module

3. 安装模块(官方仓库)

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
Install-Module 模块名 -Scope CurrentUser -Force

-Scope CurrentUser:仅当前用户,不需要管理员权限,推荐日常使用。

4. 加载模块到当前终端

Import-Module 模块名

5. 卸载/更新模块

# 更新
Update-Module 模块名

# 卸载
Uninstall-Module 模块名

三、关键知识点:临时生效 vs 永久生效

所有 Import-Module、配置命令,默认只在当前窗口生效

想要开机、新开终端自动生效,必须写入 PowerShell Profile

Profile 基础操作

# 查看 profile 路径
$PROFILE

# 不存在则创建
if (!(Test-Path $PROFILE)) { New-Item $PROFILE -Force }

# 打开编辑
notepad $PROFILE

所有永久配置,全部写在这个文件里。

四、新手必装核心模块(生产力天花板)

1. PSReadLine(最强终端增强,必装)

微软官方模块,所有 PowerShell 增强的基础,功能包括:

  • 命令语法高亮

  • 历史命令搜索 Ctrl+R

  • 智能命令预测(灰色提示)

  • 上下箭头模糊匹配历史

2. posh-git(Git 集成)

终端显示 Git 分支、修改状态、干净提示,开发必备。

3. OhMyPosh(美化提示符)

不属于模块,是独立终端美化工具,搭配 PSReadLine 使用,实现高颜值终端、分段提示符、图标主题。

五、全网最稳:无报错终极 Profile 配置

修复网上 90% 的教程报错(比如 HistoryNoDuplicates 参数错误),可直接全覆盖使用。

<#
PowerShell7 终极生产力配置
PSReadLine + Git增强 + 终端美化
#>

# 加载核心模块
Import-Module PSReadLine
Import-Module posh-git

# 上下箭头增量搜索历史
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-PSReadLineOption -HistorySearchCursorMovesToEnd

# 智能命令预测(灰字提示) F2切换视图
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle InlineView

# 历史记录去重(修复旧版报错写法)
Set-PSReadLineOption -HistoryNoDuplicates
Set-PSReadLineOption -HistorySaveStyle SaveIncrementally

# 自定义高亮配色(暗色终端舒适)
Set-PSReadLineOption -Colors @{
    Command = "#569CD6"
    Parameter = "#9CDCFE"
    Variable = "#4EC9B0"
    String = "#CE9178"
    Operator = "#C586C0"
    Comment = "#6A9955"
    InlinePrediction = "#666666"
}

# OhMyPosh 美化主题
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/paradox.omp.json" | Invoke-Expression

# Git 显示优化
$GitPromptSettings.DefaultPromptAbbreviateHomeDirectory = $true
$GitPromptSettings.BranchColor.ForegroundColor = 'Cyan'

# 常用别名
Set-Alias ll Get-ChildItem
Set-Alias g git
Set-Alias t tree

六、OhMyPosh 配置文件位置详解

很多新手搞混:Profile ≠ OhMyPosh 配置

  • Profile:PowerShell 启动脚本,负责加载模块、执行初始化

  • OhMyPosh 主题文件:.omp.json 样式配置

1. 官方主题默认路径

# 打开主题目录
explorer $env:POSH_THEMES_PATH

默认存放所有官方主题,不建议直接修改,更新会覆盖。

2. 自定义主题推荐路径

自己修改的主题统一放这里,永久保留:

$HOME/.config/oh-my-posh/

七、常见报错 & 解决方案(避坑)

1. Set-PSReadLineOption -HistoryNoDuplicates $true 报错

原因:该参数是开关参数,不能赋值 true/true/false。

正确写法:

Set-PSReadLineOption -HistoryNoDuplicates

2. 禁止运行脚本

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

3. 终端图标乱码

未安装 Nerd 字体,安装 Cascadia Code / MesloLGS NF,终端设置切换字体即可。

八、进阶:日常高频实用模块推荐

  • PSScriptAnalyzer:PowerShell 代码检查、规范 Lint

  • Microsoft.PowerShell.Archive:压缩解压

  • Az / AWS.Tools:云服务器运维

  • Pode:PowerShell 搭建 Web 服务、API

九、写在最后

PowerShell 的强大不在于原生功能,而在于模块化扩展能力

搭配 PSReadLine 智能编辑 + OhMyPosh 高颜值界面 + posh-git 开发集成,完全可以替代 CMD、第三方终端工具,成为 Windows 下一站式开发、运维、自动化终端。

附录:常用速查命令

# 重载配置
. $PROFILE

# 查看所有 OhMyPosh 主题
oh-my-posh list

# 导出当前主题
oh-my-posh config export "$HOME/.config/oh-my-posh/mytheme.omp.json"

# 查看 PSReadLine 全部快捷键
Get-PSReadLineKeyHandler