I’m faced with a tough decision: Which shell(s) to use on my Linux machines.
Up until now, I’ve been using tcsh with vi keybindings and a csh prompt for daily tasks and ksh with vi keybindings for system admin tasks (just like the venerable UNIX System V Release 4 systems I love). But there are a few problems with this setup: tcsh uses C-shell syntax so looping over the contents of a directory by shell glob is much more difficult than it is with a bourne shell. But I just don’t feel right using ksh for everyday tasks. At the very least, I like to use a “pedestrian” shell like tcsh (you, know, something with a % sign prompt).
Bash is the system default shell. It’s the GNU preferred shell and what gets shebanged by all the system initscripts. tcsh is very satisfying to use but its limitations are evident with daily use. ksh is powerful and flexible but the preferred prompt doesn’t list command history entry number. Bash provides tons of flexibility and gives important info in the prompt but I’ve never liked it (no vi keybindings). zsh is super-flexible and is a bourne shell with a C-shell prompt syntax so it might be exactly what I’m looking for.
So I’m asking you guys to help me settle on two prompts: one for daily use and one for system admin tasks.
The systems are Red Hat Enterprise Linux and openSUSE. Default system and user shell on both is Bash. My other boxen are Suns. Default system shell is Bourne. Default user shell is csh, default power user shell is ksh. Shells not available on my Linux boxen: Bourne shell, dash.