Как "sudo !!" работает в bash:
$ touch /bin/1
touch: cannot touch `/bin/1': Permission denied
$ sudo !!
sudo touch /bin/1
bash поддерживает функцию расширения истории. Расширение истории реализовано знаком «!». '!!' обратитесь к предыдущей команде.
Расширение истории выполняется сразу после чтения командной строки, перед системным вызовом execve ().
$ touch /bin/1
touch: невозможно выполнить touch для «/bin/1»: Отказано в доступе
$ sudo strace !!
sudo strace touch /bin/1
execve("/usr/bin/touch", ["touch", "/bin/1"], [/* 17 vars */]) = 0
расширение bash "sudo !!" в «sudo touch / bin / 1», а затем запустите команду.
sudo !!
просто говорит терминалу запустить предыдущую команду, но на этот раз под sudo. В этом случае это то же самое, что просто ввести sudo touch /bin/1
первый раз.