Alterando a cor sh em .bashrc

Alterando a cor sh em .bashrc

Estou tentando mudar a cor do meu shell ao qual me conecto usandoMassa.

Quando eu digito isso

export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h:\w\$ '

Eu consigo exatamente o que quero. Tudo éverdee é aplicado apenas ao usuário root para que eu possa distinguir o root de outros usuários.

Porém, quando coloco esse código(sem "exportação")in /root/.bashrc, obtenho esse efeito quando altero o shell atual para bash usando o comando bash.

Exemplo:

exemplo

Como posso deixar meu shell verde, sem mudar para "bash" toda vez que me conecto, ou seja, como posso aplicar isso também ao shell padrão?

Debian 8.3 (Jessie) é usado aqui

Responder1

O problema é ~/.bashrcque não é lido pelos shells de login e, portanto, não é lido pelo shell que você obtém ao fazer login via SSH.

Como você já percebeu, ~/.profileé lido pelos shells de login, então é uma forma de definir a cor, mas não afeta o MOTD.

No Debian, o MOTD é armazenado em /etc/motd; aqui está um comando que anexará as sequências de escape corretas no início e no final do arquivo:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd; printf '\e[0m' | sudo tee -a /etc/motd

captura de tela

O \e[0;32mirá definir a cor para verde no início, e \e[0mirá redefinir todos os atributos no final; desta forma o MOTD é alterado sem afetar o que é impresso depois; se você não quiser redefinir os atributos no final (afetando o que é impresso após o MOTD), basta descartar o último comando:

printf '\e[0;32m' | sudo perl -i -pe 'if($. == 1) { $_ = <STDIN>.$_ }' /etc/motd

informação relacionada