如何在Linux终端上有选择地浏览Bash命令历史记录


9

每个人都知道(或应该知道!),在终端上,上下箭头键用于导航使用命令的历史记录。

当您每天使用终端时,您的命令历史记录可能会是许多不同命令的一长串,因此导航起来不太容易。举例来说,假设一个月前我使用了iwconfig一组确定的参数(就像我说的那样,这只是一个例子,我现在不需要弄乱它),如何调用该特定命令它的所有参数和参数,而不必浏览数百条历史命令?

我知道我可以使用history以前使用过的命令列表,并在所述列表上!n重新执行n命令,但是当历史记录变大时,它也不是很实用。

理想的事情是拥有可以让我使用一些热键浏览历史记录的内容,而只是在包含我已经在命令行中键入内容的实例之间进行浏览。因此,在我的示例中,键入后iwconfig,使用一些键(也许是PgUp和PgDown?)来浏览以iwconfig开头的条目。

如果不可能的话,也可以像historydo 一样打印一个列表,但它只包含我已经键入的内容(我怀疑historygrepcommand有关,但不确定语法是否正确);但是以前的热键解决方案将是最佳选择。

Answers:


12

您可以使用Ctrl+ 搜索历史记录R,然后键入搜索字符串(例如iw查找iwconfig)。然后,您仍然可以使用向上和向下箭头键浏览该点的历史记录,或者再次按Ctrl+ R查找以前的事件。


我不确定对它的工作原理了解得很好。如果按Ctrl + R并键入iwconfig,它将显示一个包含该实例的实例(不一定是最新实例),但是如果使用箭头键,它将浏览所有项目,而不仅仅是包含字符串的项目。在我看来,它选择了历史记录中的特定点以开始导航(而不是像使用向上键那样从底部开始),但是除此之外,导航还是一如既往。我错过了什么?
Sekhemty

我认为这根本没有关系,但以防万一,我正在使用konsole终端仿真器。
Sekhemty

抱歉,我已经更新了有关如何查找先前比赛的答案。
Stefan Seidel

5

经过一些实践,我发现了如何使用解决方法。

我匹配了正确的语法以打印过滤列表,我做到了history | grep iwconfig(毕竟这并不难);通过输出,我可以使用!n现在易于阅读的过滤列表。


3
另一个技巧:使用!n:p。这将打印旧命令而不执行该命令,并将其放回历史记录中。然后按一下向上箭头,即可对其进行编辑。还有很多其他愚蠢的技巧,例如:ss64.com/bash/history.html
流浪逻辑


2

按“ ctrl + r”,然后输入搜索字符串。

如果不是您要查找的那个,则再次单击“ ctrl + r”

如果找到,请按Enter执行它,或按右箭头->键对其进行编辑,然后再使用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.