我使用 .vt100、vt102、vt220 和 xterm 尝试过top
。
但我找不到他们的区别。还有其他术语类型吗?他们有什么区别?
答案1
xterm
应该是 的超集vt220
,换句话说,它很像,vt220
但具有更多功能。例如,xterm
通常支持颜色,但vt220
实际上不支持。您可以通过按zinside进行测试top
。
同样,vt220
比 具有更多的功能vt100
。例如,vt100
似乎不支持F11和F12。
通过运行来比较它们的功能和转义序列,您的系统认为它们具有infocmp <term type 1> <term type 2>
,例如infocmp vt100 vt220
。
完整列表因系统而异。您应该能够使用toe
、toe /usr/share/terminfo
、 或获取列表find ${TERMINFO:-/usr/share/terminfo}
。如果这些都不起作用,您还可以看看ncurses 的 terminfo.src,这是目前大多数发行版获取数据的地方。
xterm-color
- 如果您使用的是较旧的系统并且颜色不起作用putty
、konsole
、Eterm
、rxvt
、gnome
等 - 如果您正在运行 XTerm 模拟器,并且某些功能键、Backspace、Delete、Home 和 End 无法正常工作screen
- 如果在 GNU 屏幕(或 tmux)内运行linux
- 通过 Linux 控制台登录时(例如Ctrl+Alt+F1)dumb
- 当一切都被打破时
答案2
不带任何参数运行 infocmp 将为您提供所有可用的 xterm 替代方案:
$> infocmp
xterm|xterm-debian|X11 terminal emulator,
am, bce, km, mc5i, mir, msgr, npc, xenl,
colors#8, cols#80, it#8, lines#24, pairs#64,
...
欲了解更多信息,请检查
$> ls /lib/terminfo/x/
xterm xterm-256color xterm-color xterm-debian xterm-mono
xterm-r5 xterm-r6 xterm-vt220 xterm-xfree86
答案3
在过去,“终端”是单独的设备。有些是纸和墨带,有些是“玻璃钥匙孔”。有很多制造商。除了文本之外,制造商还需要非文本(不可见)方式来调用特定于终端的行为,即“控制字符”和“转义序列”。由于没有标准,不同的制造商可以为相同的功能(在他们自己的终端上)选择不同的转义序列。设置环境变量不是设置每个转义序列(在此终端上,这是如何清除屏幕,这是如何定位光标等),而是TERM
充当终端信息数据库的键,保存该终端的所有设置。看man terminfo terminfos tput stty
。
Digital Equipment Corporation (DEC) 制造了一款流行的玻璃按键机 VT100,随后又推出了 VT220,其控制序列被 Unix 社区采用。
“控制字符”(与“字符”不同,其第 7 位 (0x40) 已被清除,请参阅man ascii
)继承自更早期的 TeleType(由 The Phone Company 制造的复杂机电奇迹(当时只有一个) )) 用于文本传输。
您在图形画布、窗口、屏幕上运行“终端模拟器”时,只能通过使用TERM
.TERM
用于使“大部分兼容”、串行连接的不同硬件机器与 Unix“工作”。
串行通信的历史非常有趣,正如它在 Unix/Linux 设备接口中的反映一样。如果它有效,就保留它。如果出现“更好”的方法,请使用它。总有人在某个地方使用 110 波特的 Model 33 TeleType。
答案4
echo $TERM
:
在 tmux 内部:给出screen-256color
外部:给予xterm-256color
某些键(例如Home 和 ) 的End行为有所不同。
键入cat
然后按一些键即可查看不同之间的区别$TERM
。
infocmp xterm-256color screen-256color | less
NULL
屏下多- 256 色
comparing xterm-256color to screen-256color.
comparing booleans.
bce: T:F.
ccc: T:F.
mc5i: T:F.
npc: T:F.
comparing numbers.
comparing strings.
acsc: '``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~', '++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~'.
clear: '\E[H\E[2J', '\E[H\E[J'.
cnorm: '\E[?12l\E[?25h', '\E[34h\E[?25h'.
cuu1: '\E[A', '\EM'.
cvvis: '\E[?12;25h', '\E[34l'.
ech: '\E[%p1%dX', NULL.
enacs: NULL, '\E(B\E)0'.
flash: '\E[?5h$<100/>\E[?5l', '\Eg'.
initc: '\E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\', NULL.
invis: '\E[8m', NULL.
is2: '\E[!p\E[?3;4l\E[4l\E>', '\E)0'.
kDC: '\E[3;2~', NULL.
kEND: '\E[1;2F', NULL.
kHOM: '\E[1;2H', NULL.
kIC: '\E[2;2~', NULL.
kLFT: '\E[1;2D', NULL.
kNXT: '\E[6;2~', NULL.
kPRV: '\E[5;2~', NULL.
kRIT: '\E[1;2C', NULL.
ka1: '\EOw', NULL.
ka3: '\EOy', NULL.
kb2: '\EOu', NULL.
kbeg: '\EOE', NULL.
kc1: '\EOq', NULL.
kc3: '\EOs', NULL.
kend: '\EOF', '\E[4~'.
kent: '\EOM', NULL.
kf13: '\E[1;2P', NULL.
kf14: '\E[1;2Q', NULL.
kf15: '\E[1;2R', NULL.
kf16: '\E[1;2S', NULL.
kf17: '\E[15;2~', NULL.
kf18: '\E[17;2~', NULL.
kf19: '\E[18;2~', NULL.
kf20: '\E[19;2~', NULL.
kf21: '\E[20;2~', NULL.
kf22: '\E[21;2~', NULL.
kf23: '\E[23;2~', NULL.
kf24: '\E[24;2~', NULL.
kf25: '\E[1;5P', NULL.
kf26: '\E[1;5Q', NULL.