Что означает команда «sudo !!»?

49

Я видел команду

sudo !!

в видео.

Что это значит?

Mko
источник
10
Запустите предыдущую команду с помощью sudo.
Pixel Developer
Относящиеся .
Деннис Уильямсон
3
@ jmort253: SU и т. д. предназначены для всех знаний. Google - это просто поисковая система, которая ведет сюда. Мы не делаем RTFM, кроме как в дополнение к полезному ответу.
Деннис Уильямсон
Кроме того, достаточно документации по дистрибутиву Linux. Узнайте, как использовать такие команды, как infoи man. Если они у вас установлены man COMMAND, вы получите информацию о том, что команда делает man sudo. Если у вас нет установленного файла, установите apt-файл, sudo apt-get install apt-fileзатем вы можете найти с помощью apt-file, в каком пакете содержится команда man (если вы используете debian или производный от debian).
Дароктар
9
Это означает судо с местью ! Если две машины находятся рядом (2-3 дюйма), вы можете запускать команды на другой машине с этим. Это так сильно.
Пекка поддерживает GoFundMonica

Ответы:

60

Из руководства по bash :

9.3.1 Указатели событий

!!- Обратитесь к предыдущей команде. Это синоним '! -1'.

И со sudoстраницы руководства :

sudoпозволяет разрешенному пользователю выполнять команду от имени суперпользователя или другого пользователя, как указано в файле sudoers .

Итак, sudo !!означает выполнить предыдущую команду от имени суперпользователя.

Карл Норум
источник
5
Поздравляю с единственным ответом, который фактически отвечает на вопрос.
Даниэль Бек
1
Итак, чтобы подчеркнуть это: !! является исторической функцией оболочки и никак не связана с sudo. Вы можете использовать его везде, где это имеет смысл.
пользователь неизвестен
Спасибо за сообщение, получите часть "суперпользователя"?
Ja5087
10

Двойной восклицательный знак "!!" используется для вызова последней строки, введенной в оболочку. sudoэто сокращение от «Super User DO» и используется, когда вы хотите выполнить функцию с привилегиями суперпользователя.

Так что если я казнил

./foobar

но потом вспомнил, что мне нужны привилегии суперпользователя, можно было просто набрать

sudo !!

вместо того, чтобы печатать sudo ./foobarполностью. Это особенно полезно, когда ваша последняя команда была порядка десятков символов.

Peaches491
источник
Это не точно. Из Википедии (со ссылкой на хорошие ссылки): Первоначально он обозначал «superuser do», так как более старые версии sudo были предназначены для запуска команд только как суперпользователь. Однако в более поздних версиях добавлена ​​поддержка запуска команд не только в качестве суперпользователя, но и в качестве других (ограниченных) пользователей, и, таким образом, он также обычно расширяется как «замещающий пользователь». ,
Пабло А