抱歉,如果这是一个是/否问题..我正在阅读这个 UNIX 教程并发现以下内容:
重复和修改上一个命令
[..]
如果您将leavenworth错误地输入为leaveworth,您可以使用以下命令进行更正:% ^leave^leaven
不幸的是我没有电脑来尝试这个,但我想知道:
由于某些命令需要sudo
运行,我可以写入^^sudo
“插入” sudo 到上一个命令吗?
答案1
我认为使用历史记录补全是一种更通用的方法
$ sudo !!
大多数 shell 都有上一个命令的快捷方式。那个可以在 bash 和 zsh 中运行。有多种方法可以进行替换,但通常这些最好保留用于删除或更改位,如果您想扩展它,只需抓住整个内容是最简单的方法。您可以在之前和之后添加任何您喜欢的内容!扩展上一个命令。
编辑:原来的问题是关于前置到上面的命令很好地涵盖了。如果你想改变其中的内容作为语法下方的注释器将如下所示:
$ sudo !!:s/search/replace/
...其中“搜索”是要匹配和替换的字符串...您明白了。
答案2
在 bash 中对我不起作用:
$ whoami
mikel
$ ^^sudo
-bash: :s^^sudo: no previous substitution
或 zsh:
$ ^^sudo
$
甚至 tcsh,我认为它发明了这种语法:
% ^^sudo
No previous left hand side.
!!
做的工作:
$ whoami
mikel
$ sudo !!
sudo whoami
root
答案3
是的。你可以这么做。例如,要在 /root 目录中运行ls
命令,您可以这样做:
$ ls
$ ^ ^sudo
第二个命令将作为“sudo ls”执行
请注意,在第二行中 sudo 之后添加一个“空格”。