I tried out zsh, but it had too many buggy display bits for my tastes. likely the stuff I was using in conjunction.
So I’ve stuck with bash and build a fairly solid config that works for the way I work.
A great book for learning bash is the O’Reily Learning the bash shell
FILES /bin/bash The bash executable /etc/profile The systemwide initialization file, executed for login shells ~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file ~/.bash_logout The individual login shell cleanup file, executed when a login shell exits ~/.inputrc Individual readline initialization file
This is one of my favorites: ~~~~ if [[ $- == i ]] then bind ’“(https://bitbucket.org/ryan_barrett/dotfiles) forked from michaeljsmalley (His repos do not seem to exist any longer.)