El comando de pantalla establece el título del shell al nombre de host actual

El comando de pantalla establece el título del shell al nombre de host actual

Me gustaría saber cómo puedo configurar el título del shell con el nombre del host en el que estamos conectados actualmente. Mi escenario es así. Inicio sesión en el host A, luego abro la pantalla y creo varias ventanas nuevas y hago ssh a diferentes hosts en esas ventanas. Entonces, me gustaría que el título de la pantalla en la parte inferior muestre el host actual en el que se encuentra. Estoy hablando de esta cadena en particular en la parte inferior.

Respuesta1

Una forma de hacerlo es utilizar la LocalCommandfunción de ssh. Con este método, se imprimirá una secuencia de escape para cambiar el título del terminal después de una conexión exitosa a un host remoto.

Edite o cree ~/.ssh/configpara incluir algo como:

Host *
    PermitLocalCommand yes
    LocalCommand printf '\033]0;%%s\007' '%h'

La desventaja de este método es que el título permanece cambiado después de cerrar sesión en el servidor remoto. Puedes solucionar eso con:

printf '\033]0;%s\007' "$(uname -n)"

Si desea automatizar esto, puede utilizar una función:

lssh () {
    /path/to/ssh "$@"
    printf '\033]0;%s\007' "$(uname -n)"
}

Esta respuesta supone que su emulador de terminal usa elmismas secuencias de escapecomo XTerm. Si este no es el caso, debes consultar la documentación de tu emulador de terminal específico.

Una advertencia en el caso de la pantalla GNU es que una única ventana de terminal puede contener varias ventanas virtuales. En ese caso, podría utilizar una secuencia de escape diferente ( \033k%s\033\\) para establecer el título interno de una única ventana virtual.

información relacionada