使用 BASH,您可以使用向上箭头键获取最后一个命令(通过 PuTty 终端连接时)。
我想知道是否有办法“自动完成”我执行的最后一个命令从...开始例如邮件。
以 Google Chrome 为例,地址栏的工作方式是根据您以前的网络历史记录缩小您要访问的网站的范围。
所以我要做的是开始输入“mail”,然后按下向上键,然后最后一个以 mail 开头的命令会自动完成。如果我再次按下“向上”,则以 mail 开头的倒数第二个命令会自动完成。
这在 BASH 中可能吗?
答案1
打CTRL + R它将启动反向历史搜索。如果您想要第二个包含要查找的字符串的命令,请继续点击CTRL + R直到找到你想要的命令。
您还可以使用历史命令来查看您最后输入的命令。
答案2
您可以将readline
函数绑定history-search-backward
到某个按键(以及history-search-forward
另一个按键)。我已将它们绑定到我的系统上的PgUp和,因此我的 中有以下内容:PgDn^[[5~
^[[6~
~/.inputrc
"\e[5~": history-search-backward
"\e[6~": history-search-forward
mail
例如,使用它,您可以输入所需行的开头,然后PgUp反复按,直到找到您要查找的上一行。您可以按 来在列表中向前后移动。与+ 的PgDn区别在于,使用它时,您先按下该键,然后它会匹配任何字符串CtrlR在任意位置而不是只在开头。我发现我会根据所要做的事情使用这两种方法。
如果您已绑定到它并且已经在您的 中,那么您可以在按Ctrl+R几次后向后退Ctrl。Sforward-search-history
stty -ixon
~/.bashrc
history-search-forward
请注意和之间的细微差别forward-search-history
。
答案3
执行以 mail 开头的最后一个命令的一种方法是,!mail
但它不会让您向上滚动,它是最后一个或什么都没有(上面的方法更好:))
答案4
您可以使用 !! 执行最后一个命令