I wholeheartly agree with Jochen here.
Finally someone else writing good stuff about zsh.
I’m using this shell since 2000 where I did my first serious steps with Unix. This mainly has three reasons:
One is the “User Friendly Users Guide” available here. Besides this being an excellent introduction to zsh it is one to unix shells in general. When you’re learning unix shells using this guide, you’ll somewhat automatically stay with zsh.
The other reason is the great flexibility and expandibility. Zsh had a programmable autocomplete-feature long before bash had (or at least long before it was generally known) and even better: It came with some autocompletition functions already enabled for some tools (like tar or even scp). Programmable autocompletition allows you create special autocompletitions depending on the context you are hitting tab.
So let’s say if you are beginning to type
$ scp gnegg.dat email@example.com:~/gn
and then hit tab, zsh will actually autocomplete on the remote server(!) and create
$ scp gnegg.dat firstname.lastname@example.org:~/gnegg
for you (assuming that directory exists)
The same goes for tar (even with .gz or .bz2 compressed ones). Or cvs or svn
While gentoo provides bash-completition-config which does the same for bash, zsh was there first. And it provides many senseful completitions.
The third reason for me going with zsh is the syntax of the shell-scripts which can be configured to be much more intuitive to a C-programmer than the default-syntax, while still being more like ksh/bash than (t)csh.
So for me, switching from bash to zsh was a no-brainer back in 2000. And as with the text-editors: Once you use a certain tool, you will not change it afterwards.
I strongly recommend you to take a look at zsh too.