about_History
简短说明
介绍了如何获取和运行命令历史记录中的命令。
长说明
在命令提示符下输入命令时,PowerShell 会将该命令保存在命令历史记录中。 你可以将历史记录中的命令用作你的工作记录。 另外,你可以重新调用和运行命令历史记录中的命令。
PowerShell 有两个不同的历史记录提供程序:内置历史记录和由 PSReadLine 模块管理的历史记录。 这些历史记录是分开管理的,但这两份历史记录都可以在加载 PSReadLine 的会话中使用。
使用 PSReadLine 历史记录
PSReadLine 历史记录跟踪所有 PowerShell 会话中使用的命令。
历史记录被写入到每个主机的中心文件。 该历史记录文件可供所有会话使用,并包含所有过去的历史记录。 会话结束时,历史记录不会被删除。 此外,无法通过 *-History
cmdlet 管理该历史记录。 有关详细信息,请参阅 about_PSReadLine。
使用内置会话历史记录
内置历史记录仅跟踪当前会话中使用的命令。 该历史记录不可用于其他会话,并且在会话结束时会被删除。
历史记录 Cmdlet
PowerShell 有一组管理命令历史记录的 cmdlet。
Cmdlet | 别名 | 说明 |
---|---|---|
Get-History |
h |
获取命令历史记录。 |
Invoke-History |
r |
运行命令历史记录中的命令。 |
Add-History |
将命令添加到命令历史记录。 | |
Clear-History |
clhy |
从命令历史记录中删除命令。 |
用于管理历史记录的键盘快捷键
在 PowerShell 控制台中,可以使用以下快捷键来管理命令历史记录。
- 向上箭头 - 显示上一个命令。
- 向下箭头 - 显示下一个命令。
- 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。
历史记录中命令的顺序
当命令完成执行时(而不是输入命令时),命令将被添加到历史记录中。 如果命令需要一些时间才能完成,或者命令在嵌套提示中执行,则命令在历史记录中可能会乱序。 仅当你退出提示级别时,在嵌套提示中执行的命令才算完成。