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

Get own public IP address

Terminal - Get own public IP address
wget -qO- whatismyip.org
2009-03-27 10:57:57
User: kobayashison
Functions: wget
Get own public IP address


There are 3 alternatives - vote for the best!

Terminal - Alternatives
curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+'
2009-10-26 09:15:31
User: hugin
Functions: grep
wget http://ipecho.net/plain -O - -q ; echo
2013-10-02 21:18:40
Functions: wget

Returns your external IP address to the command line using only wget

curl -s http://wtfismyip.com/text
2013-06-27 10:53:54
User: m3adow

Plain Text Ip Output, independent of Layout change.

$ wget --no-check-certificate -q checkip.dyndns.org -O index.html && cat index.html|cut -d ' ' -f 6 | cut -d '<' -f 1
2014-05-12 07:10:29
User: Superkikim
Functions: cat cut wget

This is the command line I use to get my IP address in order to update my zoneedit account. Full script on my blog http://akim.sissaoui.com/linux-attitude/script-de-mise-a-jour-ddns-zoneedit-com-en-bashsh/

Know a better way?

If you can do better, submit your command here.

What others think

Doesn't work, however

curl -s myip.dk |grep '"Box"' | egrep -o '[0-9.]+'

does work.

Comment by tebeka 422 weeks ago

Doesn't work, however

curl -s myip.dk |grep '"Box"' | egrep -o '[0-9.]+'

does work.

Comment by tebeka 422 weeks ago

The same with wget:

wget -O - -q myip.dk |grep '"Box"' | egrep -o '[0-9.]+'
Comment by PabloX 422 weeks ago

You guys are using the wrong site :-P

wget -qO- whatismyip.org

It doesn't have any HTML or markup, just a plain ip.


ping $( wget -qO- whatismyip.org )

Will work flawlessly.

If you find yourself using a external IP a lot, consider instead using a dynamic DNS client like http://no-ip.com or a similar service. Free, east setup, and they have open source daemons to update it automatically. This gives you an actual named URL, and you won't ever need to use this command. On ubuntu, run

sudo aptitude search dyndns-client

Or search for "dynamic DNS" in your package manager to find some sites with supported services.

Comment by clockworkavian 422 weeks ago

@clockworkavian: Thanks for the tip about whatismyip.org!

I don't want to install/use dyndns-client every time I need an IP in a script...

Comment by kobayashison 421 weeks and 5 days ago

Yep... 1st one works like a charm. No grep or egrep needed. Just Ip plain text. It's perfect. You don't rely on the web designer... Because on the checkip one, if the web designer decide to do any change to the page, it might not work anymore. That's exactly what happened to the propose command on lifehacker, where it is proposed to use myip.dk. This site change the page layout, and bam... The command is useless.

Comment by Superkikim 290 weeks and 2 days ago

Regarding dynamic DNS update, that is exactly why I am looking for such command.

I use ZoneEdit.com, and I have no idea when my ISP changes my IP. I made a script to update the zone every 5 minutes. But I've been blocked by zoneedit.com because I'm making to many updates, even if the site can tell "no update needed" they don't like people "spamming" with update requests.

I will now add a command to check by myself if the IP changed every 1 or 5 minutes, and if it did, then I will update the zone at zoneedit.com. Then, every request will be for a good reason :-) This will also show me at what frequency the ISP changes my IP address.

Comment by Superkikim 290 weeks and 2 days ago

This is the command I use in my home made ddns script to update zoneedit.com

wget --no-check-certificate -q checkip.dyndns.org -O index.html && cat index.html|cut -d ' ' -f 6 | cut -d '<' -f 1

The script is here http://akim.sissaoui.com/linux-attitude/script-de-mise-a-jour-ddns-zoneedit-com-en-bashsh/ (copy paste). The article is in french but hey... google translate is your best friend.

Comment by Superkikim 154 weeks and 4 days ago

[url=http://www.nfljerseys.us/][b]NFL Jerseys[/b][/url]

[url=http://www.yeezyboost350.us.com/][b]Yeezy Boost 350 V2[/b][/url]

[url=http://www.longchampbags.us.com/][b]Longchamp Handbags[/b][/url]

[url=http://www.adidas-uk.org.uk/][b]Adidas UK[/b][/url]


[url=http://www.nike-stores.fr/][b]Nike Store[/b][/url]

[url=http://www.underarmouroutlet.us.com/][b]Under Armour Outlet[/b][/url]

[url=http://www.timberlanduk.org.uk/][b]Timberland Boots[/b][/url]

[url=http://www.jordan12.us/][b]Jordan 12[/b][/url]

[url=http://www.yeezy-shoes.us.com/][b]Yeezy Shoes[/b][/url]

[url=http://www.nikehuarache.us/][b]Nike Huarache[/b][/url]

[url=http://www.kedsshoesforwomen.com/][b]Keds Shoes For Women[/b][/url]

[url=http://www.yeezy.com.co/][b]Yeezy Shoes[/b][/url]

[url=http://www.nikeairmax.us/][b]Nike Air Max 2017[/b][/url]

[url=http://www.outlettoms.us/][b]Toms Outlet[/b][/url]

[url=http://www.ultraboostuncaged.us/][b]Ultra Boost[/b][/url]

[url=http://www.mlb-jerseys.us/][b]MLB Jerseys[/b][/url]

[url=http://www.adidas-nmds.com/][b]Adidas NMD[/b][/url]

[url=http://www.oakleyoutlet.net.co/][b]Oakley Outlet[/b][/url]

[url=http://www.rboutlet.org/][b]Ray Ban Outlet[/b][/url]

[url=http://www.katespadeoutlets.us/][b]Kate Spade Outlet[/b][/url]

[url=http://www.adidas-outlet.org/][b]Adidas Outlet[/b][/url]

[url=http://www.nikeairmax-90.com/][b]Nike Air Max 90[/b][/url]

[url=http://www.timberland-outlet.us/][b]Timberland Outlet[/b][/url]

[url=http://www.rayban-sunglasses.ca/][b]Ray-Ban Sunglasses[/b][/url]

[url=http://www.adidas-nmd.org.uk/][b]Adidas UK[/b][/url]

[url=http://www.adidaseqt.com/][b] Adidas EQT[/b][/url]

[url=http://www.ralphlaurens.org.uk/][b]Ralph Lauren UK[/b][/url]

[url=http://www.jordan4.us/][b]Jordan 4[/b][/url]

[url=http://www.cheapjordan-shoes.com/][b]Cheap Jordan[/b][/url]

[url=http://www.adidasnmdoutlet.com/][b]NMD Outlet[/b][/url]

Comment by lovelin1987 3 weeks and 5 days ago

Your point of view

You must be signed in to comment.