I use a variety of shells, but I mainly use 3:
Default (Preferred) Shell
bash - available on most systems (but an option extra on BSD systems), preferred for general interactive and scripting uses
Secondary Shell
zsh - Behaves like bash, but also provides a watch variable to monitor specific user logins/logouts. I use zsh on multi user systems where I find a watch variable useful.
System Testing Shell
tcsh - Being an admin of various BSD systems, I also use tcsh, mainly to pretend to be an average user with no environment customisations