PowerShell 美化 & 增强教程

PowerShell + Windows Terminal 美化 & 增强教程

Windows Terminal + PowerShell 默认外观和功能较为基础,但通过 Oh My Posh 及其他增强工具,你可以打造一个更美观、更高效的终端环境。本教程提供完整的安装、美化和优化步骤,包括常见问题的解决方案。


1️⃣ 安装 Windows Terminal

Windows Terminal 是微软官方的现代化终端,支持多标签、主题自定义、GPU 加速等功能。

🔹 方法 1:使用 Microsoft Store(推荐)

  1. 打开 Microsoft Store
  2. 搜索 Windows Terminal
  3. 点击 安装

🔹 方法 2:使用 Winget(命令行安装)

如果你的系统支持 winget,可以直接运行:

winget install --id Microsoft.WindowsTerminal -e

🔹 方法 3:从 GitHub 下载手动安装

  1. 访问 Windows Terminal 官方 GitHub
  2. 下载最新的 .msixbundle
  3. 双击安装

2️⃣ 如何打开 Windows Terminal

🔹 方法 1:使用开始菜单

  1. 按 Win + S
  2. 搜索 Windows Terminal(终端)
  3. 点击打开

在这里插入图片描述

🔹 方法 2:使用快捷键

  1. Win + X → 选择 Windows Terminal(终端)
  2. Win + R → 输入 wt → 按 Enter

🔹 方法 3:右键菜单打开

  1. 在 桌面或文件夹空白处 右键
  2. 选择 在 Windows Terminal(终端)中打开
  3. 这会直接打开当前目录的终端

3️⃣ 安装 Oh My Posh(终端美化)

Oh My Posh 是一个强大的终端美化工具,可以为 PowerShell 提供炫酷的主题。

🔹 方法 1:使用 Winget 安装(推荐)

winget install JanDeDobbeleer.OhMyPosh -s winget

在这里插入图片描述

🔹 方法 2:手动安装

  1. 访问 Oh My Posh GitHub Releases
  2. 下载 Windows 版本的安装包
  3. 解压后,将 oh-my-posh.exe 添加到 PATH

4️⃣ 配置 Oh My Posh 环境变量

🔹 确定安装路径

用户级的安装路径如下图:
在这里插入图片描述
默认是安装在当前用户的路径下。如果是全部用户,那么路径大概是 C:\Program Files\oh-my-posh,有可能是C:\Program Files (x86)\oh-my-posh

🔹 确定安装路径

  1. 按 Win + S,搜索 环境变量,然后打开 “编辑系统环境变量”
  2. 在 “高级” 选项卡中,点击 “环境变量”
  3. 在 “用户变量” 或 “系统变量” 里找到 Path,然后 编辑
  4. 点击 “新建”,然后添加以下路径:

🔹 验证安装是否成功

oh-my-posh --version

如果返回版本号,说明安装成功!🎉


5️⃣ 配置 Oh My Posh 主题

🔹 测试 Oh My Posh 默认主题

先运行下面的命令,看看终端是否已经可以使用 Oh My Posh:

oh-my-posh init pwsh | Invoke-Expression

💡 如果成功,你的终端提示符会发生变化!
📌 但是这个是临时的,重启终端后会恢复原样,所以我们需要进行永久配置。

🔹 配置 Oh My Posh 让它永久生效

🔹 确定配置文件存在

运行以下命令,确定配置文件是否存在:

Test-Path $PROFILE

如果返回是False,那么 PowerShell 配置文件 ($PROFILE) 不存在。

在这里插入图片描述
如果结果是没有这个文件,那么需要手动创建。手动创建 $PROFILE 的命令:

New-Item -Path $PROFILE -ItemType File -Force

📌 作用:这会创建 Microsoft.PowerShell_profile.ps1 文件,并确保它存在。

然后再检查:

Test-Path $PROFILE

如果返回 True,说明文件已经成功创建!🎉

🔹 写入 Oh My Posh 配置
  1. 编辑 $PROFILE:
notepad $PROFILE
  1. 在文件的最后添加:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/powerlevel10k_rainbow.omp.json" | Invoke-Expression

在这里插入图片描述

上面配置的主题是 powerlevel10k,我比较喜欢这个主题,其他设备都是这个主题。大家可以根据自己喜欢设置不同的主题。下面是另一个主题:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/paradox.omp.json" | Invoke-Expression

在这里插入图片描述

🔹 允许 PowerShell 运行配置文件

在这里插入图片描述

如果 PowerShell 提示不允许运行脚本,你需要调整执行策略

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

然后输入 Y 确认。
📌 解释:

  • RemoteSigned 允许本地脚本运行,但来自互联网的脚本需要签名。
  • -Scope CurrentUser 只对当前用户生效,不影响系统其他用户。
🔹 重新启动终端
  1. 关闭 Windows Terminal
  2. 重新打开 PowerShell
  3. 现在你的 Oh My Posh 主题应该会自动加载了!🎉
