PuTTYで `cat /etc/localtime`を実行すると、プロンプトに「PuTTY」ストリームが表示されるのはなぜですか?

PuTTYで `cat /etc/localtime`を実行すると、プロンプトに「PuTTY」ストリームが表示されるのはなぜですか?

私はランダムに実験し、cat /etc/localtimePuTTYで実行することとxtermで実行することは異なる効果があることがわかりました。

例:

root@webtest:~# cat /etc/localtime
TZif2

      ▒▒Kmp▒▒ǀ▒▒▒p▒Ƀprp▒▒▒▒_Tp▒▒▒p▒A▒p▒nop▒#
▒O▒▒▒p▒▒▒ɧ▒#▒Op▒▒▒k▒p"p▒r▒p▒Pp▒2Lp▒▒p▒▒▒p▒▒p▒ȷ

答え1

以下はよくある質問です(パテ用):

A.7.12 バイナリファイルを分類すると、コマンドラインに「PuTTYPuTTYPuTTY」と表示されます。

だからそうしないでください。

これは設計された動作です。 PuTTYは、リモートサーバーからControl-E文字を受け取ると、それを認識するように要求して解釈し、その文字列がすでにキーボードにあるかのように「PuTTY」文字列を再送信します。上。 Control-E は、応答を処理する準備ができたプログラムでのみ送信できます。端末にバイナリファイルを書き込むと、多くのControl-E文字が出力され、この動作が発生することがあります。これをしないでください。これは悪い計画です。

影響を軽減するために、応答文字列を空白のままにすることができます(セクション4.3.7を参照)。しかし、端末にバイナリを書くと、いくつかの不快な動作が発生する可能性があるため、これは小さな解決策にすぎません。

PuTTY開発者は何かをコピーすることから始めますが、時には理由を忘れてしまうこともあります。 xtermの応答シーケンス(一定期間中)は「xterm」を表示します。 しかし、これは1999年に消えた。:

デフォルトの応答応答を空の文字列に変更します。

それにもかかわらず、xtermが(基本的に)これを行うと言う人を見つけることができます。

端末が応答応答を送信すると、結果は次のようになります。タイプされたこの情報。シェル(または他のプログラム)はこれらの文字を表示します。

答え2

/etc/localtimeテキストファイルではなくバイナリファイルへのシンボリックリンク。バイナリファイルの内容を端末にダンプすると、興味深く予期しない結果が生じる可能性があります。特に、一部のバイナリデータが端末制御コードと一致する場合、さらにそうです。 PuTTYには、xtermが提供しない名前を出力するための制御コードがあります。それ以外の場合は、別の方法で解析されます。

関連情報