Descrição do problema
Essa é a maneira errada de definir cores para ls . ls usa as cores do terminal da mesma maneira que o prompt. Quando dev é colorido de marrom por ls , isso acontece de maneira semelhante a isso:
\[3[0;33\]dev\[3[0m\]
E a cor do terminal é trocada de volta para a cor normal ( \[3[0m\] ). A partir daí, a cor regular é usada para exibir o texto, até Documents quando é mudado para marrom e volta para o normal novamente.
Basicamente, é uma má ideia ter um prompt que deixe uma cor de terminal ligada:
PS1='${debian_chroot:+($debian_chroot)}\[3[00;37m\]\u@\h:\w\$\[3[01;33m\] '
Em vez disso, você deve sempre mudar a cor para regular:
PS1='${debian_chroot:+($debian_chroot)}\[3[00;37m\]\u@\h:\w\$\[3[0m\] '
Em seguida, use a variável de ambiente LS_COLORS para alterar a maneira como ls imprime as cores.
Hack
ls é aliased para como:
alias ls='ls --color'
Na maioria das distribuições linux hoje. Remover esse alias é uma maneira de fazer com que seu prompt de hacky funcione com ls . Mas essa não é uma boa solução e você provavelmente sofrerá problemas com outros programas.
Solução adequada
Se você realmente quer mudar a cor padrão do texto no terminal, você deve configurá-lo no próprio emulador de terminal. Praticamente todos os emuladores de terminal ( gnome-terminal , xfce-terminal , kterm ) têm uma seção de configuração onde a cor padrão (regular) pode ser definida.
Em xterm e rxvt variants, a cor padrão pode ser definida em ~/.Xresources .
