Como fazer o título do terminal ficar no Mac

1

Não tenho certeza se isso é um problema com meu mac, do qual sou um noob, ou se é uma configuração do servidor em que estou entrando.

O que estou fazendo é isto:

  1. Abra uma nova janela no terminal
  2. SSH em um servidor do CentOS. Meu shell de login é bash.
  3. Clique em Shell- > Editar título
  4. Altere o título e o título da guia para abc123. Ele se reflete na barra de título do terminal como abc123-abc123-ssh-100x24
  5. No terminal, execute 'sudo su' para alterar o usuário para root. Observe que o título foi alterado para root @ blah: / home / myuser-ssh-100x24. Se eu sair da raiz, o nome do título ainda é esse novo nome.

Como você faz o nome do título ficar como abc123 e não mudar quando eu sugo para outros usuários? Agradecemos antecipadamente por sua ajuda.

    
por Classified 29.04.2013 / 20:37

1 resposta

6

O título é definido no servidor ao qual você está se conectando. As chances são de /etc/bashrc ou um arquivo semelhante definir PROMPT_COMMAND para definir o título. No CentOS 6, é assim:

  if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='printf "3]0;%s@%s:%s
while true ; do printf "3]0;%s
  if [ -z "$PROMPT_COMMAND" ]; then
    case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
        else
            PROMPT_COMMAND='printf "3]0;%s@%s:%s
while true ; do printf "3]0;%s%pre%7" "My Terminal Title" ; sleep 1 ; done &
7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; [... more of the same ...] esac fi
7" "My Terminal Title" ; sleep 1 ; done &
7" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; [... more of the same ...] esac fi

Para evitar isso, certifique-se de definir PROMPT_COMMAND= em root e seus próprios arquivos de configuração bash no servidor em que você usa SSH (por exemplo, ~/.bashrc ).

Como alternativa, adicione PROMPT_COMMAND a /etc/sudoers ( env_keep ) e /etc/ssh/sshd_config ( AcceptEnv ) para herdá-lo do sistema local e defina-o como um valor que não afete a barra de título. / p>

Neste caso específico, você também pode configurar seu Terminal para declarar um Terminal diferente, já que este é definido apenas para xterm* no CentOS ( Terminal »Preferências…» Configurações »(Selecionar Perfil)» Avançado »Declare Terminal como ).

O terminal.app não parece permitir o bloqueio do título - provavelmente você deverá alterar a configuração que o configura conforme descrito acima. Você sempre pode verificar um terminal diferente, como o iTerm. Ele suporta manter o nome do perfil no título, mesmo que o título mude.

E aqui está um truque sujo para manter seu título de terminal sem alterar a configuração de todos os servidores em que você usa o SSH:

No mesmo shell você SSH em sua caixa Linux, antes de fazer isso, execute o seguinte comando:

%pre%

Isso executará um loop em segundo plano que altera o título do terminal para Meu Título do Terminal uma vez por segundo, sobrepondo quaisquer alterações realizadas na sua sessão SSH.

Quando terminar, use o controle de tarefas no shell para pará-lo ( jobs e kill %1 se for o primeiro trabalho) ou fg para trazê-lo para primeiro plano e cancele com Ctrl-C .

    
por 29.04.2013 / 21:12