Comment puis-je choisir ce qui apparaît dans la barre de titre PuTTY depuis Linux?

Dans la configuration PuTTY, il existe une option dans Terminal-> Caractéristiques appelée Désactiver le changement de titre de fenêtre commandé à distance . Sans cela activé, la barre de titre de PuTTY changera chaque fois que j'appuie sur le retour dans la console.

Je pensais que ce serait une solution plus propre à définir le texte de la barre de titre de Linux que de spécifier un pour chaque client PuTTY que je pose. Alors, où puis-je modifier ce que Linux définit comme titre de fenêtre?


 $ Uname -a
 Linux drevo 2.6.32-5-amd64 # 1 SMP lun. Jan 16 16:22:28 UTC 2012 x86_64 GNU / Linux

 $ Cat / etc / debian_version
 6.0.4

La plupart des programmes terminaux – y compris konsole, putty et xterm – imitent l'ancien terminal VT100. Ce terminal vous permet de définir certaines choses, y compris les caractères gras, les couleurs, le réglage du titre du terminal, etc., en utilisant des séquences de caractères spécifiques appelées séquences d'échappement.

Le shell bash a une variable appelée PROMPT_COMMAND qui, si elle est définie, est évaluée avant chaque invite que vous imprimez (je crois que zsh a quelque chose de similaire, en fait, je pense que bash a pris le code d'eux). Vous pouvez afficher des séquences d'échappement dans PROMPT_COMMAND et configurer votre barre de titre.

C'est ce que j'ai dans le mien (Linux / bash):

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

Vous pouvez mettre cela dans votre ~ / .bashrc

Il existe de nombreuses personnalisations que vous pouvez faire avec votre terminal. J'aimerais attirer l'attention sur mon message, pour faciliter la lecture de la fin de mon message. Cela rend le jaune audacieux, bien contre mon fond noir par défaut:

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

Regardez autour de Linux Prompt Customization, vous trouverez plus de HowTos que vous savez quoi faire. Choisissez celui que vous trouvez le plus facile à lire.

Le titre du terminal est défini en utilisant des séquences d'échappement spéciales dans la sortie de la console. Par défaut, l'invite bash inclut ces séquences d'échappement et définit le titre dans le répertoire de travail actuel.

Vous devrez donc modifier votre variable PS1 (la plupart du temps, elle est définie dans ~/.bashrc ), sinon, bash remplacera votre titre chaque fois que l'invite s'affiche.

Vous pouvez ensuite définir le titre en mettant ce qui suit dans un script qui s'exécute lorsque vous vous connectez, par exemple ~/.profile :

 echo -e "\033]0;<your string>\007" 

J'ai cherché de nombreux forums et je n'ai pas trouvé la réponse à la question:
Comment obtenir toutes les commandes de sortie sur le titre de Putty?

Nécessité pour d'autres programmes de savoir quand certains travaux sur un serveur est terminé et est fait correctement ou mal. Plink stdout et stdin ne fonctionnaient pas. J'ai utilisé plusieurs réglages avec des retards d'attente et pour certaines commandes qui fonctionnaient, pour d'autres non. XSEL et XCLIP n'ont pas pu être installés sur ce serveur.

Voici donc la solution:

  1. Obtenir la sortie de la commande dans un fichier.
  2. Echo ce fichier au titre.

Sur le client Putty et le serveur SUSE, cela ressemble à ceci:

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

J'espère que quelqu'un pourra l'utiliser. Cela ne fonctionnera pas pour tous les types de serveurs et les paramètres du serveur de mastic, bien sûr, mais l'idée devrait fonctionner correctement.