about_History
简短说明
介绍如何在命令历史记录中获取和运行命令。
长说明
在命令提示符处输入命令时,PowerShell 会将命令保存在命令历史记录中。 可以使用历史记录中的命令作为工作记录。 并且,可以从命令历史记录中召回和运行命令。
PowerShell 有两个不同的历史记录提供程序:内置历史记录和 由 PSReadLine 模块管理的历史记录。 历史记录是单独管理的,但这两个历史记录在加载 PSReadLine 的会话中可用。
使用 PSReadLine 历史记录
PSReadLine 历史记录跟踪所有 PowerShell 会话中使用的命令。
历史记录将写入每个主机的中央文件。 该历史记录文件可供所有会话使用,并包含所有过去的历史记录。 会话结束时不会删除历史记录。 此外,该历史记录不能由 *-History
cmdlet 管理。 有关详细信息,请参阅 about_PSReadLine。
使用内置会话历史记录
内置历史记录仅跟踪当前会话中使用的命令。 历史记录不可用于其他会话,并在会话结束时将其删除。
历史记录 Cmdlet
PowerShell 有一组用于管理命令历史记录的 cmdlet。
Cmdlet | Alias | 说明 |
---|---|---|
Get-History |
h |
获取命令历史记录。 |
Invoke-History |
r |
在命令历史记录中运行命令。 |
Add-History |
将命令添加到命令历史记录。 | |
Clear-History |
clhy |
从命令历史记录中删除命令。 |
用于管理历史记录的键盘快捷方式
在 PowerShell 控制台中,可以使用以下快捷方式来管理命令历史记录。
- UpArrow - 显示上一个命令。
- DownArrow - 显示下一个命令。
- F7 - 显示命令历史记录。
- ESC - 隐藏历史记录。
- F8 - 查找命令。 键入一个或多个字符,然后按 F8。 再次按 F8 下一个实例。
- F9 - 按历史记录 ID 查找命令。 键入历史记录 ID,然后按 F9。 按 F7 查找 ID。
- #
<string>
Tab - 搜索的*<string>*
历史记录,并返回最近的匹配项。 如果重复按 Tab ,它会循环访问历史记录中的匹配项。
注意
这些键绑定由控制台主机应用程序实现。 其他应用程序(例如Visual Studio Code或Windows 终端)可以具有不同的键绑定。 PSReadLine 模块可以重写绑定。 启动 PowerShell 会话时,PSReadLine 会自动加载。 加载 PSReadLine 后, F7 和 F9 不会绑定到任何函数。 PSReadLine 不提供等效的功能。 有关详细信息,请参阅 about_PSReadLine。
MaximumHistoryCount
首选项 $MaximumHistoryCount
变量确定 PowerShell 在命令历史记录中保存的最大命令数。 默认值为 4096。
例如,以下命令将 $MaximumHistoryCount
减少到 100 个命令:
$MaximumHistoryCount = 100
若要应用设置,请重启 PowerShell。
若要保存所有 PowerShell 会话的新变量值,请将赋值语句添加到 PowerShell 配置文件。 有关配置文件的详细信息,请参阅 about_Profiles。
有关首选项变量的详细信息 $MaximumHistoryCount
,请参阅 about_Preference_Variables。
历史记录中的命令顺序
命令在命令完成执行时(而不是输入命令时)添加到历史记录中。 如果命令需要一些时间才能完成,或者命令在嵌套提示符中执行,则命令在历史记录中可能看起来是无序的。 只有在退出提示级别时,才会完成在嵌套提示中执行的命令。