上一个命令开始

使用BASH,您可以使用向上箭头键获取最后一个命令(通过PuTtyterminal连接时)。

例如,我想知道是否有办法“自动完成”我邮件开始的最后一个命令。

例如,在Google Chrome浏览器中,地址栏的工作方式就是从您以前的networking历史logging中缩小您尝试访问的网站。

所以我想要做的就是开始input“mail”,然后按UP键, 最后一个以邮件开头命令自动完成。 如果再次按下,那么以邮件开头的第二个命令会自动完成。

这在BASH中可能吗?

CTRL + R它将开始反向历史search。 如果你想要第二个命令与你想find的string,继续按CTRL + R,直到你find你想要的命令。

您也可以使用history命令查看您input的最后一个命令。

您可以将readline函数history-search-backward绑定到按键(并将history-search-forward到另一个)。 我有他们绑定到PgUpPgDn ,在我的系统上是^[[5~^[[6~ ~/.inputrc所以我在~/.inputrc有以下内容:

 "\e[5~": history-search-backward "\e[6~": history-search-forward 

使用它,你可以input你想要的行的开始,例如mail ,然后重复按PgUp ,直到find你要找的上一行。 您可以按PgDn来退回列表。 与Ctrl + R的不同之处在于,首先按下该键,然后它会匹配行中任何位置的string,而不仅仅是在开头。 我发现我使用这两种方法取决于我在做什么。

如果您已经绑定了forward-search-history ,并且在~/.bashrcstty -ixon ,则可以按Ctrl + S几次按Ctrl + Rstty -ixon

请注意history-search-forwardforward-search-history之间的细微差别。

执行最后一个以mail开头的命令的方法是!mail但是它不会让你向上滚动,这是最后的或者什么也没有(上面的方法更好:))

你可以执行最后一个命令!