🔹 如何查看当前使用的主题

你可以运行:

oh-my-posh print

📌 这个命令会打印当前使用的主题的详细 JSON 配置,包括颜色、图标、段落等。

echo $env:POSH_THEME

📌 这会输出当前 Oh My Posh 所使用的 .omp.json 主题文件路径。

🔹 编辑当前 Oh My Posh 配置

如果你想修改当前主题:

oh-my-posh config edit

📌 这个命令会打开当前主题的 JSON 配置文件,你可以自定义提示符的样式、颜色、图标等。


6️⃣ 安装 Nerd Font(避免图标乱码)

Oh My Posh 依赖 Nerd Font 来正确显示图标。如果不安装,你可能会看到 ? 代替图标。

🔹 使用 Oh My Posh 命令安装字体

oh-my-posh font install  # 安装字体(可选)

在这里插入图片描述

🔹 推荐字体下载

从 GitHub 下载适合终端的 Nerd Font:

🔹 安装字体 & 设置 Windows Terminal

  1. 解压 .zip
  2. 双击 .ttf 文件点击安装
  3. 打开 Windows TerminalCtrl + , 进入 设置
  4. 选择 PowerShell,找到 字体(Font face)
  5. 选择刚刚安装的 Nerd Font
  6. 保存 & 关闭

在这里插入图片描述
在这里插入图片描述
✅ 推荐安装以下字体(TrueType .ttf)

  • CaskaydiaCoveNerdFont-Regular.ttf(最标准的等宽 Nerd Font 版本)
  • CaskaydiaCoveNerdFontMono-Regular.ttf(等宽版本,适合终端)
  • CaskaydiaCoveNerdFont-Bold.ttf(加粗版,可选)

7️⃣ 切换临时 Oh My Posh 主题

🔹 选择主题并启用

列出本地可用主题:

Get-ChildItem $env:POSH_THEMES_PATH

然后使用某个主题,例如 paradox.omp.json

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/paradox.omp.json" | Invoke-Expression

🔹 让配置永久生效

notepad $PROFILE

添加以下内容:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/paradox.omp.json" | Invoke-Expression

保存文件,重启终端 🎉


8️⃣ 增强 PowerShell 功能(Tab 补全、历史搜索、智能 cd 等)

🔹 启用语法高亮 & 补全(PSReadLine)

运行以下命令:

Install-Module PSReadLine -Scope CurrentUser -Force -SkipPublisherCheck

然后,打开 PowerShell 配置语法高亮:

# 启用语法高亮(自定义颜色)
Set-PSReadLineOption -Colors @{ "Command" = "DarkYellow" }

# 启用历史预测、Tab 补全 & 搜索优化
# InlineView和ListView二选一。如果喜欢像 GitHub Copilot 的灰色提示,建议使用 InlineView;如果喜欢候选列表样式,用 ListView。
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -HistorySearchCursorMovesToEnd

# 设置编辑模式为 Emacs(更常见的按键逻辑)
Set-PSReadLineOption -EditMode Emacs

# 持久化历史记录(自动保存)
Set-PSReadLineOption -HistorySaveStyle SaveIncrementally

🔹 安装 zoxide(更强大的 cd 命令)

zoxide 是一个比 cd 更智能的目录跳转工具:记住访问过的目录

winget install ajeetdsouza.zoxide

然后在 $PROFILE 里添加:

Invoke-Expression (& { (zoxide init powershell) -join "`n" })

这样,你可以使用:

z foo  # 直接跳转到包含 'foo' 的目录
z ~/Documents  # 直接跳转到 Documents

🔹 安装 eza(更好的 ls 命令)

Windows 的 scoop 包管理器可以安装 exa(现在叫 eza)。如果你还没有安装 scoop,可以先运行:

irm get.scoop.sh | iex

然后安装 eza:

scoop install eza  # 或 choco install exa

默认显示图标:

eza -l --icons

