Restaurar el título del terminal Mac OS X después de cerrar una conexión SSH [duplicado]


18

Posible duplicado:
¿Cómo hago para que OS X vuelva a establecer el título del terminal al título original cuando vuelvo de ssh?

Cada vez que cierra sesión desde una conexión SSH en el terminal Mac OS X, termina con la información de inicio de sesión anterior en el título de la ventana.

La mayoría de las soluciones que he encontrado buscando en la web implica jugar con secuencias de escape, como esta pregunta o esta publicación de blog relacionada .

Parece ser un problema de SSH, no una cuestión de Terminal, por lo que me preguntaba si hay una manera más fácil de hacerlo (¿tal vez editando la configuración del cliente SSH?).

Respuestas:


26

No es un problema de SSH. El problema es que el shell en el host remoto está configurado para enviar una secuencia de escape para establecer el título de la ventana del terminal. Esta es una configuración bastante común. Las soluciones mencionadas en la publicación del blog a la que se vinculó son correctas.

La solución más simple y directa es configurar el mismo shell remoto para restablecer el título de la ventana cuando se desconecta. por ejemplo, si el shell remoto es bash, pon esto en ~ / .bash_logout:

printf '\e]0;\a'

Alternativamente, si de todos modos desea que su shell local actualice el título de la ventana con algo útil, hágalo. Cuando finaliza la conexión ssh, el shell local establecerá el título de la ventana en otra cosa en lugar de dejar el valor obsoleto. Por ejemplo, poner esto en ~ / .bashrc:

PS1='\[\e]1;\s\$ \W\a\e]2;\u@\h\a\]'"$PS1"

Esto coloca el nombre de usuario y host en el título de la ventana (que es típicamente lo que los shells remotos están configurados para hacer), y también establece el título de la pestaña para mostrar el nombre y tipo de shell (usuario normal o root) y el directorio de trabajo actual.

Tenga en cuenta que si aún no tiene un ~ / .bash_profile (o ~ / .profile), cree uno y haga que se ejecute ~ / .bashrc para que ~ / .bashrc se aplique a los shells de inicio y no inicio de sesión:

if [ -f $HOME/.bashrc ]; then
    . $HOME/.bashrc
fi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.