Wiederherstellen des Mac OS X-Terminaltitels nach dem Schließen einer SSH-Verbindung [duplizieren]

18

Mögliches Duplizieren:
Wie bringe ich OS X dazu, den Titel des Terminals auf den ursprünglichen Titel zurückzusetzen, wenn ich von ssh zurückkehre?

Jedes Mal, wenn Sie sich von einer SSH-Verbindung im Mac OS X-Terminal abmelden, werden die Anmeldeinformationen aus der Vergangenheit im Fenstertitel angezeigt.

Die meisten Lösungen, die ich bei der Suche im Web gefunden habe, beinhalten das Herumspielen von Con-Escape-Sequenzen, wie diese Frage oder dieser verwandte Blog-Beitrag .

Es scheint sich um ein SSH-Problem zu handeln, nicht um ein Terminal-Problem. Daher habe ich mich gefragt, ob es eine einfachere Möglichkeit gibt, dies zu tun (möglicherweise die SSH-Client-Konfiguration zu bearbeiten?).

Elitalon
quelle

Antworten:

26

Es ist kein SSH-Problem. Das Problem ist, dass die Shell auf dem Remote-Host so konfiguriert ist, dass sie eine Escape-Sequenz sendet, um den Titel des Terminalfensters festzulegen. Dies ist eine ziemlich häufige Konfiguration. Die Lösungen, die in dem Blogbeitrag erwähnt werden, auf den Sie verlinkt haben, sind korrekt.

Die einfachste und direkteste Lösung besteht darin, dieselbe Remote-Shell so zu konfigurieren, dass der Fenstertitel beim Abmelden zurückgesetzt wird. Wenn es sich bei der Remote-Shell beispielsweise um Bash handelt, geben Sie Folgendes in ~ / .bash_logout ein:

printf '\e]0;\a'

Alternativ können Sie dies tun, wenn Sie möchten, dass Ihre lokale Shell den Fenstertitel mit etwas Nützlichem aktualisiert. Wenn die SSH-Verbindung beendet wird, setzt die lokale Shell den Fenstertitel auf einen anderen Wert, anstatt den veralteten Wert zu belassen. zB setze dies in ~ / .bashrc:

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

Dadurch werden der Benutzer- und der Hostname in den Fenstertitel eingefügt (für den Remote-Shells normalerweise konfiguriert sind). Außerdem wird der Registerkartentitel so festgelegt, dass der Name und der Typ der Shell (normaler Benutzer oder Root) und das aktuelle Arbeitsverzeichnis angezeigt werden.

Beachten Sie, dass Sie, wenn Sie noch kein ~ / .bash_profile (oder ~ / .profile) haben, ein ~ / .bashrc erstellen und ausführen müssen, damit ~ / .bashrc für Anmelde- und Nicht-Anmelde-Shells gilt:

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