Ventana GNU Pantalla renombrar molestia

13

Me gusta abrir una sesión de pantalla con conexiones SSH previamente abiertas a los servidores principales que administro en la oficina. Le doy a estas ventanas un nombre muy breve, generalmente de 2 a 4 caracteres, para que aparezcan en la barra de estado de la pantalla con esos nombres. Así que tendré una entrada de pantalla que se parece a

0$ jen1 ...

Ahora, cuando necesito cambiar a ese servidor y hacer algo tan simple como buscar una lista de directorios, ese nombre se expande de repente y se convierte en

0$ ghellings@devjenkins01

Lo mismo sucede con todas y cada una de las ventanas a medida que accedo, haciendo que mi barra de estado desborde rápidamente el ancho horizontal de mi pantalla. Me gustaría bloquear el nombre en su lugar en el momento de creación de la ventana y evitar que las aplicaciones del cliente lo cambien. No quiero que ninguna aplicación pueda cambiar el título de la ventana de la pantalla (todo lo contrario de lo que mucha gente parece preguntar). Esto se vuelve especialmente engorroso una vez que cambio a esa pantalla y abro un directorio en alguna parte. Entonces el título de la pantalla se convierte

 (0*$ ghellings@devjenkins01:/opt/somepackage/software/subdirectory)

Quiero que solo cambie el estado activo para que siempre lea

`0$ jen1` or `(0*$ jen1)`

¿Hay alguna manera de bloquear el nombre de la ventana y evitar cambiarlo?

Greg Hellings
fuente

Respuestas:

8

Encontré esto al principio en las pruebas de RHEL 7 y me volvería loco. Lo que descubrí es que hubo un cambio /etc/bashrcen RHEL 7 que causa el nombramiento de ventanas screeny tmuxcambia cada vez que se ejecuta cdo lsse ejecuta un comando . En la sección de pantalla *)

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
## RHEL 7
    PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'

## RHEL 6
    PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

Entonces en RHEL 7 el cambio fue de ] 0; to k en la sección PROMPT_COMMAND.

Había considerado abrir un error, pero nunca lo logré. Por lo general, solo lo cambio manualmente en una instalación nueva.

  • Cambios realizados para actualizar el formato
Willg
fuente
6

Lo más probable es que tenga la PROMPT_COMMANDvariable establecida en algo como

printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

Tengo exactamente esto en un sistema CentOS 7. Esto establece el título de la ventana xterm después de cada comando, que se screenutiliza como título de la ventana.

Sólo desarmado PROMPT_COMMANDen su .bashrco editar /etc/bashrca lo fije.

katti
fuente
Vea a continuación para hacer esto más permanente.
matemáticas
2

Si marca .bashrco /etc/bashrc, puede ver ifo con casequé está relacionado screen.

En mi caso, fue algo como:

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
    PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

debajo case $TERM inen el /etc/bashrcarchivo.

El problema era que no tenía el archivo, /etc/sysconfig/bash-prompt-screenpor lo que se usa PROMPT_COMMANDdebajo else.

¡Acabo de hacer un /etc/sysconfig/bash-prompt-screenarchivo vacío y los títulos de las ventanas de pantalla ya no se cambian dinámicamente!

GyuHyeon Choi
fuente
Debe hacer que el archivo vacío sea ejecutable o recibirá una advertencia cada vez que se inicie bash (por ejemplo, al iniciar sesión para todos).
matemáticas