I find it difficult to believe an efficiency article that tells me that 'e' is shorter than 'emacs' but to write a 15-line perl script to replace 'uniq -c'. Add to that the cdto script, which replaces pushd crudely and without recursion.
Premature optimization. Spend more time learning about the tools you already have, then figure out how to shave whole seconds (over the course of a year) off using them.
The comments in this post made me finally switch from bash to zsh (including integrating it with autojump).
After a few hours of cobbling together a decent config, I found http://bitbucket.org/Josh/oh-my-zsh/src/ to be a way better starting point. All the defaults make a bash user feel right at home (keyboard shortcuts etc), plus it organizes all the bazillion zsh options in a sane configuration layout.
Fish is also an excellent alternative to the Perl one-liners proposed. Typing in part of a previously entered command then pressing up performs a substring search on the history. It's easy and adapted to your current usage habits.
One handy tool that I came across recently is "autojump." It lets you jump to directories by typing in a short pattern, which is matched against the names of the directories you use the most. I still use cd for short, direct changes, but autojump is nice for switching between top-level project folders and the like.
I've always felt that autojump's "jump" command could be hit or miss when you had directories with similar paths. Because of this, I wrote a tool for myself to quickly jump around to commonly used folders by using short named aliases.
The manual directory alias naming means that you can target the folder that you want much more accurately. Combined with tab-completion, this thing has become a huge productivity booster for me.
You can also say `cd -` on Bourne shells to go back to the previously visited directory. If you move from A to B in this manner and then run it again, then you will go back to A.
Also, `alias cd=pushd` to get that same zsh functionality in other Bourne shells.
Premature optimization. Spend more time learning about the tools you already have, then figure out how to shave whole seconds (over the course of a year) off using them.