2012-03-08 60 views
3

在Bash终端中,我经常输入一个命令,并意识到我需要sudo该命令。我点击向上箭头获取前一个命令,然后回溯到开始类型的sudo并进入。在新命令之后在Bash中获得前一行?

有什么办法可以输入sudo,然后按一个键在sudo后拉下前面的命令?

谢谢!

回答

4

是:你可以使用"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 
+1

太棒了!现在请运行'apt-get install foo'和'apt-get install sudo'。 :) – Kaz 2012-03-08 03:47:53

+0

@Kaz:我在Windows上运行了这个程序,它不需要'sudo',*当然*不需要'foo'。我考虑将SSH连接到一个方便的Linux机器上,并运行一个实际需要root权限的命令,比如'touch/etc/shadow'或其他东西,但是我决定这样做更有趣。 :-) – ruakh 2012-03-08 03:49:34

2
sudo !! 

!!表示前面的命令

我强烈建议参观CommandlineFu它提供了很多类似这样的答案的技巧和窍门。谨慎的

一个字:如果你有HISTIGNORE一套像我这样做,只是不忽略这些命令可以再次调用这种方式。

相关问题