Come rendere il titolo del terminale da attaccare ai Mac


1

Non sono sicuro se questo è un problema con il mio Mac, di cui sono un noob con, o se è un'impostazione del server in cui sto lavorando.

Quello che sto facendo è questo:

  1. Apri una nuova finestra nel terminale
  2. SSH in un server CentOS. La mia shell di login è bash.
  3. Fai clic su Shell- & gt; Modifica titolo
  4. Cambia il titolo e il titolo della scheda in abc123. Viene visualizzato nella barra del titolo del terminale come abc123-abc123-ssh-100x24
  5. Nel terminale, esegui 'sudo su' per cambiare utente in root. Nota: il titolo è ora cambiato in root @ blah: / home / myuser-ssh-100x24. Se esco da root, il nome del titolo è ancora questo nuovo nome.

Come fai a mantenere il nome del titolo come abc123 e non cambiare quando faccio su ad altri utenti? Grazie in anticipo per il vostro aiuto.

Risposte:


6

Il titolo è impostato dal server a cui ti stai connettendo. Le possibilità sono, /etc/bashrc o un file simile definisce PROMPT_COMMAND per impostare il titolo. Su CentOS 6, sembra questo:

  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 "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
[... more of the same ...]
      esac
  fi

Per evitare ciò, assicurati di impostare PROMPT_COMMAND= nel root e i tuoi file di configurazione bash sul server in cui SSH è inserito (ad es. ~/.bashrc ).

In alternativa, aggiungere PROMPT_COMMAND a /etc/sudoers ( env_keep ) e /etc/ssh/sshd_config ( AcceptEnv ) per ereditarlo dal sistema locale e impostarlo su un valore che non influisce sulla barra del titolo.

In questo caso specifico, puoi anche impostare il tuo Terminale dichiarando un Terminale diverso, come questo è solo per xterm* su CentOS ( Terminale »Preferenze ...» Impostazioni »(Seleziona profilo)» Avanzate »Declare Terminale come ).


Terminal.app non sembra consentire il blocco del titolo: probabilmente ti verrà chiesto di cambiare la configurazione che lo imposta come descritto sopra. Puoi sempre controllare un terminale diverso, come ad esempio iTerm. Supporta il mantenimento del nome del profilo nel titolo anche il titolo cambia.


Ed ecco un trucco sporco per mantenere il titolo del terminale senza modificare la configurazione di tutti i server in cui SSH è:

Nella stessa shell SSH nella tua Linux box, prima di farlo, esegui il seguente comando:

while true ; do printf "\033]0;%s\007" "My Terminal Title" ; sleep 1 ; done &

Questo eseguirà un loop in background che cambia il titolo del terminale in Il mio titolo del terminale una volta al secondo, ignorando le modifiche eseguite nella sessione SSH.

Una volta che hai finito, usa il controllo dei lavori nella tua shell per fermarlo ( jobs e kill %1 se è il primo lavoro), o fg per portarlo in primo piano e cancellare con Ctrl-C.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.