Quand je ssh dans un serveur distant, j'aime que les couleurs du terminal changent. J'utilise setterm
sur mon fichier ~ / .bashrc distant pour faire cela. Cependant, lorsque je exit
, les couleurs de terminal ne sont pas réinitialisées aux couleurs locales.
J'ai résolu le problème, mais je ne sais pas si c'est la meilleure solution. Voilà ce que je pourrais trouver.
Sur le ~ / .bash_logout sur le serveur distant, je mets:
echo -e "\033[0m"
/usr/bin/clear
Par curiosité: quelqu'un connaît-il un meilleur moyen? (J'ai obtenu la echo -e "\033[0m"
ligne de http://edoceo.com/liber/linux-bash-shell )
tput
plutôt d' utiliser pour changer les couleurs. Cherchez-le.PS1
)?Réponses:
Mieux:
tput sgr0
est normalement l'équivalent deecho -en "\e[0m"
La différence est que l'utilisation de tput s'adaptera si le type de terminal n'est pas ANSI - et qu'il a été configuré correctement.
man 5 terminfo
pour plus de codes à utiliser.Là-bas, vous trouverez «réinitialiser» et
tput reset
devrait donc fonctionner.(Les impressions TEST doivent avoir des couleurs d'arrière-plan / de premier plan permutées, ne peuvent pas être affichées ici - uniquement "émulées")
Trouvé une autre option pour cela , une manière moins geek:
le paquet util-linux (sur ubuntu) contient
setterm
(utilitaire shell).tapez
setterm --help
et vous trouverez les options disponibles.La sortie RÉELLE de
tput sgr0
... dépend de la configuration de votre terminal, par ex.
pour ce qui précède.
Explorez plus, commencez ici peut-être https://en.wikipedia.org/wiki/Terminfo
Guide du programmeur de ncurses - Google Books
note: ncurses fournit des interfaces pour termcap, terminfo et bien sûr curses.
la source
echo -e "\e \033 \x1b " | od -t x1z
- lequel est le plus lisible?tput sgr0
renvoie quelque chose de différent\e[0m
, regardez ceci:a=$(tput sgr0); set | grep ^a=
et voyez le résultat. Pouvez-vous également indiquer à quoi sert l'setterm
option équivalente\e[0m
?\e[0m
ou l'équivalent\e[m
est pour les terminaux de type ANSI, tput sgr0 peut vous donner quelque chose de complètement différent si votre terminal n'est pas ANSI. Vous ne pouvez pas être sûr, même pour les terminaux ANSI, car celui que vous utilisez réellement peut avoir été configuré différemment dans la base de données terminfo.TERM=ansi a=$(tput sgr0); set | grep ^a=
et le résultat esta=$'\E[0;10m'
. Cela semble différent de\e[0m
\e(B\e[m
- attendez-vous à des différences!Je crois que vous recherchez une commande de console "reset"
la source
Vous trouverez peut-être plus approprié d'utiliser ceci dans le .bash_logout distant:
Il pourrait être bon de l'avoir sur chaque .bash_logout comme bonne pratique générale (et peut-être même sur ~ / .profile)
la source
Si vous mettez les couleurs souhaitées dans le ~ / .bashrc du compte distant, cela devrait prendre effet à la connexion et revenir à vos paramètres locaux à la sortie.
la source