2013-06-21 25 views
40

Sık sık sudo ile komutları çalıştırmayı unutuyorum. sudo ile son komutu tekrarlamak için bir bash işlevi (veya diğer ad) yapmak için bir yol arıyorum. Şunlar gibi bir şey:"sudo" ile son komutu tekrarla

S() { 
    sudo $(history 1) 
} 

Herhangi bir fikir?

+0

Diğer adlar için daha fazla çalışma gerekiyor: http://superuser.com/questions/240180/creating-an-alias-containing-bash-history-expansion –

cevap

11

!! son komutu başvurmak için kullanılabilir. Bu nedenle:

sudo !! 
19

Yeterli değil misiniz?

sudo !! 

basitçe koymak S istiyorsanız:

alias S=sudo 

ve

S !! 

!!last command

+1

Güzel. Benim kullanımım bir kurgusal olarak hazırlanmış bir komut satırını anında bir komut dosyasına dönüştürmekti: 'echo !! > script.sh' – FractalSpace

+8

"Lütfen" olarak takma adı var. Annem üzerinde çalışıyor, terminalim üzerinde çalışıyor. –

8

kullanın alias redo='sudo $(history -p !!)' ortalama kullanın. Bu, 'un takma adlarla çalıştığı tek şey. Diğer cevaplar, herhangi bir nedenden ötürü takma adlarda çalışmaz, onları doğrudan çalıştırırken çalışsalar da, kendim denedim.