Come faccio a scegliere ciò che appare nella barra del titolo PuTTY di Linux?


8

Nella configurazione PuTTY c'è un'opzione in Terminale → Funzionalità chiamata Disabilita modifica del titolo della finestra telecomandata . Senza quello abilitato, la barra del titolo di PuTTY cambierà ogni volta che premo Invio nella console.

Pensavo che sarebbe stata una soluzione più pulita per impostare il testo della barra del titolo da Linux piuttosto che specificarne uno per ogni client PuTTY che ho in giro. Quindi, dove posso modificare ciò che Linux imposta come titolo della finestra?


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

$ cat / etc / debian_version
6.0.4

Risposte:


6

La maggior parte dei programmi terminali - tra cui konsole, putty e xterm - emula il vecchio terminale VT100. Questo terminale consente di impostare determinate cose, tra cui grassetto, colori, impostazione del titolo del terminale e così via, utilizzando sequenze di caratteri speciali chiamate sequenze di escape.

La shell bash ha una variabile chiamata PROMPT_COMMAND che, se impostata, viene valutata prima di ogni prompt stampato (credo che zsh abbia qualcosa di simile, in effetti penso che bash abbia preso il codice da loro). Puoi generare sequenze di escape in PROMPT_COMMAND e imposterà la barra del titolo.

Questo è ciò che ho nel mio (Linux / bash):

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

Puoi metterlo nel tuo ~ / .bashrc

Ci sono molte personalizzazioni che puoi fare con il tuo terminale. Mi piace il grassetto nel mio prompt, per rendere più facile vedere la fine del mio prompt. Questo lo rende audace giallo, buono contro il mio sfondo nero predefinito:

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

Cerca la personalizzazione rapida di Linux, troverai più HowTos di quanti ne saprai fare. Scegli quello che trovi più facile da leggere.


14

Il titolo del terminale viene impostato usando sequenze di escape speciali nell'output della console. Per impostazione predefinita, il prompt di bash include queste sequenze di escape e imposta il titolo sulla directory di lavoro corrente.

Quindi dovrai modificare la tua variabile PS1 (la maggior parte delle volte è impostata ~/.bashrc), altrimenti bash sovrascriverà il tuo titolo ogni volta che viene visualizzato il prompt.

È quindi possibile impostare il titolo inserendo quanto segue in uno script che viene eseguito quando si accede, ad esempio ~/.profile:

echo -e "\033]0;<your string>\007"

Nota, questo è l'unico che risponde alla domanda.
Erik Aronesty,

Passare -ea -ense si desidera evitare la riga vuota aggiuntiva che viene emessa dal comando echo.
ADTC,

2

Ho cercato in molti forum e non ho trovato la risposta alla domanda:
come ottenere l'output di tutti i comandi nel titolo Putty?

Necessario per altri programmi per sapere quando alcuni lavori su un server sono stati eseguiti ed è fatto nel modo giusto o sbagliato. Plink stdout e stdin non funzionavano. Ho usato molte modifiche con ritardi nell'attesa e per alcuni comandi che hanno funzionato, per altri no. XSEL e XCLIP non possono essere installati su quel server.

Quindi ecco la soluzione:

  1. Ottieni l'output del comando in un file.
  2. Eco quel file al titolo.

Sul client Putty e sul server SUSE è simile al seguente:

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

Spero che qualcuno sarà in grado di usarlo. Ovviamente non funzionerà per tutti i tipi di server e le impostazioni del client putty, ma l'idea dovrebbe funzionare bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.