2013-06-21 13 views
40

私はしばしばsudoでコマンドを実行することを忘れてしまいます。私はsudoで最後のコマンドを繰り返すためのbash関数(またはエイリアス)を作る方法を探しています。次のようなもの:"sudo"で最後のコマンドを繰り返してください

S() { 
    sudo $(history 1) 
} 

どのようなアイデアですか?

+0

エイリアスに必要な余分な作業:http://superuser.com/questions/240180/creating-an-alias-containing-bash-history-expansion –

答えて

11

!!は、最後のコマンドを参照するために使用することができます。したがって:

sudo !! 
19

十分ではありませんか?

sudo !! 

あなたは簡単に言えばSをしたい場合:

alias S=sudo 

をし、それ

S !! 

!!last command

+1

ニース。私の使い方は微妙に細工されたコマンドラインを即座にスクリプトに変換することでした: 'echo !! > script.sh' – FractalSpace

+8

私は「please」とエイリアスを付けました。それは、ママに働いて、それは私の端末で動作します。 –

8

使用alias redo='sudo $(history -p !!)'を意味します。これは私が がエイリアスで動作する唯一のものです。他の答えは何らかの理由でエイリアスで動作しません。たとえ直接実行しても動作しますが、自分で試してみました。

関連する問題