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
.