2 votos

¿Cómo restablecer el título de la ventana/pestaña de iTerm2 al desconectarse del host remoto?

Tengo mi bash_profile en mi Mac y los ordenadores remotos a los que me conecto configurados para poner automáticamente el nombre de host en el área de título de la ventana (o pestaña).

Un shell bash en mi máquina local

Local Apple Account

Un nombre de host remoto "Sócrates"; también un shell bash.

Remote Shell Window

El problema es que, cuando salgo (y me desconecto) del host remoto, el título de la ventana se queda con el nombre del host remoto. Así que, en efecto, estoy en el shell local Apple bash con el nombre remoto. Para solucionarlo, hago una de las siguientes cosas:

  • cerrar la ventana y abrir una nueva
  • reaprovisionar el .bash_profile ( . ~/.bash_profile )
  • crear un nuevo sub shell ejecutando el comando bash (nada deseable)

¿Cómo puedo hacerlo? automáticamente ¿para que cuando salga de un shell remoto, el título vuelva al nombre original del host para saber a qué host estoy realmente conectado?

Nota, la pregunta formulada anteriormente, El terminal muestra el directorio de la ubicación SSH anterior incluso cuando no se está ejecutando SSH. no abordaba adecuadamente el problema porque la solución consistía en modificar .bash_logoff que sólo funcionaba para las conchas de inicio de sesión.

0 votos

No estoy seguro de que esto no sea un dpulicado, la respuesta en el otro post también ofrece una solución sin usar .bash_logout . Y la respuesta que has puesto a continuación también sería igualmente válida para la otra pregunta.

5voto

Douglas Puntos 10417

La solución a este problema se resuelve utilizando los Códigos de Control de Terminal (Esc 22 y 23) y colocando cuatro simples líneas en .bashrc del host remoto:

# ~/.bashrc
#
# Set the Terminal Title

echo -ne "\033[22;0t"                     #Save Title on Stack
echo -ne "\033]0;${HOSTNAME}\007"         #Set New Title

trap 'echo -ne "\033[23;0t"'  EXIT        #Reset Title Window

Cómo funciona

Utilizando el Terminal Escape Secuencia Códigos 22 y 23 podemos guardar y recuperar el título original. En trap función ( man bash ) ejecutará un comando cuando se reciba una señal; en este caso al salir.

Ahora, cuando salgo (termino) del host remoto, el título vuelve al nombre de host correcto.

¿Por qué .bashrc?

Quiero tener esto a mi disposición tanto si me conecto al host desde una máquina remota (lo más habitual) como si lo hago localmente. .bash_profile se lee para un shell de inicio de sesión interactivo y .bashrc se lee para un shell interactivo, no de inicio de sesión (local) se inicia.

Para garantizar .bash_profile :

# run a .bashrc file if it exists.

test -f ~/.bashrc && . ~/.bashrc

0 votos

W

0 votos

@

0 votos

A

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X