Run the Last Executed Command as Root with sudo !!
Have you ever tried to run a command line tool to discover that you don’t have the necessary privileges to use it? Or perhaps the command itself actually requires root access to run at all? Rather then type out the entire command string again, you can use this awesome trick which re-runs the last executed command with sudo privileges. Best of all, this great trick works in Mac OS X and Linux.
OK, by the headline alone you’re probably thinking this is just a bit of hyperbole becausae of the exclamation points, but I swear I’m not just super excited about the sudo command (though this command is really great!)… no, instead the exclamation points are actually part of the usage of the sudo tool in this regard.
If you want to quickly run the last command executed but as the root superuser, type the following:
Yes, that’s “sudo” followed by a space and two exclamation points. This will instantly run the previously run command but with sudo prefix, which typically means you’ll need to enter an admin password to complete the sequence.
An example of this would be if you’re trying to edit a system file that you need system privileges for. Instead of re-entering the entire command string preceded with sudo, just type sudo !! and the previous command (!!) will be run under sudo.
For example, let’s say you were trying to modify the users host file:
But you can’t save or edit the file, right? No sweat, rather than typing out the full ‘sudo nano /etc/hosts’ command sequence, just type the following:
This takes the last command (in this case, nano /etc/hosts) and prefixes it with sudo automatically, becoming the complete ‘sudo nano /etc/hosts’
This works with literally every command line tool and command execution, so try it out, it’s pretty awesome.