¿Cómo elijo lo que aparece en la barra de título PuTTY de Linux?

8

En la configuración PuTTY hay una opción en Terminal → Características llamada Deshabilitar el cambio de título de la ventana controlada a distancia . Sin eso habilitado, la barra de título de PuTTY cambiará cada vez que presione Intro en la consola.

Estaba pensando que sería una solución más limpia establecer el texto de la barra de título de Linux que especificar uno para cada cliente PuTTY que tengo. Entonces, ¿dónde puedo modificar lo que Linux establece como título de la ventana?


$ uname -a
Linux drevo 2.6.32-5-amd64 # 1 SMP lun 16 de enero 16:22:28 UTC 2012 x86_64 GNU / Linux

$ cat / etc / debian_version
6.0.4
Hubro
fuente

Respuestas:

6

La mayoría de los programas de terminal, incluidos konsole, putty y xterm, emulan el antiguo terminal VT100. Este terminal le permite configurar ciertas cosas, incluyendo negrita, colores, establecer el título del terminal, etc., usando secuencias de caracteres especiales llamadas secuencias de escape.

El shell bash tiene una variable llamada PROMPT_COMMAND que, si se establece, se evalúa antes de cada solicitud que imprima (creo que zsh tiene algo similar, de hecho creo que bash les quitó el código). Puede generar secuencias de escape en PROMPT_COMMAND y establecerá su barra de título.

Esto es lo que tengo en el mío (Linux / bash):

USER=$(/usr/bin/id -un)
HOSTNAME=$(uname -n)
HOSTNAME=${HOSTNAME%%.*}
PROMPT_COMMAND='echo -ne "\e]0;$USER@${HOSTNAME}: $(pwd -P)\a"'

Puedes poner esto en tu ~ / .bashrc

Hay muchas personalizaciones que puede hacer con su terminal. Me gusta negrita en mi mensaje, para que sea más fácil ver el final de mi mensaje. Esto lo hace en negrita amarillo, bueno contra mi fondo negro predeterminado:

PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "

Mire a su alrededor para la personalización de Linux Prompt, encontrará más HowTos de los que sabrá qué hacer. Elija el que le resulte más fácil de leer.

Rich Homolka
fuente
14

El título del terminal se establece mediante secuencias de escape especiales en la salida de la consola. Por defecto, el indicador bash incluye estas secuencias de escape y establece el título en el directorio de trabajo actual.

Por lo tanto, tendrá que editar su variable PS1 (la mayoría de las veces está configurada ~/.bashrc), de lo contrario bash sobrescribirá su título cada vez que se muestre la solicitud.

Luego puede establecer el título colocando lo siguiente en un script que se ejecuta al iniciar sesión, por ejemplo ~/.profile:

echo -e "\033]0;<your string>\007"
jhenninger
fuente
Tenga en cuenta que este es el único que responde la pregunta.
Erik Aronesty
Cambie -ea -ensi desea evitar la línea en blanco adicional que emite el comando echo.
ADTC
2

He buscado en muchos foros y no he encontrado la respuesta a la pregunta:
¿Cómo hacer que todos los comandos salgan al título de Putty?

Se necesita para que otros programas sepan cuándo se realizan algunos trabajos en un servidor y si se hace bien o mal. Plink stdout y stdin no funcionaban. Usé muchos ajustes con retrasos en la espera y para algunos comandos que funcionaron, para otros no. XSEL y XCLIP no se pudieron instalar en ese servidor.

Entonces aquí está la solución:

  1. Obtener salida de comando en un archivo.
  2. Echo ese archivo al título.

En el cliente Putty y el servidor SUSE se ve así:

ls /home | grep domagaja > logutoit.txt 
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"

Esperemos que alguien pueda usar esto. Por supuesto, no funcionará para todos los tipos de servidor y configuraciones de cliente de masilla, pero la idea debería funcionar bien.

Jacek Domagała
fuente