2013-06-21 12 views
40

Często zapominam o uruchamianiu komend z sudo. Szukam sposobu, aby utworzyć funkcję bash (lub alias) dla powtórzenia ostatniego polecenia z sudo. Coś takiego:Powtórz ostatnie polecenie z "sudo"

S() { 
    sudo $(history 1) 
} 

Jakieś pomysły?

+0

Potrzebna jest dodatkowa praca dla aliasu: http://superuser.com/questions/240180/creating-an-alias-containing-bash-history-expansion –

Odpowiedz

11

!! może być używany do odwoływania się do ostatniego polecenia. A więc:

sudo !! 
19

Za mało?

sudo !! 

jeśli chcesz S Mówiąc najprościej:

alias S=sudo 

i używać go

S !! 

!! oznacza last command

+1

Nice. Moim zastosowaniem było natychmiastowe przekształcenie delikatnie spreparowanej linii poleceń w skrypt: 'echo !! > script.sh's – FractalSpace

+8

Mam to alias jako "proszę". To działało na mamę, działa na moim terminalu. –

8

Korzystając alias redo='sudo $(history -p !!)'. Jest to jedyna rzecz, która I znalazła, że ​​działa z aliasami. Pozostałe odpowiedzi nie działają z aliasami z jakiegoś powodu, próbując je samemu, nawet jeśli działają, gdy bezpośrednio je uruchamiają.