A aba da tela do GNU é renomeada sempre que eu digito um comando

3

Quando eu uso a tela do gnu, em outras abas, eu ssh em outras máquinas, renomeio a aba de acordo e trabalho normalmente. O nome da guia é fixado.

Em uma nova guia, que é apenas um terminal na máquina original, sempre que eu digito qualquer comando, a guia é renomeada para o diretório de trabalho atual.

Exemplo:

/////////// veja como tudo parece de antemão

    [me@mac ~]$
    [ me ][0*$ me@mac:~  1-$ web01  2$ dev03

////////// definindo o nome da guia

    [me@mac ~]$ 
    Set window's title to: test
    [ me ][0*$ test  1-$ web01 clone  2$ dev03 clone

//////// digitando um comando: pwd

    [me@mac ~]$ pwd
    /home/me
    [me@mac ~]$
    [ me ][0*$ me@mac:~  1-$ web01 clone  2$ dev03 clone

e a guia é renomeada para o diretório de trabalho atual. Isso não acontece em nenhuma aba onde estou ssh em outra máquina. Então eu pensei que isso poderia ser um problema de minhas configurações pessoais, mas parece que não há nada nos meus arquivos .bashrc, .bash_profile ou .screenrc que tem a ver com títulos.

    
por lowly_junior_sysadmin 09.06.2016 / 20:58

1 resposta

2

Sua configuração do shell está configurando o título do terminal para o comando que está sendo executado no momento. É uma configuração bastante comum. Como é feito pelo shell, isso não é feito se o shell estiver sendo executado em outra máquina com uma configuração de shell diferente. A seqüência de escape para definir o título da janela da tela é ␛kTITLE␛\ , em que é o caractere de escape (valor de byte 27).

No bash, procure pelo código que emite esta seqüência de escape. O caractere de escape é provavelmente representado como \e ou 3 . O código pode estar no prompt ( PS1 ) ou no comando executado antes de exibir um novo prompt depois de executar um comando ( PROMPT_COMMAND ). Verifique seus valores (tomando cuidado para não emitir as seqüências de escape para o terminal, caso elas contenham um caractere de escape literal):

printf 'PS1=%s\nPROMPT_COMMAND=%s\n' "$PS1" "$PROMPT_COMMAND" | cat -v

Também é possível, mas menos comum, emitir essa sequência de escape antes de executar um comando, por meio do DEBUG trap:

trap -p DEBUG

Essas variáveis (ou a armadilha) teriam que ser definidas na configuração bash, seja sua ou de todo o sistema: normalmente ~/.bashrc e /etc/bash.bashrc em alguns sistemas, mas também possivelmente ~/.bash_profile , ~/.profile , /etc/profile ou ~/.bash_login ou um arquivo incluído por um deles. Você pode reduzi-lo executando um novo shell com menos configurações:

env -i bash                  # no environment variables or per-user settings
env -i HOME="$HOME" bash     # no environment variables, normal interactive shell
env -i HOME="$HOME" bash -l  # no environment variables, login shell
HOME=/none bash              # skips your per-user settings

Uma comparação sobre qual deles exibe o problema informará se as configurações vêm de suas configurações ou de todo o sistema, e se elas são de .bashrc (lidas por shells interativos) ou de um arquivo de tempo de login ( .profile , etc.).

    
por 10.06.2016 / 02:23