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 后, F7F9 不会绑定到任何函数。 PSReadLine 不提供等效的功能。 有关详细信息,请参阅 about_PSReadLine

MaximumHistoryCount

$MaximumHistoryCount首选项变量确定 PowerShell 在命令历史记录中保存的最大命令数。 默认值为 4096。

例如,以下命令将 $MaximumHistoryCount 命令降低到 100 个命令:

$MaximumHistoryCount = 100

若要应用设置,请重启 PowerShell。

若要保存所有 PowerShell 会话的新变量值,请将赋值语句添加到 PowerShell 配置文件。 有关配置文件的详细信息,请参阅 about_Profiles

有关首选项变量的详细信息 $MaximumHistoryCount ,请参阅 about_Preference_Variables

历史记录中的命令顺序

命令在命令完成执行时,而不是在输入命令时添加到历史记录中。 如果命令需要一些时间才能完成,或者命令在嵌套提示中执行,则命令在历史记录中可能不按顺序运行。 仅在退出提示级别时,才会完成在嵌套提示符中执行的命令。

另请参阅