PowerShell 会话的历史记录通常保存在用户配置文件中的一个文件中。在 Windows PowerShell 5.1 及更早版本中,这个文件是一个名为 ConsoleHost_history.txt
的文本文件,而在 PowerShell Core (PowerShell 6 及更高版本) 中,它被保存为一个名为 PSReadLine
的模块提供的历史记录。
在 PowerShell Core (PowerShell 6+) 中,可以使用 Get-History
命令来查看当前 PowerShell 会话中执行过的命令的历史记录。但是,这只会显示当前会话的历史记录,并不会显示以前会话中的命令。
如果使用的是 Linux 或 macOS 上的 PowerShell Core,位置会有所不同。通常,它们会保存在用户的 home 目录下的配置文件中。
PowerShell <= 5.1
对于 Windows PowerShell (5.1 及更早版本),你可以通过以下路径找到历史记录文件:
%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
PowerShell >= 6.0
对于 PowerShell Core (PowerShell 6+),历史记录同样由 PSReadLine 模块处理,但文件位置可能有所不同。一般情况下,可以通过以下命令在 PowerShell 会话中打开历史文件:
$historyPath = (Get-PSReadLineOption).HistorySavePath
Get-Content -Path $historyPath
Get-Content -Path $historyPath -Tail 20
请注意,历史记录文件是按用户保存的,所以每个用户都会有自己的历史记录文件。
还有,历史记录只是保存了之前会话中输入的命令。如果你启动一个新的 PowerShell 会话,你可以使用向上箭头键来访问上一次会话的命令,但这是基于 PSReadLine
模块的功能,而非所有版本的 PowerShell 都会默认安装此模块。
要输出包含以前会话中的命令的历史记录,需要访问由 PSReadLine 模块保存的历史记录文件。默认情况下,PSReadLine 模块会自动加载并保存的命令历史记录。
请注意,如果的 PowerShell 配置或权限设置限制了 Get-PSReadLineOption
的使用,上述命令可能不会正常工作。在这种情况下,可能需要根据实际情况调整命令或解决相关权限问题。