Just curious, why do you prefer shell instead of term or ansi-term?
Both of those other modes have better support for curses applications and act closer to an actual terminal emulator than M-x shell does.
Also, if you like term, you can use the "multi-term" script (http://www.emacswiki.org/emacs/multi-term.el), which will automatically open a new terminal window with M-x multi-term, and you can cycle through your open terminals with M-x multi-term-next and multi-term-prev