Come to zsh country. Seriously, if you're looking at learning a new shell (bash from tcsh, say), have a good look at zsh first. It's a seriously comfortable environment in which to live: the effort spent getting things set up in the first place is repaid many times over down the track. A huge number of really nice features *just work* in zsh, but this TEXTAREA is too small to contain a list of them: hey, maybe a nice future article?
((ps isn't there something a little *weird* about putting all the initialisations into one file? I know it's *necessary* in bash, in that the .bashrc is only executed in a non-login shell. But if .profile is used, as in the article, then any subshells are going to be alias free. And if you plonk everything in .bashrc then it won't be executed for a login shell, and that PATH variable is going to be appended to when you execute any subshell. One solution that pops to mind: separate out the bits that should be executed once from those things that need to be set every time a new shell is spawned. That is: environment variables in the first (.profile) and aliases et al in the second (.bashrc), and then add a line "source .bashrc" to the end of your .profile. Two files... multiply your fun. (All this should be read as if spoken by a character in a geeky novel.) Corrections and better suggestions welcome!))