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

Sek*_*mty 10 linux terminal bash command-line command-history

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

当您每天使用终端时,您的命令历史记录很可能是许多不同命令的长列表,从而导致导航变得不那么容易。举个例子,假设一个月前我使用了iwconfig一组确定的参数(就像我说的,这只是一个例子,我现在不需要弄乱它),我怎么记得那个特定的命令使用它的所有参数和参数,而不必浏览数百个历史命令?

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

理想的情况是拥有一些可以让我使用一些热键来浏览历史的东西,但只是在包含我已经在命令行上输入的内容的实例之间;所以在我的例子中,在输入之后iwconfig,使用一些键(可能是 PgUp 和 PgDown?)来浏览以iwconfig开头的条目。

如果不可能,打印一个像historydo 这样的列表也很好,但它只包含我已经输入的内容(我怀疑涉及到historygrep命令,但我不确定正确的语法);但以前的热键解决方案将是最好的选择。

Ste*_*del 13

您可以使用Ctrl+搜索历史记录R,然后输入搜索字符串(例如iwto find iwconfig)。然后您仍然可以使用向上和向下箭头键在该点浏览历史记录,或再次按Ctrl+R以查找上一次出现。


Sek*_*mty 5

经过一些练习,我找到了如何使用变通解决方案。

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

  • 另一个技巧:使用`!n:p`。这将打印旧命令而不执行它并将其放回您的历史记录中。然后用一个向上箭头去它,现在你可以编辑它。还有很多像这样的其他愚蠢的技巧:http://ss64.com/bash/history.html (3认同)