bash-fu: You forgot to sudo
August 6th, 2008One of the more routine annoyances of a long day in the terminal is banging out some long command that happens to operate on a file your current user doesn’t have access to.
www@webserver:~$ rm -fr /usr/lib/python2.5/site-packages/buildbot/buildbot.png<br/><br/>
rm: cannot remove `/usr/lib/python2.5/site-packages/buildbot/buildbot.png': Permission denied
You declined to sudo the command because you you forgot, were feeling cautious, or were unaware of the permissions bits of the file(s) in question. Now you have to type it again, or switch gears and start up some cursor navigation to prepend your sudo.
Next time, as an easy to use alternative, try:
sudo !!
In bash, !! expands to the last run command. sudo !! sudo’s the last command. That was easy.



August 24th, 2008 at 5:55 am
Another usefull trick is type !*. That is the last command arguments (all but the first word).
For example: www@webserver:~$ ls /usr/lib/python2.5/site-packages/buildbot/buildbot.png
And then you want remove it, then:
www@webserver:~$ rm !*
August 28th, 2008 at 7:11 am
Why not press Up, Home, and type “sudo”, rather than the “!!” mojo?
September 8th, 2008 at 3:12 pm
“home” doesn’t work in most terminal environments, unfortunately
October 3rd, 2008 at 3:54 pm
no, but ctl-A does. granted, i like the !! & !* methods just as well.