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.

Universal configuration monitoring and system of record for IT.

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



Psst. Open beta.

Wow, didn't really expect you to read this far down. The latest iteration of the site is in open beta. It's a gentle open beta-- not in prime-time just yet. It's being hosted over at UpGuard (link) and you are more than welcome to give it a shot. Couple things:

  • » The open beta is running a copy of the database that will not carry over to the final version. Don't post anything you don't mind losing.
  • » If you wish to use your user account, you will probably need to reset your password.
Your feedback is appreciated via the form on the beta page. Thanks! -Jon & CLFU Team

Generate random password

Terminal - Generate random password
randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}
2009-08-07 07:30:57
User: frozenfire
Functions: head tr
Generate random password

Generates password consisting of alphanumeric characters, defaults to 16 characters unless argument given.


There are 2 alternatives - vote for the best!

Terminal - Alternatives
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
2009-02-16 00:39:28
User: jbcurtis
Functions: grep head strings tr

Find random strings within /dev/urandom. Using grep filter to just Alphanumeric characters, and then print the first 30 and remove all the line feeds.

pwgen -Bs 10 1
2009-12-01 14:33:51

-B flag = don't include characters that can be confused for other characters (this helps when you give someone their password for the first time so they don't cause a lockout with, for example, denyhosts or fail2ban)

-s flag = make a "secure", or hard-to-crack password

-y flag = include special characters (not used in the example because so many people hate it -- however I recommend it)

"1 10" = output 1 password, make it 10 characters in length

For even more secure passwords please use the -y flag to include special characters like so:

pwgen -Bsy 10 1

output>> }&^Y?.>7Wu

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6
2009-02-24 09:43:40
User: Blackbit
Functions: head tr

If you want a password length longer than 6, changing the -c6 to read -c8 will give you 8 random characters instead of 6. To end up with a line-feed, use this with echo:

# echo `< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6`

dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
2009-02-17 23:36:24
User: TyIzaeL
Functions: cut dd rev

I know there are a lot of random password generators out there, but I wanted something that put out something besides hex. Set count equal to the number of bytes you want.

dd bs=1 count=32 if=/dev/random 2> /dev/null | md5 | grep -o '\w*'

Know a better way?

If you can do better, submit your command here.

What others think

It doesn't work...

Comment by Tont 403 weeks and 1 day ago


randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}; randpw
Comment by unixmonkey5015 403 weeks and 1 day ago

Why not use "pwgen" ?



oWa2Johb Af5ooji0 eij2Boo6 OcheaH4o eiV9vahr unewo0Yu aiWi6quo meNeez2u

Aeneey9a wiJae3Ae sahg3Noo oox4Phai fae9Ao7a AiM4dieh Aebuu3ai Auko5thi

eo2rohV4 Ahquee0i aavou2Ie dee1eeQu Neceeth2 Engoo5Ah aT4Racha ohcha9Go

Too8zih8 quahS2Gu ro6ooH9j bo9Ahva3 phiePai1 Chohs3Wa aphuu9Je Waixu0qu

zo8cuPie ahC2ohb9 Dae6joo7 Nu1eigoh oath3Ush aePai6ua Ohz4bae0 Ohsah1ai

faezuG0U ISapai0p eLa0uewa Ui9zaivi oob4xiNg Ohth6Lie Aex4thie udeeB8Ho

ieV9eel1 soX6nai9 er3Aif2O Kaethee4 iu7wieKi epha2uL7 ooyohX8o haich2Co

ev1lahN2 yohf4Chu Ca2jeeS4 hi5Geey3 xei6ELoo vipah8Ei ohgh1Odu aeYoosu3

ooYa5No0 OS6Maxao IFaewu9b phoph3Jo Ieg3EGo5 Quealee7 awaiX4os Koe5og1Y

zo6Aem5w Iengee1l aed9Pha3 mohR3sai Zien0cee pang3ooN aihah9Ai jee2Aghu

aht9eThu rideis5P ooW0kie3 eith9Jae KieBaiT7 xahShai7 Soh7esaH OeYoo5ki

Auphooh1 Yee2uuYa jahPi3Zo fau5ShoC eeyoo5Ah oosiL2ah oodef6Ah jieToa9b

Caethu6p meeF8the aiz7Cah4 eiyo9Ail vahd5eeC eh2ohKoo einae9Oh buX0fohG

ieSagh1a eeP5Quo4 eik8ohCh fi8Iev3h aeX3Chah voo9Ea2N oeR4ieT7 oe5sahCh

aK6eixe7 Ahpo3eow Ucawoh7f reach7Je fab6Seej ohM1ooph eoYoobi0 eichu8Ei

Iu9ahche usa1Thae Iengeem2 Fe1isobi boid9AiR eg8Iejai pasah5Ah leiN5eex

tee7aDoo peu8aeBu hapai8Oo Rahpahh8 Gou9tahf Ohko5kai xahra9Oh Eiphek1U

uRoo3aeY ezeix1Fe Doos4ish eiShei7O oseiMe4a Shoo7zoh Aegh3agi aeKathi6

me3eiLoa ielohs2J ieFee5oh ashooM8o daeX8eow ahyah4Ee eeThieh7 faes0Afa

ohboh9Ee chasieR9 Xaa1fee7 iQuo6uth jex9aiRa oaN5paey ai8Ci9ea Ochah6ot

Comment by mpb 403 weeks and 1 day ago

yeah as mpb said, use pwgen if you can. It has the benefit that is generates passwords that are likely phonetically pronouncable. So if you can remember what the gibberish sounds like it will be easier to remember.

Comment by bwoodacre 403 weeks and 1 day ago

Your point of view

You must be signed in to comment.