
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:
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 é ~/.bashrc
que 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
O \e[0;32m
irá definir a cor para verde no início, e \e[0m
irá 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