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

Rya*_*ull 8 command-line bash shortcut-keys

在某些终端中,您可以执行以下操作...

输入一些命令

nmap -sn 192.168.1.1/24
Run Code Online (Sandbox Code Playgroud)

然后继续在终端中做一些其他的事情。然后你可以输入

nmap
Run Code Online (Sandbox Code Playgroud)

然后只需按下该?键,它就会索引所有以您键入的内容开头的命令,nmap例如在本例中。

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

有没有办法让它在 Ubuntu 的终端中工作?

Rob*_*ein 23

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

如果您不想要包含 'nmap' 单词的最后一个命令,而是想要更远的过去,那么您可以按Ctrl-R再次按您想要的次数。


JoK*_*KeR 5

我总是使用history它对我来说更方便查看我输入的所有命令,例如:

history
Run Code Online (Sandbox Code Playgroud)

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

history | grep nmap
Run Code Online (Sandbox Code Playgroud)

只列出你的命令 nmap

history | grep nmap | tail -10

history | grep nmap | head -10
Run Code Online (Sandbox Code Playgroud)

列出你最后和前 10 个命令 nmap

然后只需复制并再次粘贴它。


小智 5

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

"\e[A": history-search-backward
"\e[B": history-search-forward
Run Code Online (Sandbox Code Playgroud)

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