Hacker News new | ask | show | jobs
by cwh 4903 days ago
I would warn anyone that read this to understand what each command does before actually running anything on a machine.

Things like "sudo !!" are INCREDIBLY dangerous, and I would never put that on a cheat sheet.

5 comments

Anyone running commands blindly without knowing what they do deserves what they get. That goes for potentially dangerous commands or not.

Or put in a slightly nicer way - Blindly running commands is going to turn into a learning experience, don't do it on a production machine.

I suppose if you type it at any random point it might be. It's useful more when typed something that you forgot to sudo.
If you are running sudo, the long-term payoff is probably higher if you never use sudo !!. The very small chance of a huge disaster is still a lot higher than up arrow. Unless you are on a laggy connection and up arrow delays and you push it twice and end up running the wrong command!

If you have lots of jitter and lag, i suggest using Mosh which I've found to be amazingly awesome when using it on Amtrak's spotty free wifi (3G uplink).

I've never had any incidents with `sudo !!`, however, I should point out that zsh (maybe other shells as well) replaces the `!!` with the full command and requires another press of Enter.

    $ rm -rf /root
    rm: cannot remove `root': Permission denied
    $ sudo !!  # Does not run this, but returns the line below.
    $ sudo rm -rf /root  # Then you say, "Wait I dont want to do this."
Interesting. Bash on my OS X box shows the command you're running, but doesn't give you a chance to cancel it. It looks like this:

  $ rm -rf /root
  rm: cannot remove `root': Permission denied
  $ sudo !!
  sudo rm -rf /root
  # /root is now kaput
I think it's meant for when you run a command normally, but then realize you should have sudoed (sudid?) it. Though in that situation, I would still be inclined to do "↑ esc a sudo ". It's not a lot more work, but it is a lot less uncertain.
Indeed. I find ctrl-p ctrl-a is faster than going to the cursors.
Whoops, thanks. Should have been ctrl-a, but spelling out muscle memory is, like, hard.
Shoulda sudone it!
I use this one like a dozen times a day.

  user@host$ less /var/log/syslog
  Permission Denied
crap...

  $ sudo !!
  sudo less /var/log/syslog
Woo!
This is exactly how I use it. A time saver for mundane "whups" moments.
why would that be bad? You would get to read your file.
It's not bad. It's extremely useful. If someone is so negligent that they run something potentially destructive and then immediately sudo !!, they probably shouldn't be administering systems.
Truthfully, I'm more comfortable using the up arrow and re-running it manually. At least I can inspect what the command was before running it.

Obviously, this doesn't help when using Fabric or scripting, but you shouldn't need "sudo !!" in those scenarios.

So, what's wrong with sudo !! then?
It's too easy to have a sticky key and type sudo !1 by accident. As a rule, not a good idea to do sudo from history without examining it first. So do up arrow or CTRL-P and the edit the command.
It re-executes your previous command -- this time with root privilege.

If and only if you meant to do that, you're fine.

Why else would you type it in? I can't imagine many people saying "hm, that command I didn't intend to run didn't work. Maybe I should run it as root instead."

Hopefully if you're in a NOPASSWD user/group, you know what root can do if you're careless; if you're not, there's yet another point where you'd have go out of your way to do damage with this shorthand.

The "only if" part is false: it is certainly possibleto be fine having done sudo !! without meaning to do it.