Zsh is your friend.
- I'm using bash on Ubuntu.  When I type "kill <tab>" I get a list of process numbers, not the list of files in my current directory as you imply.<p>- shared history sounds like a bug, not a feature.   I have long lived terminals open, each dedicated to a specific purpose.   Shared history would intermingle them.<p>- typing `gut` in bash gives me:<p><pre><code>    No command 'gut' found, did you mean:
     Command 'cut' from package 'coreutils' (main)
     Command 'get' from package 'code-aster-run' (universe)
     Command 'gout' from package 'scotch' (universe)
     Command 'git' from package 'git' (main)
     Command 'gpt' from package 'gpt' (universe)
     Command 'gst' from package 'gnu-smalltalk' (universe)
</code></pre>
You're batting 0/3.   Certainly there must be some advantages to ZSH, but you haven't listed any yet.<p>(Note that I didn't have to configure any of this.  Ubuntu probably did, but I didn't).