更改上一条命令的第一个单词

tr3*_*sta 5 bash history command-line

例如我输入

cat /very/long/path/textfile
Run Code Online (Sandbox Code Playgroud)

在那之后我决定给出下一个命令

rm /very/long/path/textfile
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:替换上一个命令的第一个单词的最简单/最快的方法是什么?(没有箭头键或复制粘贴)

它应该适用于任何命令(cat、rm 和 textfile 仅用于此示例,它不必是那些)

Sco*_*ott 9

假设您正在运行具有标准历史记录机制的 shell(例如,bash、C shell,...),键入新命令(例如,rm)后跟!*. 键入man bashman csh或任何适合您的内容,以查看更多详细信息(并且有很多)。

  • 键入 `rm !*` 时应格外小心!键盘的一次意外失误可能会毁掉原本完美的一天。 (2认同)

gar*_*ohn 8

如果您使用的是 bash,则可以键入<Esc>_以获取上一个命令的最后一个参数。您还可以使用变量$_.

另一种方法是使用 调用上一个命令Ctrl-P,然后使用Ctrl-A移动到命令的开头,然后Alt-D删除第一个单词,键入新的第一个单词(命令名称)并按 Enter。


小智 5

如果您使用的是 bash 或 sh,您可以输入第一个命令,然后按“Alt”和“.”。(点)获取上一个命令的最后一个参数。

cat /very/long/path/textfile
Run Code Online (Sandbox Code Playgroud)

使用较早命令类型的最后一个参数

rm "Alt+。" 你得到

rm /very/long/path/textfile
Run Code Online (Sandbox Code Playgroud)