如果我像这样在终端中运行命令
$ tyop --count 3 --exact haveibeenpwned
并且命令返回错误代码,例如
command not found: tyop
,
如何重新运行最后一个命令,将命令行参数保留为--count 3 --exact haveibeenpwned
另一个命令名称(例如typo
,而不是tyop
)?
$ typo --count 3 --exact haveibeenpwned
如果可能的话,我正在寻找快捷方式或 shell 函数,例如!!
or !^
。
来自
man bash
:除了按向上箭头和手动编辑输入行等显而易见的事情外,GNU Readline(由
bash
和其他几个程序使用)还内置了一些有用的历史编辑功能。!*
正如其他答案中提到的那样,其中之一。另一个是使用
^
. 来自man bash
:使用它,您的命令可以通过键入
^tyop^typo^
并按 Enter 来修复。使用 bash 的历史可以做的事情还有很多。运行
man bash
并搜索HISTORY EXPANSION
并阅读该部分和所有子部分(Event Designators
、Word Designators
和Modifiers
)。顺便说一句,阅读标题部分也值得一读
READLINE
,或者至少略读一下以了解它的功能。关于 readline 的完整文档可以在https://tiswww.cwru.edu/php/chet/readline/rltop.html和https://tiswww.cwru.edu/php/chet/readline/readline.html找到该
!$
变量存储上一个命令的最后一个参数。例子:
!*
并$_
存储所有参数。此处有更多详细信息和替代命令的类似问题