Wie wähle ich aus, was in der PuTTY-Titelleiste von Linux angezeigt wird?

12787
Hubro

In der PuTTY-Konfiguration gibt es eine Option in Terminal-> Features, die den Titel für das Ändern von ferngesteuerten Fenstern deaktiviert . Wenn diese Option nicht aktiviert ist, ändert sich die Titelleiste von PuTTY jedes Mal, wenn Sie in der Konsole die Eingabetaste drücken.

Ich dachte, es wäre eine sauberere Lösung, den Titelbalkentext von Linux festzulegen, als für jeden PuTTY-Client, den ich habe, einen zu definieren. Wo kann ich also ändern, was Linux als Fenstertitel setzt?


$ uname -a Linux drevo 2.6.32-5-amd64 # 1 SMP Mo Jan 16 16:22:28 UTC 2012 x86_64 GNU / Linux  $ cat / etc / debian_version 6.0.4 
8

3 Antworten auf die Frage

14
WakiMiko

Der Terminaltitel wird mithilfe spezieller Escape-Sequenzen in der Konsolenausgabe festgelegt. Standardmäßig enthält die Bash-Eingabeaufforderung diese Escape-Sequenzen und setzt den Titel auf das aktuelle Arbeitsverzeichnis.

Sie müssen also Ihre PS1-Variable bearbeiten (die meiste Zeit ist sie eingestellt ~/.bashrc), andernfalls überschreibt bash Ihren Titel jedes Mal, wenn die Aufforderung angezeigt wird.

Sie können den Titel dann festlegen, indem Sie Folgendes in ein Skript einfügen, das beim Anmelden ausgeführt wird, z ~/.profile.

echo -e "\033]0;<your string>\007" 
Beachten Sie, dass dies die einzige ist, die die Frage beantwortet. Erik Aronesty vor 9 Jahren 0
Ändern Sie "-e" in "-en", wenn Sie die zusätzliche leere Zeile vermeiden möchten, die vom Befehl echo ausgegeben wird. ADTC vor 7 Jahren 0
6
Rich Homolka

Die meisten Terminalprogramme - einschließlich Konsole, Putty und Xterm - emulieren das alte VT100-Terminal. Mit diesem Terminal können Sie bestimmte Einstellungen vornehmen, z. B. Fettdruck, Farben, den Terminaltitel usw., indem Sie spezielle Zeichenfolgen verwenden, die als Escape-Sequenzen bezeichnet werden.

Die Bash-Shell hat eine Variable namens PROMPT_COMMAND, die, wenn gesetzt, vor jeder Eingabeaufforderung, die Sie ausdrucken, ausgewertet wird (ich glaube, dass zsh etwas Ähnliches hat, tatsächlich glaube ich, dass Bash den Code von ihnen genommen hat). Sie können Escape-Sequenzen in PROMPT_COMMAND ausgeben und Ihre Titelleiste wird festgelegt.

Folgendes habe ich in meinem (Linux / bash):

USER=$(/usr/bin/id -un) HOSTNAME=$(uname -n) HOSTNAME=$ PROMPT_COMMAND='echo -ne "\e]0;$USER@$: $(pwd -P)\a"' 

Sie können dies in Ihre ~ / .bashrc einfügen

Sie können viele Anpassungen an Ihrem Terminal vornehmen. Ich mag Fettdruck in meiner Eingabeaufforderung, um das Ende meiner Eingabeaufforderung besser erkennen zu können. Das macht es fett gelb, gut gegen meinen Standard schwarzen Hintergrund:

PS1="\[\e[33;1m\]\h:\$\[\e[0m\] " 

Schauen Sie sich nach Linux Prompt Customization um, Sie finden mehr HowTos als Sie wissen, was Sie tun sollen. Wählen Sie diejenige aus, die Sie am besten lesen können.

2
Jacek Domagała

Ich habe viele Foren durchsucht und keine Antwort auf die Frage gefunden:
Wie bekomme ich alle Befehlsausgaben in den Putty-Titel?

Benötigt es für andere Programme, um zu wissen, wann einige Jobs auf einem Server erledigt sind und ob es richtig oder falsch ist. Plink stdout und stdin funktionierten nicht. Ich habe viele Optimierungen mit Wartezeiten und für einige funktionierende Befehle verwendet, für andere nicht. XSEL und XCLIP konnten nicht auf diesem Server installiert werden.

Also hier ist die Lösung:

  1. Befehlsausgabe in einer Datei abrufen.
  2. Echo diese Datei zum Titel.

Auf Putty-Client und SUSE-Server sieht es so aus:

ls /home | grep domagaja > logutoit.txt  echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c" 

Hoffentlich kann jemand das nutzen. Es funktioniert natürlich nicht für alle Servertypen und Putty-Client-Einstellungen, aber die Idee sollte gut funktionieren.