PowerShell命令历史记录

11

我经常使用Bash和PowerShell,并且当我在PowerShell控制台上无法使用 Ctrl+R 时感到非常烦人。

是否有插件/备用命令可以帮助我在Bash和PowerShell之间无缝切换?

更新(2018年)

现在PowerShell支持 Ctrl + R。请参见此答案


相关:有关所有 PowerShell 的历史记录,请参见 *如何在 Windows Server 2016 中查看跨所有 PowerShell 会话的命令历史记录?*。 - Peter Mortensen
3个回答

17

另一种命令是例如键入#ls并按下Tab,持续按下Tab以循环浏览所有以ls开头的命令历史记录。

在之前的版本中,您可以键入ls,然后按F8匹配历史记录。继续按F8以循环浏览多个匹配项。

注意:ls在此处只是一个占位符。将其替换为您想要的任何命令。


谢谢,但这只适用于当前会话吗?当我关闭PS控制台并重新打开时似乎不起作用。 - Srikanth Venugopalan
1
有一些保存历史记录的技巧,可以使用 Get-History | Export-CliXml $home\pshist.clixml 和 PowerShell EngineExiting 事件。然后,您可以使用 Import-CliXml $home\pshst.clixml | Add-History 重新加载该历史记录。随着时间的推移,历史记录可能会变得非常庞大,因此您可能希望限制保存的历史记录的大小。 - Keith Hill

9
截止到今天,PowerShell支持Ctrl + R快捷键。
在PowerShell控制台中,只需按下Ctrl + R,然后开始输入您之前运行过的命令的任何部分即可。

或者:

开始输入您之前运行过的命令的任何部分,然后按下或击打F8

不断按F8以循环浏览类似的命令。


请注意,此代码仅适用于纯 PowerShell,不包括 PowerShell ISE。 - NH.

5
请看PSReadline:https://github.com/lzybkr/PSReadLine 该模块支持在emacs模式下的交互式历史搜索,如果您喜欢Windows模式,可以将Ctrl+R绑定到ReverseHistorySearch。
PSReadline的长期目标是使从bash向PowerShell转换更加容易,同时提供PowerShell体验,例如制表符完成。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接