Повторити останню команду з "sudo"

Я часто забуваю запускати команди з sudo . Я шукаю спосіб зробити bash функцію (або псевдонім) для повторення останньої команди за допомогою sudo . Щось на зразок:

S() {
    sudo $(history 1)
}

Будь-які ідеї?

51
Додаткова робота, необхідна для псевдоніма: superuser.com/questions/240180/…
додано Автор Ciro Santilli 包子露宪 六四事件 法轮功, джерело
Додаткова робота, необхідна для псевдоніма: superuser.com/questions/240180/…
додано Автор Ciro Santilli 包子露宪 六四事件 法轮功, джерело

8 Відповіді

Ви можете написати:

sudo !!

(See §9.3 "History Expansion" in the Bash Reference Manual.)

94
додано

Ви можете написати:

sudo !!

(See §9.3 "History Expansion" in the Bash Reference Manual.)

94
додано

Недостатньо?

sudo !!

Якщо ви бажаєте, щоб S було просто написано:

alias S=sudo

і використовувати його

S !!

the !! mean the last command

20
додано
У мене це псевдонім як "будь ласка". Він працював на мамі, вона працює на моєму терміналі.
додано Автор Stephan Muller, джерело
Ніцца. Моє використання полягало в тому, щоб миттєво перетворити делікатно створений командний рядок у скрипт: echo !! > script.sh
додано Автор FractalSpace, джерело

Недостатньо?

sudo !!

Якщо ви бажаєте, щоб S було просто написано:

alias S=sudo

і використовувати його

S !!

the !! mean the last command

20
додано
У мене це псевдонім як "будь ласка". Він працював на мамі, вона працює на моєму терміналі.
додано Автор Stephan Muller, джерело
Ніцца. Моє використання полягало в тому, щоб миттєво перетворити делікатно створений командний рядок у скрипт: echo !! > script.sh
додано Автор FractalSpace, джерело

!! can be used to reference the last command. So:

sudo !!
12
додано

!! can be used to reference the last command. So:

sudo !!
12
додано

Використовуйте alias redo = 'sudo $ (history -p !!)' . Це єдине, що я виявили, що працює з псевдонімами. Інші відповіді з якихось причин не працюють в псевдонімах, пробуючи їх самі, навіть якщо вони працюють, коли вони безпосередньо керують ними.

11
додано

Використовуйте alias redo = 'sudo $ (history -p !!)' . Це єдине, що я виявили, що працює з псевдонімами. Інші відповіді з якихось причин не працюють в псевдонімах, пробуючи їх самі, навіть якщо вони працюють, коли вони безпосередньо керують ними.

11
додано