Wie kann man einen Terminaltitel auf Macs machen?

1531
Classified

Ich bin mir nicht sicher, ob dies ein Problem mit meinem Mac ist, von dem ich ein Noob bin, oder ob es sich um eine Einstellung des Servers handelt, in den ich sshing.

Was ich mache ist folgendes:

  1. Öffnet ein neues Fenster im Terminal
  2. SSH in einen CentOS-Server. Meine Login-Shell ist bash.
  3. Klicken Sie auf Shell-> Titel bearbeiten
  4. Ändern Sie den Titel und den Tab-Titel in abc123. Es wird in der Titelleiste des Terminals als abc123-abc123-ssh-100x24 angezeigt
  5. Führen Sie im Terminal 'sudo su' aus, um den Benutzer in root zu ändern. Beachten Sie, dass sich der Titel jetzt in root @ blah: / home / myuser-ssh-100x24 geändert hat. Wenn ich mich von root abmelden, ist der Titelname immer noch dieser neue Name.

Wie lässt sich der Titelname als abc123 festlegen und nicht ändern, wenn ich mich für andere Benutzer interessiere? Vielen Dank im Voraus für Ihre Hilfe.

1

1 Antwort auf die Frage

5
Daniel Beck

Der Titel wird von dem Server festgelegt, zu dem Sie eine Verbindung herstellen. Die Wahrscheinlichkeit ist /etc/bashrcoder eine ähnliche Datei definiert PROMPT_COMMANDden Titel. Auf CentOS 6 sieht das so aus:

 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" "$" "$" "$"' fi ;; [... more of the same ...] esac fi 

Um dies zu verhindern, stellen Sie sicher, dass Sie PROMPT_COMMAND=in rootund Ihre eigenen Bash-Konfigurationsdateien auf dem Server, auf dem Sie SSH verwenden (zB ~/.bashrc), einstellen .

Alternativ können Sie PROMPT_COMMANDto /etc/sudoers( env_keep) und /etc/ssh/sshd_config( AcceptEnv) hinzufügen, um es vom lokalen System zu erben, und einen Wert festlegen, der die Titelleiste nicht beeinflusst.

In diesem speziellen Fall können Sie auch festlegen, dass Ihr Terminal ein anderes Terminal festlegen soll, da dieses nur für xterm*CentOS festgelegt ist ( Terminal »Voreinstellungen…» Einstellungen »(Profil auswählen)» Erweitert »Terminal deklarieren als ).


Terminal.app scheint es nicht zu erlauben, den Titel zu sperren. Es wird wahrscheinlich erwartet, dass Sie die Konfiguration ändern, durch die der Titel wie oben beschrieben festgelegt wird. Sie können immer ein anderes Terminal auschecken, z. B. iTerm. Es unterstützt das Beibehalten des Profilnamens im Titel, auch wenn sich der Titel ändert.


Und hier ist ein schmutziger Hack, um den Terminaltitel beizubehalten, ohne die Konfiguration aller Server zu ändern, auf denen Sie als SSH fungieren:

Führen Sie in der gleichen Shell, die Sie als SSH in Ihre Linux-Box einsetzen, den folgenden Befehl ein, bevor Sie das tun:

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

Dadurch wird im Hintergrund eine Schleife ausgeführt, durch die der Terminaltitel einmal pro Sekunde in " Mein Terminaltitel" geändert wird. Dabei werden alle in Ihrer SSH-Sitzung vorgenommenen Änderungen überschrieben.

Wenn Sie fertig sind, verwenden Sie die Jobsteuerung in Ihrer Shell, um sie zu stoppen ( jobsund kill %1wenn es der erste Job ist), oder fgum sie in den Vordergrund zu bringen und mit abzubrechen Ctrl-C.