在Bash终端中,我经常输入一个命令,并意识到我需要sudo该命令。我点击向上箭头获取前一个命令,然后回溯到开始类型的sudo并进入。在新命令之后在Bash中获得前一行?
有什么办法可以输入sudo,然后按一个键在sudo后拉下前面的命令?
谢谢!
在Bash终端中,我经常输入一个命令,并意识到我需要sudo该命令。我点击向上箭头获取前一个命令,然后回溯到开始类型的sudo并进入。在新命令之后在Bash中获得前一行?
有什么办法可以输入sudo,然后按一个键在sudo后拉下前面的命令?
谢谢!
是:你可以使用"history expansion",写!!
:
$ foo
bash: foo: command not found
$ sudo !!
sudo foo <-- it prints out the expanded command
bash: sudo: command not found <-- and then runs it
sudo !!
!!
表示前面的命令
我强烈建议参观CommandlineFu它提供了很多类似这样的答案的技巧和窍门。谨慎的
一个字:如果你有HISTIGNORE
一套像我这样做,只是不忽略这些命令可以再次调用这种方式。
太棒了!现在请运行'apt-get install foo'和'apt-get install sudo'。 :) – Kaz 2012-03-08 03:47:53
@Kaz:我在Windows上运行了这个程序,它不需要'sudo',*当然*不需要'foo'。我考虑将SSH连接到一个方便的Linux机器上,并运行一个实际需要root权限的命令,比如'touch/etc/shadow'或其他东西,但是我决定这样做更有趣。 :-) – ruakh 2012-03-08 03:49:34