Quando ssh em um servidor remoto, gosto de mudar as cores do terminal. Eu uso setterm
no meu arquivo ~ / .bashrc remoto para fazer isso. No entanto, quando eu exit
, as cores do terminal não são redefinidas para as locais.
Resolvi o problema, mas não tenho certeza se é a melhor solução. Isso é o que eu poderia inventar.
No arquivo ~ / .bash_logout no servidor remoto, coloquei:
echo -e "\033[0m"
/usr/bin/clear
Apenas por curiosidade: alguém sabe de uma maneira melhor? (Eu recebi a echo -e "\033[0m"
linha em http://edoceo.com/liber/linux-bash-shell )
tput
para mudar as cores. Procure.PS1
)?Respostas:
Melhor:
tput sgr0
normalmente é o equivalente aecho -en "\e[0m"
A diferença é que o uso do tput se adaptará se o tipo de terminal for diferente de ANSI - e foi configurado corretamente.
man 5 terminfo
para mais códigos usar.Lá você encontrará 'reset', então
tput reset
deve funcionar.(As impressões TEST devem ter trocado as cores de segundo plano / primeiro plano, não podem ser mostradas aqui - apenas "emuladas")
Encontrou outra opção para isso , de uma maneira menos nerd:
o pacote util-linux (no ubuntu) contém
setterm
(utilitário shell).digite
setterm --help
e você encontrará as opções disponíveis.A saída REAL de
tput sgr0
... depende de como o seu terminal está configurado, por exemplo
para o acima.
Explore mais, comece aqui talvez https://en.wikipedia.org/wiki/Terminfo
Guia do programador para ncurses - google books
nota: ncurses fornece interfaces para termcap, terminfo e, claro, maldições.
fonte
echo -e "\e \033 \x1b " | od -t x1z
- qual é o mais legível?tput sgr0
retorna algo diferente de\e[0m
, veja isto:a=$(tput sgr0); set | grep ^a=
e veja o resultado. Você também pode dizer qual é asetterm
opção equivalente\e[0m
?\e[0m
ou o equivalente\e[m
é para terminais do tipo ANSI, tput sgr0 pode fornecer algo totalmente diferente se o seu terminal não for ANSI. Você não pode ter certeza, mesmo para os terminais ANSI, pois o que você está realmente usando pode ter sido configurado de maneira diferente no banco de dados terminfo.TERM=ansi a=$(tput sgr0); set | grep ^a=
eo resultado éa=$'\E[0;10m'
. Isso parece diferente de\e[0m
\e(B\e[m
- espera diferenças!Acredito que você esteja procurando pelo comando do console "reset"
fonte
Você pode usar esse recurso no .bash_logout remoto mais apropriado:
Pode ser bom ter isso em todos os .bash_logout como uma boa prática geral (e talvez até em ~ / .profile)
fonte
Se você colocar as cores desejadas no ~ / .bashrc da conta remota, ela entrará em vigor no login e reverterá para as configurações locais ao sair.
fonte