O comando de tela define o título do shell para o nome do host atual

O comando de tela define o título do shell para o nome do host atual

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á. estou falando sobre essa string específica na parte inferior

Responder1

Uma maneira de fazer isso é usar o LocalCommandrecurso 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/configpara 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.

informação relacionada