Zsh is a shell for Un*x systems that has been around since 1990 and is more sophisticated and configurable than most shells out there. There are lots of features, such as:

Context-based completion of many functions (like remote filename completion in ssh, makefile targets, configure scripts, and much more), which is highly configurable.
A powerful programming language with complex pattern matching mechanism (a pattern like **/*(^/) matches all (non-hidden) files in all subdirectories, but not directories themselves)
Lots of CLI (Command Line Interface) options and bindkeys
Loadable module support for adding builtin commands

Zsh has a very good User Guide. This wiki doesn’t aim to take its place, but to provide an accessible outline of all the features of Zsh (with some nifty specifics!), provide examples of use, and foster a Zsh community.

You might also enjoy: