Alterando a cor sh em .bashrc

1

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

Quando digito isso

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

Eu obtenho exatamente o que quero. Tudo é verde e é aplicado apenas para o usuário root, para que eu possa distinguir o root de outros usuários.

No entanto, quando eu coloco este código (sem "export") em /root/.bashrc , eu recebo esse efeito quando eu mudo o shell atual para bash usando o comando bash .

Exemplo:

Comopossofazermeushellverde,semalternarpara"bash" toda vez que eu conectar, ou seja, como posso aplicar isso ao shell padrão também?

Debian 8.3 (Jessie) is used here

    
por bytecode77 13.02.2016 / 01:41

1 resposta

2

O problema é que ~/.bashrc não é lido por shells de login e, portanto, ele não é lido pelo shell obtido ao efetuar login via SSH.

Como você já notou, ~/.profile é lido por shells de login, então é uma maneira de definir a cor, mas isso não afeta o MOTD.

No Debian, o MOTD é armazenado em /etc/motd ; aqui está um comando que irá anexar as seqüê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

O\e[0;32mdefiniráacorparaverdenoinício,o\e[0mredefinirátodososatributosnofinal;Destaforma,oMOTDéalteradosemafetaroqueéimpressodepois;Sevocênãoquiserredefinirosatributosnofinal(afetandooqueéimpressoapósoMOTD),apenassolteoúltimocomando:

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