Restaurer le titre du terminal Mac OS X après avoir fermé une connexion SSH [dupliquer]

18

Duplicata possible:
Comment faire pour que OS X redéfinisse le titre du terminal sur le titre d'origine en revenant de ssh?

Chaque fois que vous vous déconnectez d'une connexion SSH dans un terminal Mac OS X, vous vous retrouvez avec les informations de connexion précédentes dans le titre de la fenêtre.

La plupart des solutions que j'ai trouvées en recherchant sur le Web impliquent de jouer avec des séquences d'escroquerie, comme cette question ou ce billet de blog connexe .

Il semble que ce soit un problème SSH, pas un problème de terminal, donc je me demandais s'il y avait un moyen plus simple de le faire (peut-être modifier la configuration du client SSH?).

elitalon
la source

Réponses:

26

Ce n'est pas un problème SSH. Le problème est que le shell sur l'hôte distant est configuré pour envoyer une séquence d'échappement pour définir le titre de la fenêtre du terminal. Il s'agit d'une configuration assez courante. Les solutions mentionnées dans le blog auquel vous avez lié sont correctes.

La solution la plus simple et la plus directe consiste à configurer ce même shell distant pour réinitialiser le titre de la fenêtre lors de sa déconnexion. par exemple, si le shell distant est bash, mettez-le dans ~ / .bash_logout:

printf '\e]0;\a'

Sinon, si vous souhaitez que votre shell local mette à jour le titre de la fenêtre avec quelque chose d'utile, faites-le. Lorsque la connexion ssh se termine, le shell local définit le titre de la fenêtre sur autre chose au lieu de laisser la valeur périmée. par exemple, mettez-le dans ~ / .bashrc:

PS1='\[\e]1;\s\$ \W\a\e]2;\u@\h\a\]'"$PS1"

Cela place l'utilisateur et le nom d'hôte dans le titre de la fenêtre (qui est généralement ce que les shells distants sont configurés pour faire), et définit également le titre de l'onglet pour afficher le nom et le type du shell (utilisateur normal ou racine) et le répertoire de travail actuel.

Notez que si vous n'avez pas encore de ~ / .bash_profile (ou ~ / .profile), créez-en un et faites-le exécuter ~ / .bashrc de sorte que ~ / .bashrc s'applique aux shells de connexion et de non-connexion:

if [ -f $HOME/.bashrc ]; then
    . $HOME/.bashrc
fi
Chris Page
la source