

Top Ten One-Liners from CommandLineFu Explained - pkrumins
http://www.catonmat.net/blog/top-ten-one-liners-from-commandlinefu-explained/

======
colonhyphenp
Last year a friend taught me about the bash trick "CTRL-R" <start typing 'ssh'
or some other previously run command> on the command line for reverse history
searching, and it is an amazing time saver. It acts as a great alternative to
#8, "Find the last command that begins with “whatever,” but avoid running it"

$ !whatever:p

~~~
10ren
I use up-arrow for that. My .inputrc has:

    
    
        "\e[A": history-search-backward
    

If you don't type anything, it acts exactly as the old up-arrow.

~~~
imurray
Or in ~/.zshrc:

    
    
        bindkey '\e[A'  history-beginning-search-backward

------
duck
_#3. Save a file you edited in vim without the needed permissions_

 _:w !sudo tee %_

I've used vim for a long time, but didn't know about this one.

~~~
erlanger
Of course it assumes sudo's present.

------
sketerpot
When I need to do number one -- add sudo to the previous command -- I just use
the up arrow, Ctrl-a to get to the beginning of the line, and add sudo. It's a
little slower than the method in the article, but I find it downright
dangerous to have something in your command history that means "do whatever
was typed previously as root".

~~~
chronomex
It actually won't be in your command history as that. The entry will go into
your command history as "sudo previous-line".Try it yourself:

    
    
      $ true
      $ echo !!
      echo true
      true
      [up-arrow to see]
      $ echo true

~~~
sketerpot
Nice! Consider my objection withdrawn, and my compliments to the developers of
bash.

~~~
vorador
I think in this case, the compliments should go to bill joy, the creator of
csh.

------
pvg
Couple of little nits - 5. and 8. are not bash specific and neither are event
designators, these work fine in tcsh and zsh. I think caret substitution might
have actually come from the *csh world. Not that big of a deal since bash is
so prevalent these days but hey, a pedantipoint is a pedantipoint.

~~~
pkrumins
Good points, I like being corrected where appropriate.

------
10ren
I'm always finding new places to use brace expansion. Recently I've starting
doing

    
    
        diff longpath_andor_longfilename{a,b}*

------
aw3c2
On #10. Capture video of a linux desktop you suggest removing -r and using -b
250kbit/s. Did you try that? ;)

Is there a way to use a better codec?

~~~
pkrumins
Didn't try it. It actually turns out you need -r. Seems like an exception. I
updated the article to reflect that. :)

The output codec? Use `-vcodec <format>`, where <format> is a video coded
output by `ffmpeg -formats`.

Update: The whole comment about kbit/s was actually unnecessary, so I edited
the article and replaced it with a better comment.

~~~
aw3c2
I should have mentioned the message in my comment, sorry about the wittyness.
Thanks for updating!

------
sown
My favorite is the modifier for histories.

$ ls a b c

a b c

$ ls !$

ls c

c

$ ls a b c

a b c

$ ls !:3 !:2 !:1 !:0

ls c b a ls

ls: ls: No such file or directory

a b c

$

------
eplanit
Very helpful, thanks. To my tech. note list it goes!

------
bho
neat. thanks for the explanations!

