Windows的Powershell终端增强

文章讲述了如何在WindowsPowershell中使用PSReadLine模块来提升终端体验,而非使用可能导致性能问题的OhMyPosh。主要步骤包括安装PSReadLine,设置快捷键以实现历史命令提示和搜索,以及调整执行策略以避免配置报错。

Ubuntu上一直用的Oh My Zsh强化终端,体验非常nice。最近在Win上做东西比较多,于是也想把Powershell这个简陋的终端加强一下。

说干就干,网上查了一圈,发现大部分人用Oh My Posh来操作,因此试了一下,发现卡的想哭(好像是因为作者为了兼容性用Golang 去实现Oh My Posh。。。只能说神操作,服气)。更重要的问题在于,不同于Ubuntu,要让Powershell具备历史命令提示这样的功能只需要安装Powershell的模块,而这些模块并不基于Oh My Posh。也就是说如果并不想改Powershell的外观,只想增强它的功能,直接安装模块就行。。。

对于一个三十几的老男人来说,如果需要付出卡到想哭的代价换外观,那还不如不搞,因此直接放弃外观的改动,把实用的模块装上去(目前来说其实对本人而言就只需要装PSReadLine)。

操作如下:

安装PSReadLine插件以显示历史命令

Install-module PSReadline

设置快捷键的功能

notepad $PROFILE

在弹出的文档中输入如下内容:

# 设置预测文本来源为历史记录,(推荐)
Set-PSReadLineOption -PredictionSource History
# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd
# 设置 Tab 为菜单补全和 Intellisense,(推荐)
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete
# 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
# 设置向下键为前向搜索历史纪录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward

在命令行中,输入如下命令,使刚刚编辑的配置脚本生效:

. $PROFILE

如果设置报错,则将执行策略设置为RemoteSigned(选择选项中的Y):

set-ExecutionPolicy RemoteSigned

然后再来一次。

设置完成后的效果如下图所示:
在这里插入图片描述

### Windows PowerShell终端 的 区别 #### 1. 定义与角色 - **Windows Terminal** 是一个现代化的终端仿真器,它充当了用户与命令行工具之间的交互界面。Windows Terminal 支持多种 Shell 环境,例如 CMD、PowerShell 和 WSL(Windows Subsystem for Linux),并且可以同时运行多个标签页[^1]。 - **PowerShell** 是一种功能强大的脚本语言和命令行 Shell,专为系统管理员和开发人员设计。它提供了丰富的命令集(称为 cmdlet)以及对 .NET 框架的深度集成,能够执行复杂的任务和自动化操作[^3]。 #### 2. 功能对比 - **Windows Terminal**: - 提供了一个统一的前端界面,支持多标签页管理,允许用户在不同 Shell 环境之间快速切换。 - 支持自定义主题、字体样式和颜色方案,增强了用户体验[^1]。 - 不直接处理命令逻辑,而是将输入传递给所选的 Shell 环境进行解析和执行。 - **PowerShell**: - 提供了一套完整的命令行工具和脚本语言,适用于系统管理和自动化任务。 - 支持管道操作,可以将一个命令的输出作为另一个命令的输入,从而实现复杂的数据处理流程[^4]。 - 具备强大的对象处理能力,可以直接操作 .NET 对象,使得数据操作更加直观和高效[^3]。 #### 3. 使用场景 - **Windows Terminal** 更适合作为一个通用的命令行界面,用于启动和管理不同的 Shell 环境。对于需要频繁切换 Shell 或者希望在一个窗口中同时运行多个命令行会话的用户来说,Windows Terminal 是理想的选择[^1]。 - **PowerShell** 则更适合用于执行复杂的脚本任务和系统管理操作。例如,通过编写 PowerShell 脚本可以实现批量文件处理、服务配置、网络管理等功能[^4]。 #### 4. 示例代码 以下是一个简单的 PowerShell 脚本示例,展示了如何使用 PowerShell 进行文件搜索并输出结果: ```powershell # 定义搜索路径和关键字 $searchPath = "C:\Users\YourName\Documents" $keyword = "example" # 使用 Get-ChildItem 获取指定目录下的所有文件,并通过 Select-String 查找包含关键字的文件 Get-ChildItem -Path $searchPath -Recurse | Select-String -Pattern $keyword | Format-Table Path, LineNumber, Line ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值