web-dev-qa-db-ja.com

LinuxのPuTTYタイトルバーに表示されるものを選択するにはどうすればよいですか?

PuTTY構成では、ターミナル→機能にリモート制御ウィンドウのタイトル変更を無効にするというオプションがあります。これを有効にしないと、コンソールでReturnキーを押すたびにPuTTYのタイトルバーが変わります。

Linuxからタイトルバーのテキストを設定する方が、配置しているすべてのPuTTYクライアントに1つ指定するよりもクリーンな解決策になると思いました。では、Linuxがウィンドウタイトルとして設定するものをどこで変更できますか?


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

Konsole、PuTTY、xtermなどのほとんどのターミナルプログラムは、古いVT100ターミナルをエミュレートします。この端末では、エスケープシーケンスと呼ばれる特殊文字シーケンスを使用して、太字、色、端末タイトルの設定など、特定の設定を行うことができます。

BashシェルにはPrompt_COMMANDという変数があり、設定されている場合は、印刷するすべてのプロンプトの前に評価されます(zshにも同様の機能があると思いますが、実際、bashはそれらからコードを取得したと思います)。 Prompt_COMMANDでエスケープシーケンスを出力すると、タイトルバーが設定されます。

これは私が持っているものです(Linux/bash):

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

これを〜/ .bashrcに入れることができます

ターミナルでできるカスタマイズはたくさんあります。プロンプトの終わりが見やすくするために、プロンプトの太字が好きです。これにより、デフォルトの黒い背景に対して、太字の黄色になります。

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

Linux Prompt Customizationを探し回ると、何をすべきかを知っているよりも多くのHowToが見つかります。読みやすいものを選んでください。

6
Rich Homolka

端末タイトルは、コンソール出力で特別なエスケープシーケンスを使用して設定されます。デフォルトでは、bashプロンプトにはこれらのエスケープシーケンスが含まれ、タイトルが現在の作業ディレクトリに設定されます。

したがって、PS1変数を編集する必要があります(ほとんどの場合、~/.bashrcで設定されます)。そうしないと、プロンプトが表示されるたびにbashがタイトルを上書きします。

次に、ログイン時に実行されるスクリプトに次のように入力することで、タイトルを設定できます。 ~/.profile

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

多くのフォーラムを検索しましたが、質問に対する答えが見つかりませんでした。
すべてのコマンド出力をPuTTYタイトルに取得する方法は?

他のプログラムがサーバー上のいくつかのジョブがいつ実行され、それが正しいか間違っているかを知るために必要でした。 Plinkstdoutとstdinが機能していませんでした。私は、待機遅延を伴う多くの調整を使用し、一部のコマンドは機能しましたが、他のコマンドは機能しませんでした。 XSELとXCLIPをそのサーバーにインストールできませんでした。

だからここに解決策があります:

  1. コマンド出力をファイルで取得します。
  2. そのファイルをタイトルにエコーします。

PuTTYクライアントとSUSEサーバーでは、次のようになります。

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

うまくいけば、誰かがこれを使用できるようになります。もちろん、すべてのサーバータイプとPuTTYクライアント設定で機能するわけではありませんが、このアイデアはうまく機能するはずです。

2
Jacek Domagała