Some of the things ZSH can do:
- Tab completion, but more advanced than bash. It ships with completion for Portage, including emerge. Some other examples - say you type killall<tab>, it will come up with a list of process names to kill. If you type modprobe <tab>, it will come up with a list of available module names for your current kernel. If you type ls -<tab>, it ill come up with a list of options for ls. There are literally hundreds (maybe more?) commands with tab completion in zsh.
- Lots of builtin functions. ZSH has built in functions such as preexec() and chpwd(). If you're wondering why the hell that's of any use, I'll give you an example. I wrote a function for my zshrc that renames the terminal title or the screen window title depending on what was last run. After that is finished, it sets the title to user@host:/workdir. Have a look.
- Mail checking. Although bash has a little-known environment variable to control this, it can only handle Unix-style spool mbox's. If you compile ZSH with the maildir USE flag, it can handle maildirs/MHs too.
- Right sided prompt. Using the RPROMPT environment variable, you can have a prompt on the right hand side too.
- MIME. Use the mailcap/mime.types files, ZSH knows what to load when you enter a path leading to a file of such and such MIME type. If I set up everything ending in ogg to be run by ogg123, every time a enter a path to an ogg file, it will play it.
- Maturity. ZSH has been going since 1990, and is still actively developed.
http://edgeoftheinterweb.org.uk/docs/zsh/unzip.png
http://edgeoftheinterweb.org.uk/docs/zsh/option.png
http://edgeoftheinterweb.org.uk/docs/zsh/mailbox.png
ZSH is not difficult to learn. In fact, in nearly all basic cases, it is syntactically the same as bash. Although ZSH is more closely related to KSH, you can barely notice the difference with bash until you start moving on to more advanced scripting, at which point ZSH's refined syntax really comes into its own. For tcsh and csh weirdos, there are options to make the shell immitate these.
I know that at least three Gentoo developers use ZSH - spider, rac and usata. I'm sure there are more.
Spider put up his zshrc around which most of mine is based on, however, I have added many things to mine. That lives here. Mine is up here. It might be slightly out of date and missing the MIME stuff I just found out about as I can't get weex to compile on amd64 and I'm too tired/drunk to upload by hand.
More reading:
http://zsh.sunsite.dk/Intro/intro_toc.html - An introduction to ZSH.
http://www.acm.uiuc.edu/workshops/zsh/toc.html - The ZSH workshop.
http://www.zsh.org/ - The ZSH homepage.