🔹 更好的 cat 命令(bat

batcat 的增强版:

winget install sharkdp.bat

然后使用:

bat file.txt

✅ 支持代码高亮
✅ 带行号
✅ 比 cat 更强大

🔹 fzf:终端模糊搜索

fzf 是一个强大的模糊搜索工具:

winget install junegunn.fzf

然后,你可以用:

Ctrl + R  # 搜索历史命令

PowerShell 自带的 Ctrl + R 更智能!

更快的 grep(使用 ripgrep

ripgrep (rg) 是 grep 的高性能替代方案:

winget install BurntSushi.ripgrep

如果 winget 找不到 ripgrep,你可以用 scoop:

scoop install ripgrep

如果你还没安装 scoop(不能使用管理员运行),先运行:

irm get.scoop.sh | iex

使用方式:

rg "search term" file.txt

相比 findstr,它支持更复杂的正则表达式和递归搜索。

更快的 find(使用 fd

fdfind 命令的现代化替代,速度更快,语法更直观:

winget install sharkdp.fd

使用方式:

fd ".txt" C:\Users

相比 dir /s /b *.txtfd 语法更简洁,速度更快。


9️⃣ 在线终端解析命令

如果你想在输入命令后,终端自动显示命令的解释(类似 AI 助手),可以安装 explain.sh:

function explain {
    $cmd = $args -join "+"
    Invoke-RestMethod -Uri "https://cheat.sh/$cmd" -UseBasicParsing
}

示例:

explain ls
explain git commit
explain docker run
explain pwsh

如果需要永久有效,请在 $PROFILE 里添加:

function explain {
    $cmd = $args -join "+"
    Invoke-RestMethod -Uri "https://cheat.sh/$cmd" -UseBasicParsing
}

1️⃣0️⃣ 启用 sudo(Windows 版)

在 Windows 中,PowerShell 默认没有 sudo 命令,但可以通过安装 gsudo(强烈推荐,行为几乎等同 Linux 的 sudo),让 PowerShell 可以像 Linux 一样使用 sudo 运行管理员权限的命令。

**安装 gsudo **

winget install gerardog.gsudo

设置 sudo 别名

在 PowerShell 终端中执行:

Set-Alias sudo gsudo

示例:

sudo Get-Process
sudo winget upgrade --all

sudo 永久生效

要让 sudo 命令在每次打开 PowerShell 时都能使用,需要将其添加到 PowerShell 配置文件 $PROFILE

notepad $PROFILE

在打开的 notepad 中添加:

Set-Alias sudo gsudo

保存后重新启动 PowerShell,即可长期使用 sudo

PS:另一种方式是 PowerShell 提权函数 + 手动交互。一个函数提示用户确认提权,比如:

function sudo {
    $command = $args -join " "
    Start-Process powershell -Verb runAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -NoExit -Command $command"
}
  • 这样会在新窗口执行,但不会自动关闭,你能看到结果;
  • 缺点是依旧不是原地执行,而是新开窗口。

1️⃣1️⃣ 让 PowerShell 自动升级所有软件

Windows 的软件管理工具 winget 支持一键升级所有已安装的软件,可以创建一个 PowerShell 函数来自动更新所有软件。

创建 Update-All 函数

在 PowerShell 终端中输入:

function Update-All {
    Write-Host "Updating Windows software using winget..."
    winget upgrade --all --silent
}

Update-All 永久生效

在 PowerShell 配置文件 $PROFILE 中添加:

function Update-All {
    Write-Host "Updating Windows software using winget..."
    winget upgrade --all --silent
}

以后可以直接运行:

Update-All

所有支持 winget 的软件都会自动升级。


1️⃣2️⃣ 常见问题 & 解决方案

🔹 $PROFILE 文件不存在

如果 $PROFILE 不存在,先创建它:

New-Item -Path $PROFILE -ItemType File -Force
notepad $PROFILE

🔹 ? 号图标乱码

  1. 确保你安装了 Nerd Font
  2. 确保 Windows Terminal 选择了 Nerd Font

🔹 ls -l --icons 参数错误

PowerShell 可能误解析参数,使用:

eza --% -l --icons

1️⃣3️⃣ 结论:你的终端已全面优化!

🎉 现在你的 PowerShell 已经变成一个 更美观、更智能、更强大 的终端!
安装 Windows Terminal & Oh My Posh
配置终端字体,避免乱码
美化终端主题
增强补全、历史搜索、cd & ls

$PROFILE 目前 $PROFILE 的完整配置:

# 设置主题
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/powerlevel10k_rainbow.omp.json" | Invoke-Expression

# 设置 sudo 别名
function sudo { Start-Process powershell -Verb runAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command $args" }

# 在线命令解析
function explain {
    $cmd = $args -join "+"
    Invoke-RestMethod -Uri "https://cheat.sh/$cmd" -UseBasicParsing
}

# 自动升级所有软件
function UpdateAll {
    Write-Host "Updating Windows software using winget..."
    winget upgrade --all --silent
}

# 配置 zoxide (更强大的 cd 命令)
Invoke-Expression (& { (zoxide init powershell) -join "`n" })

# 启用语法高亮(自定义颜色)
Set-PSReadLineOption -Colors @{ "Command" = "DarkYellow" }

# 启用历史预测、Tab 补全 & 搜索优化
# InlineView和ListView二选一。如果喜欢像 GitHub Copilot 的灰色提示,建议使用 InlineView;如果喜欢候选列表样式,用 ListView。
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -HistorySearchCursorMovesToEnd

# 设置编辑模式为 Emacs(更常见的按键逻辑)
Set-PSReadLineOption -EditMode Emacs

# 持久化历史记录(自动保存)
Set-PSReadLineOption -HistorySaveStyle SaveIncrementally

🚀 试试看,如果有问题,欢迎留言交流!😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值