Como escolho o que aparece na barra de título do PuTTY no Linux?

8

Na configuração do PuTTY, há uma opção no Terminal → Recursos denominados Desativar alteração do título da janela com controle remoto . Sem isso ativado, a barra de título do PuTTY mudará toda vez que eu pressionar retornar no console.

Eu estava pensando que seria uma solução mais limpa definir o texto da barra de título do Linux do que especificar um para cada cliente PuTTY que eu tenho. Então, onde posso modificar o que o Linux define como o título da janela?


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

$ cat / etc / debian_version
6.0.4
Hubro
fonte

Respostas:

6

A maioria dos programas de terminal - incluindo konsole, putty e xterm - emula o antigo terminal VT100. Esse terminal permite definir certas coisas, incluindo negrito, cores, definir o título do terminal etc., usando seqüências de caracteres especiais chamadas seqüências de escape.

O shell bash possui uma variável chamada PROMPT_COMMAND que, se configurada, é avaliada antes de cada prompt impresso (eu acredito que o zsh tem algo parecido, na verdade acho que o bash tirou o código deles). Você pode produzir seqüências de escape em PROMPT_COMMAND e ele definirá sua barra de título.

Isto é o que eu tenho no meu (Linux / bash):

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

Você pode colocar isso no seu ~ / .bashrc

Existem muitas personalizações que você pode fazer com o seu terminal. Eu gosto de negrito no meu prompt, para facilitar a visualização do final do meu prompt. Isso torna o amarelo arrojado, bom contra o meu fundo preto padrão:

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

Olhe em volta para Personalização de Prompt do Linux, você encontrará mais HowTos do que saberá o que fazer. Escolha o que você achar mais fácil de ler.

Rich Homolka
fonte
14

O título do terminal é definido usando seqüências de escape especiais na saída do console. Por padrão, o prompt do bash inclui essas seqüências de escape e define o título para o diretório de trabalho atual.

Portanto, você terá que editar sua variável PS1 (na maioria das vezes em que está definida ~/.bashrc), caso contrário, o bash substituirá seu título toda vez que o prompt for exibido.

Você pode definir o título colocando o seguinte em um script que é executado quando você faz login, por exemplo ~/.profile:

echo -e "\033]0;<your string>\007"
jhenninger
fonte
Observe que este é o único que responde à pergunta.
Erik Aronesty
Mude -epara -ense desejar evitar a linha em branco extra que é emitida pelo comando echo.
ADTC
2

Eu procurei em muitos fóruns e não encontrei a resposta para a pergunta:
Como obter toda a saída do comando para o título Putty?

É necessário que outros programas saibam quando alguns trabalhos em um servidor estão concluídos e se estão certos ou errados. Plink stdout e stdin não estavam funcionando. Eu usei muitos ajustes com atrasos de espera e para alguns comandos que funcionaram, para outros não. Não foi possível instalar o XSEL e o XCLIP nesse servidor.

Então, aqui está a solução:

  1. Obter saída do comando em um arquivo.
  2. Faça eco desse arquivo no título.

No cliente Putty e no servidor SUSE, fica assim:

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

Espero que alguém seja capaz de usar isso. É claro que não funcionará para todos os tipos de servidor e configurações de massa de vidraceiro, mas a ideia deve funcionar bem.

Jacek Domagała
fonte