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

8

Na configuração do PuTTY, há uma opção no Terminal → Recursos chamados Desabilitar a alteração do título da janela controlada por controle remoto . Sem isso ativado, a barra de título do PuTTY mudará toda vez que eu pressionar retorno 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 do 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 Mon Jan 16 16:22:28 UTC 2012 x86_64 GNU/Linux

$ cat /etc/debian_version
6.0.4
    
por Hubro 03.02.2012 / 20:39

3 respostas

6

A maioria dos programas de terminal - incluindo o konsole, putty e xterm - emulam o antigo terminal VT100. Este terminal permite que você defina certas coisas, incluindo negrito, cores, definindo o título do terminal, e assim por diante, usando sequências de caracteres especiais chamadas sequências de escape.

O shell bash tem uma variável chamada PROMPT_COMMAND que, se definida, é avaliada antes de cada prompt ser impresso (acredito que o zsh tenha algo semelhante, na verdade acho que o bash pegou o código deles). Você pode gerar sequências de escape em PROMPT_COMMAND e 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 seu terminal. Eu gosto de negrito no meu prompt, para tornar mais fácil ver o final do meu prompt. Isso torna o amarelo em negrito bom em relação ao meu plano de fundo preto padrão:

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

Olhe em volta para Linux Prompt Customization, você encontrará mais HowTos do que você saberá o que fazer com. Escolha o que você acha mais fácil de ler.

    
por 03.02.2012 / 23:22
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.

Então você terá que editar sua variável PS1 (a maior parte do tempo é definida em ~/.bashrc ), caso contrário, o bash sobrescreverá seu título toda vez que o prompt for exibido.

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

echo -e "3]0;<your string>
echo -e "3]0;<your string>%pre%7"
7"
    
por 03.02.2012 / 20:50
2

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

Precisava que outros programas soubessem quando alguns trabalhos em um servidor são feitos e se foram feitos certo ou errado. Plink stdout e stdin não estavam funcionando. Eu usei muitos ajustes com atrasos de espera e para alguns comandos que funcionavam, para outros não. XSEL e XCLIP não puderam ser instalados nesse servidor.

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

  1. Obtenha a saída do comando em um arquivo.
  2. Echo esse arquivo para o título.

No cliente Putty e no servidor SUSE, é assim:

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

Espero que alguém possa usar isso. Não funcionará para todos os tipos de servidor e configurações de cliente de massa, é claro, mas a ideia deve funcionar bem.

    
por 25.06.2015 / 13:27