Run the Last Executed Command as Root with sudo !!

Jul 20, 2010 - 1 Comment

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:

sudo !!

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:

nano /etc/hosts

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:

sudo !!

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.

Enjoy this tip? Subscribe to the OSXDaily newsletter to get more of our great Apple tips, tricks, and important news delivered to your inbox! Enter your email address below:

Related articles:

Posted by: Bill Ellis in Command Line, Tips & Tricks

One Comment

» Comments RSS Feed

  1. pederast says:

    !! is not related to sudo. It’s a bash event designator that refers to the last command. !-{n} would refer to the command issued n commands ago. !! is equal to !-1.

Leave a Reply

 

Shop for Apple & Mac Deals on Amazon.com

Subscribe to OSXDaily

Subscribe to RSS Subscribe to Twitter Feed Follow on Facebook Subscribe to eMail Updates