获取终端中与当前输入的命令匹配的先前命令

获取终端中与当前输入的命令匹配的先前命令

在某些终端,您可以执行类似这样的操作......

输入一些命令

nmap -sn 192.168.1.1/24

然后继续在终端上做一会儿其他事情。然后你可以输入

nmap

然后只需按下该键,它就会索引以您输入的内容开头的所有命令,nmap例如在这种情况下。

我的例子很短,但有时你会输入一个很长的命令,想要再次运行,我知道你可以按直到再次找到它,但这会通过每一个命令,如果你很久以前输入该命令,则可能需要一段时间。

有没有什么办法可以让它于 Ubuntu 终端上运行?

答案1

是的,有一种非常简单的方法可以搜索命令历史记录。在终端上,按Ctrl-R开始搜索,然后您可以输入nmap,它将使用 nmap 搜索到最后一个命令。

如果您不想要包含“nmap”单词的最后一条命令,而是想要更早的一些命令,那么您可以根据需要多次按Ctrl“- ”。R

答案2

我总是使用history它,因为它可以更方便地查看我输入的所有命令,例如:

history

列出你一段时间内输入的所有命令

history | grep nmap

仅列出具有以下功能的命令nmap

history | grep nmap | tail -10

history | grep nmap | head -10

列出最后和前 10 条命令nmap

然后再次复制并粘贴即可。

答案3

我更喜欢使用的方法是通过重新映射UpDown键到 Bash 的历史记录搜索中。这可以通过将以下内容添加到来实现.inputrc

"\e[A": history-search-backward
"\e[B": history-search-forward

重新加载 shell 后,在空提示符下按下Up或将浏览所有命令,而在键入 eg 后按下或将浏览以您键入的内容开头的所有命令。DownUpDownnmap

答案4

如果您在 bash 中处于 vi 模式 ( set -o vi),您可以进入命令模式(按Esc),然后/whatever_you_want输入Enter.

它会搜索您想要的任何内容,您可以使用jk键滚动。找到正确的命令后按回车键。

为了在按下 Esc 键后能够输入命令,您必须按下i(这是 vi)。

返回“正常” shell 模式是通过 完成的set -o emacs

相关内容