程序或者脚本驱动登录到Linux系统之后。执行命令或者脚本,其返回值中往往出现格式异常。原因则在于虚拟终端类型的高级特性,例如:“颜色、高亮、移动光标”等。那么,是否禁掉这些高级特性呢?可以选择dumb类型,设置TERM=dumb。
注意:需要说明一点,dumb对于交互式访问不友好。终端不具备诸如清屏或移动光标等高级功能。TERM=dumb
是一个非常基础的终端类型,它仅支持最基本的文本输出,而不支持ANSI转义序列,这些序列通常用于控制终端的格式、颜色、光标位置等。
TERM
环境变量在Unix和类Unix系统中用于指定终端模拟器的类型。这个变量告诉运行的应用程序你的终端支持哪些特性,如颜色、光标移动、特殊键盘键等。不同的TERM
值对应不同的终端类型,它们有不同的能力和兼容性。
以下是一些常见的TERM
值及其含义:
-
ansi:
- 最基础的ANSI兼容终端,支持基本的颜色和文本格式化。
-
vt100:
- VT100是VT系列终端的一种,是早期的图形终端之一。它支持基本的ANSI转义序列,包括文本颜色和光标控制。
-
xterm:
- Xterm是X Window System下的一个终端模拟器,比vt100更高级,支持更多特性,如鼠标事件、窗口标题更改等。
-
xterm-color:
- xterm的一个变体,支持16色输出。
-
xterm-256color:
- 支持256种颜色的xterm变体,常用于需要更丰富颜色的场景。
-
screen:
- 用于screen会话的终端类型,screen是一个全屏窗口管理器,可以在单个终端会话中运行多个独立的shell会话。
-
screen-bce:
- screen的一个变体,支持背景颜色擦除(Background Color Erase)。
-
linux:
- 用于Linux控制台,通常支持基本的ANSI颜色和一些特殊功能,但可能不支持所有xterm特性。
-
gnome-terminal,konsole,terminator 等:
- 这些是特定于桌面环境的终端模拟器,如Gnome Terminal、Konsole和Terminator,它们通常支持广泛的ANSI特性和一些额外的扩展。
-
dumb:
- 这个值告诉应用程序终端不支持任何花哨的功能,只支持最基本的文本输出。通常用于管道或脚本中,避免颜色代码或控制序列的干扰。
当一个程序读取TERM
变量时,它会根据这个值来确定是否发送控制序列,以及发送哪些控制序列。例如,如果你的TERM
设置为xterm-256color
,那么支持ANSI颜色的应用程序将发送256色的控制序列;如果设置为dumb
,则程序不会发送任何控制序列,只发送纯文本。
正确的TERM
值对于确保应用程序正确显示至关重要,特别是在使用复杂的终端特性时。如果不确定应该使用哪个TERM
值,通常可以将其设置为你的终端模拟器报告的值,这通常可以在终端的首选项或属性设置中找到。
上面列举的TERM类型也不全,可以去到如下链接了解:
https://invisible-island.net/ncurses/terminfo.src.html#tic-dumb