Cat

為什麼 cating 執行檔會不斷更改 PuTTY 的標題?

  • July 15, 2016

通常可以看到,如果一個執行檔被cat編輯,只要它是一個巨大的文件,它就會不斷更改 ‘PuTTY 的標題,application直到它完成將二進製文件列印到STDOUT那些奇怪的字元,前綴strace似乎對了解沒有幫助。

那裡發生了什麼,導致這種情況發生?只是好奇。

看起來不太可能,PuTTY 這樣做是為了響應字元組合

PuTTY 辨識用於、Linux 控制台和一些不太熟悉的終端的許多(**no**意味著全部)轉義序列。xtermPuTTY 的一位開發人員編制了一份所有可能感興趣的列表,大約 650 項。您可以在這里和那裡找到名為“all-escapes.txt” 的副本,開頭如下:

# This file is hoped to document all the escape sequences supported by
# terminals that are vaguely compliant with ECMA-48 and friends.

# Changes should be submitted to <bjh21@bjh21.me.uk>

# It includes everything from:
# <URL:http://www.cs.utk.edu/~shuford/terminal/dec_vt220_codes.txt> 1999-05-16
# <URL:http://www.cs.utk.edu/~shuford/terminal/vt100_reference_card.txt>
#                                   1993-02-01
# <URL:http://www.cs.utk.edu/~shuford/terminal/vt100_codes_news.txt>1998-09-18
# <URL:http://www.cs.utk.edu/~shuford/terminal/ansi_dec_controls_news.txt>
#                                   1999-05-16
# <URL:http://www.cs.utk.edu/~shuford/terminal/xterm_controls.txt>  1999-10-12
# <URL:http://www.cs.utk.edu/~shuford/terminal/color_control_news.txt>
#                                                                   1999-11-13
# ECMA-48 5th Ed. control functions (section 8.3, annex F)
# Linux console_codes(4)
# SunOS 5.7 wscons(7D)
# UnixWare 7 display(7)
# IRIX 6.5.5 xwsh(1G)
# VT220 Reference manual (<URL:http://vt100.net/docs/vt220-rm/>, EK-VT220-RM)
# <URL:http://vt100.net/ctrlseq_dec.html>                           1999-11-24
# <URL:http://vt100.net/ctrlfunc_dec.html>                          1999-12-01
# <URL:http://www.wyse.com/service/support/kbase/SEQwt.asp?Q=9> (wy75)
#                                                                   1999-07-19
# <URL:ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/rbcom346.zip#TERM-EMU.DOC>
#                                                                   1999-09-13
# <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-1.htm>                  1999-04-19
# <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-2.htm>                  2004-09-27
# <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-3.htm>          2004-09-27
# <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-8-1.htm>                1999-04-19
# <URL:http://www.itscj.ipsj.or.jp/ISO-IR/2-8-2.htm>                2001-05-10
# iBCS2 description in ESR's termtypes.master version 10.2.7
# Reflection Terminal Reference Manual for ADDS, ANSI, DG, VT, WYSE, and
#       Unisys Hosts; Version 7.0; September 1998; published by WRQ Inc.
# DEC Terminals and Printers Handbook 1985 EB 26291-56 (Appendices C, E, and G)
# OpenServer 5.0.6 screen(HW)
# X Consortium Compound Text Encoding Version 1.1

無論出於何種原因,他們都不喜歡直接參考 Linux 和 xterm 文件的想法,而是使用了輔助資源。

PuTTY 辨識的標題字元串以下列選項之一開頭:

  • ANSI 7 位 OSC ( escape``]),或
  • ANSI 8 位 OSC(八進制**235**)

後跟0, 1, 2, 2``1(ASCII 數字)或L,

一個分號,

和標題文本

並以以下選擇之一結束:

  • ANSI 7 位字元串終止符 ( escape``\),或
  • ANSI 8 位字元串終止符(八進制234),或
  • ASCII BEL(7,由 xterm 使用)

順便說一句,如果看到 ASCII 輸入或換行,它將停止處理標題轉義。

雖然“大”文件可能看起來足夠隨機,但您的文件可能包含表格等形式的一些偏差。否則它不會像描述的那樣重複更新標題。

建構一個檢測潛在標題字元串的程序可能會很有趣,這樣您就可以找到那些而無需重置終端(或可能完全停止它)。

進一步閱讀:

引用自:https://unix.stackexchange.com/questions/295871