如何使用历史实用程序复制以前输入的命令而不再次运行它?

cen*_*oob 14 linux centos

我可以history在 CentOS上使用该命令来获取以前输入的命令的列表,但是,如果我执行以下操作:!372, history 将尝试运行引用的命令。

我需要上一个运行命令出现在当前光标处。下面是一个例子:

[dev@home ~]$ previous_command_no_execute!372  
Run Code Online (Sandbox Code Playgroud)

Sma*_*ger 25

怎么样,把它放在你的命令行上:

$ !372
Run Code Online (Sandbox Code Playgroud)

然后按ESC其次CTRL+E。这将在命令行上自动展开,而无需实际运行它。(还扩展了其他所有内容,包括环境变量)

据我所知,这只适用于 Bash。


use*_*517 10

您可以使用Ctrlr然后键入原始命令中的一些字符,例如

(reverse-i-search)`/etc': sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

上面我输入Ctrl-r /etcsudo /etc/init.d/apache2 restart从历史记录中提取命令


MDM*_*rra 6

history | grep 372 应该工作,对吧?

编辑:

此外,您可以执行一些操作,例如echo !372 > /dev/clip将命令目录放入剪贴板。