Yes really! I prefer its for loops over those of bash: filenames with spaces are no problem . I prefer they way it assembles environment variables: it is easy to put quotes and spaces in them. Tab completion is better: again filenames with spaces plus looping through matches (which I have just discovered bash can do too).
A set of unix/GNU tools does improve it further. I'm just sorry that it costs so much money.
try writing your own server with cmd.exe (bash can do it in 164 lines see: https://github.com/sayanriju/Tiny-Bash-Server/blob/master/us... ).
Nothing special in my .bashrc, just whatever came with lubuntu. Here are the only interesting tweaks. The prompt is two lines, first line = $? from the previous command, then some normal stuff; second line is whatever you type for a command, allows triple clicking and just get the command with no prompt cruft.
...
if [ "$color_prompt" = yes ]; then
PS1="\[\033[01;32m\]\$?] ${debian_chroot:+($debian_chroot)}\[\033[01;34m\]\u\[\033[01;32m\]@\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\] \$\n"
else
PS1="\$?] ${debian_chroot:+($debian_chroot)}\u@\h \w \$\n"
fi
unset color_prompt force_color_prompt
...
export PAGER=~/bin/vimpager
My .inputrc, allows any readline enabled prog like pgsql to have command line editing and completion: set editing-mode vi
set completion-ignore-case on
Control-j: menu-complete
Control-k: menu-complete-backward
set completion-map-case on
In general, don't use set -o vi on the cmd line or in .bashrc, use .inputrc so that everyone who can play does play.Bash is actually suprisingly powerful. You might want to have a look at the Bash Reference manual over at gnu.org.
ksh - I feel I may be amongst a small but proud crowd.