I have ve been using shell-mode regularly for almost two years now.1 It has helped me a lot in staying focused on what I’ve been doing in Emacs instead of switching back and forth between the buffer and GNOME Terminal.

A recent discovery made shell-mode even snappier and more pleasant to use: xterm-color.2

By simply following the guidelines in the README you get a working setup for shell-mode. Note that there are also examples for EShell and compilation buffers, so it’s up to you to decide where you want to use xterm-color.

Honestly I complied. I only changed the default colours to match those of my favourite theme:3

(defvar mu--tomorrow-night-colours ["#1d1f21" "#cc6666"
                                    "#b5bd68" "#f0c674"
                                    "#81a2be" "#b294bb"
                                    "#8abeb7" "#c5c8c6"])
(setq xterm-color-names mu--tomorrow-night-colours
      xterm-color-names-bright mu--tomorrow-night-colours)

By the way, the ls alias I was using4 is not needed any more.