Hide

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.
Hide

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:

Hide

News

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!
Hide

Top Tags

Hide

Functions

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

fast access to any of your favorite directory.

Terminal - fast access to any of your favorite directory.
alias pi='`cat ~/.pi | grep ' ; alias addpi='echo "cd `pwd`" >> ~/.pi'
2009-02-05 15:46:59
User: senthil
Functions: alias grep
8
fast access to any of your favorite directory.

example:

--------------------------------------------------------------------------------------------

[email protected]:~/workspace/SVN/haystak-repos/trunk/internal/src$ addpi

--------------------------------------------------------------------------------------------

Now that directory is in the list of fast access directories.

You can switch to it anytime like this:

--------------------------------------------------------------------------------------------

[email protected]:~$ pi internal`

[email protected]:~/workspace/SVN/haystak-repos/trunk/internal/src$ --------------------------------------------------------------------------------------------

Please note the backquote ( the symbol that shares its key with ~ in the keyboard )

pi will switch you to that directory.

To see the list of all fast access directories you have to say "cat ~/.pi"

Alternatives

There is 1 alternative - vote for the best!

Terminal - Alternatives

Know a better way?

If you can do better, submit your command here.

What others think

What happens if it finds more than one matching directory?

Comment by picardo 398 weeks and 4 days ago

picardo, the oldest definition gets priority in bash. But usually you will think of some word in your path which is unique enough. So such collisions are rare. But good point.

Comment by senthil 398 weeks and 3 days ago

Are we missing the addpi command?

Comment by pkkid 398 weeks and 3 days ago

crap, nevermind.. its two commands.

Comment by pkkid 398 weeks and 3 days ago

I have to admit--I'm baffled. I see that the grep finds the target directory, but how do we change directory to it? That is, what's the mechanism?

Comment by mkc 398 weeks and 3 days ago

mkc, when you include anything between backquotes ( `like this` ) bash executes it right away. Try saying echo date and echo `date`. This is the hack I am using above to make it change to the directory instead of just printing it out.

Comment by senthil 398 weeks and 2 days ago

looks like pi should be a function rather than an alias, which will remove the need for the backtick.

pi () { `grep $1 ~/.pi` }

(of course, you have to expand that to three lines -- up to the opening brace on the first, the command on the second, and the close brace on the third).

Comment by mulad 396 weeks and 4 days ago

I think you could accomplish the same thing, in Bash at least, with the $CDPATH environmental variable. Then you'd be able to use the built in cd and completions. You would just have to write a function to add directories to $CDPATH.

Comment by eightmillion 360 weeks and 3 days ago

In my .bashrc I have:

shopt -s cdable_vars

export apps="/home/karol/test/apps"

Now I just

cd apps

to go there.

Comment by karol 309 weeks ago

Your point of view

You must be signed in to comment.