使用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到另一个)。 我有他们绑定到PgUp和PgDn ,在我的系统上是^[[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 ,并且在~/.bashrc有stty -ixon ,则可以按Ctrl + S几次按Ctrl + R后stty -ixon 。
请注意history-search-forward和forward-search-history之间的细微差别。
执行最后一个以mail开头的命令的方法是!mail但是它不会让你向上滚动,这是最后的或者什么也没有(上面的方法更好:))
你可以执行最后一个命令!