All aliases in ~/.bashrc are listed in emacs shells.
I already had have ansi-color-for-comint-mode-on set.
execution of ls traces to /bin/ls

Maybe i was not clear in the beginning, the emacs shell can show colors, but not to my customization, for example, I customized it to show executables in purple, it still show them in red. While a regular terminal shows the desirable purple color for executables (as in below, left is regular terminal, right is emacs shell).

On Mon, Jan 9, 2012 at 4:53 AM, Peter Dyballa <Peter_Dyballa@web.de> wrote:

Am 9.1.2012 um 02:05 schrieb Yuan Luo:

> alias l='ls -CF'
> alias la='ls -A'
> alias ll='ls -alF'
> alias ls='ls --color=auto'
>
> Anything noticeable?

IMO it's not recommended to use the same symbol, "ls", left and right of the equals sign. I recommend to use the full pathname of the ls programme when this programme is meant.

Are all aliases from ~/.bashrc listed inside GNU Emacs?

Can you trace the execution of the ls alias?

Have you tried to use the more ANSI compliant "term" function/emulation?

It can be that you need to set up the *shell* buffer to actually show colours (*term* has it activated by default, by its more complete compliance to ANSI):

   (add-hook 'shell-mode-hook (lambda ()
       (ansi-color-for-comint-mode-on)))

Check your GNU Emacs documentation on this topic!

--
Greetings

 Pete

The most exciting phrase to hear in science, the one that heralds new discoveries, is not "Eureka!" (I found it!) but "That's funny..."
                               – Isaac Asimov