#emacs eshell is my main shell now. I use it with John Wiegleys em-smart.el which emulates Plan 9's 9term and added #bash completion, because seriously I can't work without that. You can find my eshell config here: https://github.com/steckerhalter/steckemacs.el/blob/7220d4bfc4f01b289ba548d6aa1fd1cd74ec986f/steckemacs.el#L844