
Gostaria de saber como posso definir o título do shell para o nome do host no qual estamos logados no momento. Meu cenário é assim. Eu entro no host A, abro a tela e crio várias novas janelas e ssh para diferentes hosts nessas janelas. Então, eu gostaria que o título da tela na parte inferior mostrasse o host atual em que ela está.
Responder1
Uma maneira de fazer isso é usar o LocalCommand
recurso do ssh
. Com este método, uma sequência de escape para alterar o título do terminal será impressa após uma conexão bem-sucedida a um host remoto.
Edite ou crie ~/.ssh/config
para incluir algo como:
Host *
PermitLocalCommand yes
LocalCommand printf '\033]0;%%s\007' '%h'
A desvantagem desse método é que o título permanece alterado após o logout do servidor remoto. Você pode contornar isso com:
printf '\033]0;%s\007' "$(uname -n)"
Se quiser automatizar isso, você pode usar uma função:
lssh () {
/path/to/ssh "$@"
printf '\033]0;%s\007' "$(uname -n)"
}
Esta resposta pressupõe que seu emulador de terminal usa omesmas sequências de escapecomo XTerm. Se este não for o caso, você deve verificar a documentação do seu emulador de terminal específico.
Uma ressalva no caso da tela GNU é que uma única janela de terminal pode conter várias janelas virtuais. Nesse caso, você poderia usar uma sequência de escape diferente ( \033k%s\033\\
) para definir o título interno de uma única janela virtual.