Przywróć tytuł terminala Mac OS X po zamknięciu połączenia SSH [duplikat]

18

Możliwa duplikat:
Jak sprawić, aby OS X ustawił tytuł terminalu z powrotem na oryginalny, gdy wracasz z ssh?

Za każdym razem, gdy wylogowujesz się z połączenia SSH w terminalu Mac OS X, w tytule okna pojawia się informacja o przeszłości.

Większość rozwiązań, które znalazłem w sieci, polega na przeszukiwaniu sekwencji ucieczki, takich jak to pytanie lub pokrewny post na blogu .

Wydaje się, że jest to problem z SSH, a nie terminal, więc zastanawiałem się, czy istnieje łatwiejszy sposób na zrobienie tego (może edytowanie konfiguracji klienta SSH?).

elitalon
źródło

Odpowiedzi:

26

To nie jest problem SSH. Problem polega na tym, że powłoka na zdalnym hoście jest skonfigurowana do wysyłania sekwencji ucieczki w celu ustawienia tytułu okna terminala. Jest to dość powszechna konfiguracja. Rozwiązania wymienione w blogu, do którego prowadzi link, są poprawne.

Najprostszym i najbardziej bezpośrednim rozwiązaniem jest skonfigurowanie tej samej zdalnej powłoki, aby zresetowała tytuł okna po wylogowaniu. np. jeśli zdalna powłoka jest bash, umieść to w ~ / .bash_logout:

printf '\e]0;\a'

Alternatywnie, jeśli chcesz, aby lokalna powłoka zaktualizowała tytuł okna za pomocą czegoś przydatnego, to i tak. Po zakończeniu połączenia ssh lokalna powłoka ustawi tytuł okna na coś innego, zamiast pozostawiać nieaktualną wartość. np. umieść to w ~ / .bashrc:

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

Powoduje to umieszczenie nazwy użytkownika i hosta w tytule okna (co zwykle jest skonfigurowane do wykonywania zdalnych powłok), a także ustawia tytuł karty, aby wyświetlał nazwę i typ powłoki (zwykły użytkownik lub root) i bieżący katalog roboczy.

Zauważ, że jeśli nie masz jeszcze ~ / .bash_profile (lub ~ / .profile), utwórz go i uruchom ~ / .bashrc, aby ~ / .bashrc miał zastosowanie do powłok logowania i niezalogowanych:

if [ -f $HOME/.bashrc ]; then
    . $HOME/.bashrc
fi
Chris Page
źródło