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.

If you have a new feature suggestion or find a bug, please get in touch via http://commandlinefu.uservoice.com/

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.


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:



2011-03-12 - Confoo 2011 presentation
Slides are available from the commandlinefu presentation at Confoo 2011: http://presentations.codeinthehole.com/confoo2011/
2011-01-04 - Moderation now required for new commands
To try and put and end to the spamming, new commands require moderation before they will appear on the site.
2010-12-27 - Apologies for not banning the trolls sooner
Have been away from the interwebs over Christmas. Will be more vigilant henceforth.
2010-09-24 - OAuth and pagination problems fixed
Apologies for the delay in getting Twitter's OAuth supported. Annoying pagination gremlin also fixed.




output your microphone to a remote computer's speaker

Terminal - output your microphone to a remote computer's speaker
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
2009-02-08 10:10:00
User: morpheus
Functions: dd ssh
output your microphone to a remote computer's speaker

This will output the sound from your microphone port to the ssh target computer's speaker port. The sound quality is very bad, so you will hear a lot of hissing.


There is 1 alternative - vote for the best!

Terminal - Alternatives
arecord -f dat | ssh -C user@host aplay -f dat

Know a better way?

If you can do better, submit your command here.

What others think

how do you... un-output it?

Comment by Svish 311 weeks and 5 days ago

Control-c ?

Comment by DavieBaby 309 weeks and 3 days ago


cat /bin/bash > /dev/dsp

which takes each byte and interprets it as a frequency (number of waves per second, HZ) and the sound driver plays it.

Comment by anzan 302 weeks and 6 days ago

wow, that looks really scary.

Comment by unixmonkey3883 301 weeks and 1 day ago

That is freaking awesome.

Comment by brephophagist 300 weeks and 1 day ago

Any hint to make this work on Leopard ?

Comment by sitaktif 295 weeks and 4 days ago

Would be sweet if i knew how to make this work for Leopard. Any thoughts?

Comment by fastrack20 295 weeks and 1 day ago

Leopard does not use /dev/dsp, so there should be some alternatives to it

Comment by foremire 283 weeks and 1 day ago

Has anyone found a solution in 10.5/6?

Comment by megrimm 263 weeks and 2 days ago

Do it trough SSH and output to your own machine and your a spy :P

Comment by Meeko 262 weeks and 4 days ago

Mac OS X uses coreaudio to input and output sound. No UNIX sound device drivers are present, and, in fact, they are frowned upon by Apple as primitive and ugly. Thus, they will probably never be added to Mac OS X :-/.

Comment by morpheus 261 weeks and 4 days ago

Very Good!!!

Comment by alwaro78 236 weeks and 1 day ago

how did u find it?

Comment by deargodzw 196 weeks and 6 days ago

That's cool!

Comment by regding 169 weeks and 4 days ago

Since /dev/dsp is obsolete & missing from Ubuntu, what was that command to wrap those old programs to use PulseAudio instead?

Comment by klepsydra 147 weeks and 2 days ago

That is awesome. Pure CommandLineFu!

Comment by thecamelcoder 141 weeks and 6 days ago

for ubuntu i use this one "arecord -f dat | ssh -C user@host aplay -f dat" (replace the 'dat' with 'cd' to get 44100hz instead of 48000 quality is very good but not so heavy on the bandwidth)

Comment by srulikuk 88 weeks and 4 days ago

@srulikuk: I like yours better :-)

Comment by morpheus 88 weeks and 4 days ago

I've successfully tested these between two Macs that have the sox binary:

Send microphone input from local machine to remote machine's speakers:

path/to/sox -V0 -d -p | ssh user@host path/to/sox - -d

Send microphone input from remote machine to local machine's speakers:

ssh user@host path/to/sox -V0 -d -p | path/to/sox - -d

The '-V0' is optional?I just prefer not to see the warning messages.

Here's the link for the sox download for Mac OS X:


Use the binary (the UNIX executable file named 'sox') inside the download folder.

Comment by member1936 34 weeks and 1 day ago

@member1936 : Hi, i tried but couldn't do the same between my two Macs with sox. I succeeded on playing a local wav file to distant speakers but when I try default input and output I have this : FAIL formats: can't determine type of `-'

Any advice, clue or idea ? Thanks a lot.

Comment by nitnok 28 weeks and 6 days ago

Your point of view

You must be signed in to comment.

Related sites and podcasts