質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.45%

  • Linux

    4535questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Linux と Teratermのタイトルの連動について

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 561

boyon

score 8

Linux と Teratermのタイトルの連動について
私が普段 TeratermでLinux (REDHAT6.3)に接続しています。
Teratermのタイトルバーには「IPアドレス user@ホスト名 カレントディレクトリ」 が表示されています。
ttlを使って踏み台サーバー経由でログオンしています。

ところが、最近新規に建てたLinuxでは、踏み台サーバーのアドレスが表示されてて
ディレクトリを変更してもタイトルバーは変わりません。

ネットで調べてたら、変更例がありました。
↓これを実行すると、確かに表示が変わりました。
printf "\033]2;hostname login[whoami]\007"
(これ以上の詳しい説明はありませんでした。)

私の理解が及ばないのですが・・・
なぜ、terminal 上でprintfコマンドを実行したらTeraTermのタイトルが変わるのでしょうか?
この設定は一体どこでやってるのでしょう???

【原因と解決方法】
皆様のヒントにより原因がわかりました。
・タイトルの情報は、 printf で制御コードを端末に返ってくる情報をTerminalアプリが編集している。
・printf の実行は、PROMPT_COMMAND 環境変数に設定することで、応答の都度実行される。
・手元の環境では、historyを残すためにPROMPT_COMMAND変数に追加する記述を.bashrcに記
載したが共通処理である. /etc/bashrc の前で行っていた。
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
・この処理を共通処理の後ろに記述することで解決した

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

エスケープシーケンスでいろいろ変えられるっス。
https://teratail.com/questions/43620

端末をエミュレートしているやつはエスケープシーケンスで
設定が変えられる仕様になっていまして。

printf "\033]2;hostname login[whoami]\007"

\033てのはエスケープキーを入力した時のコードですね。
それに続き所定の文字を入力すると、対応した設定が
反映される、と。
ちなみに、サーバーごとに違うのはログイン処理の途中で
設定されている内容が違うんでしょうね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/27 13:25

    ありがとうございます。
    「ログイン処理」というのは、/home/user/.bashrc のことですか?
    $PROMPT_COMMAND という変数の中味をみたら、
    printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"
    こんなのがありました!
    まさにこれですね!!!!
    しかし・・・どこで設定してるのかわかりません。
    もう少し調べます。

    キャンセル

  • 2018/09/27 13:50

    /etc/bashrc を実行して初期値を設定しているようです。
    で、やっと原因がわかりました。
    # Source global definitions
    if [ -f /etc/bashrc ]; then
    . /etc/bashrc
    fi

    # User specific aliases and functions
    export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

    これは、正常例で、
    NGのOSは、 . /etc/bashrc の前に設定されていました。
    あぁ・・・すっきりいたしました。
    ありがとうございます。

    キャンセル

+2

Teraterm(に限らずですが)は、出力されてくる文字の中のエスケープシーケンスを常に見ています。例えば、画面クリアのエスケープシーケンス(\e[2J)が来れば、画面をクリアします。

同じく、「X Window Systemのウィンドウタイトルを変更する」というエスケープシーケンスを受け取ると、MS-Windows的な意味でのウィンドウタイトルを変更するようになっています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/27 13:20

    なるほど。考えてみたらそうですね。あまり意識していませんでした。

    キャンセル

+1

なぜ、terminal 上でprintfコマンドを実行したらTeraTermのタイトルが変わるのでしょうか?

teratermが端末のウィンドウタイトルを受け取って
タイトルに表示する機能をもっているから以外答えようがないと思いますが・・・

なおteraterm自体の設定としては
TERATERM.iniの中の[Tera Term]セクションにある
TitleFormat=61を任意の番号に変更する
通常「ホスト名:ポート番号 - 端末から受け取るタイトル」になっており
端末から受け取るタイトルがない場合は「Tera Term」という文字が表示されるようです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/27 13:21

    ありがとうございます。試してみます~。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.45%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Linux

    4535questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。