Powershell History Checking

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 的使用,上述命令可能不会正常工作。在这种情况下,可能需要根据实际情况调整命令或解决相关权限问题。