Cuando entro en un servidor remoto, me gusta que cambien los colores del terminal. Lo uso setterm
en mi archivo remoto ~ / .bashrc para hacer esto. Sin embargo, cuando I exit
, los colores del terminal no se restablecen a los locales.
Resolví el problema, pero no estoy seguro de si es la mejor solución. Esto es lo que se me ocurrió.
En el ~ / .bash_logout en el servidor remoto, puse:
echo -e "\033[0m"
/usr/bin/clear
Solo por curiosidad: ¿Alguien sabe de una mejor manera? (Obtuve la echo -e "\033[0m"
línea de http://edoceo.com/liber/linux-bash-shell )
tput
para cambiar los colores. Búscalo.PS1
)?Respuestas:
Mejor:
tput sgr0
normalmente es el equivalente deecho -en "\e[0m"
La diferencia es que el uso de tput se adaptará si el tipo de terminal no es ANSI, y se ha configurado correctamente.
man 5 terminfo
para más códigos para usar.Allí encontrarás 'reset', así que
tput reset
debería funcionar.(Las impresiones de PRUEBA deben tener colores de fondo / primer plano intercambiados, no se pueden mostrar aquí, solo "emulados")
Encontré otra opción para esto , una forma menos geek:
El paquete util-linux (en ubuntu) contiene
setterm
(utilidad de shell).escriba
setterm --help
y encontrará las opciones disponibles.La salida REAL de
tput sgr0
... depende de cómo esté configurado su terminal, por ejemplo
por lo anterior
Explore más, comience aquí tal vez https://en.wikipedia.org/wiki/Terminfo
Guía del programador para ncurses - google books
nota: ncurses proporciona interfaces para termcap, terminfo y, por supuesto, maldiciones.
fuente
echo -e "\e \033 \x1b " | od -t x1z
- ¿Cuál es más legible?tput sgr0
devuelve algo diferente de\e[0m
, mira esto:a=$(tput sgr0); set | grep ^a=
y mira el resultado. ¿También puede decir cuál es lasetterm
opción equivalente para\e[0m
?\e[0m
o lo mismo\e[m
es para terminales de tipo ANSI, tput sgr0 podría proporcionarle algo completamente diferente si su terminal no es ANSI. No puede estar seguro ni siquiera para los terminales ANSI, ya que el que realmente está utilizando podría haberse configurado de manera diferente en la base de datos terminfo.TERM=ansi a=$(tput sgr0); set | grep ^a=
y el resultado esa=$'\E[0;10m'
. Esto se ve diferente de\e[0m
\e(B\e[m
: ¡espere diferencias!Creo que estás buscando el comando de consola "reset"
fuente
Puede encontrar el uso de esto en el .bash_logout remoto más apropiado:
Puede ser bueno tener esto en cada .bash_logout como una buena práctica general (y tal vez incluso en ~ / .profile)
fuente
Si coloca los colores que desea en el ~ / .bashrc de la cuenta remota, debería tener efecto al iniciar sesión y volver a su configuración local al salir.
fuente