Linux 控制台中的 256 色

Pau*_*ulP 5 linux colors tty console

我在我的 .bashrc

export TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)

但这项事业闪烁所有彩色文本(LS --color,在vim等)在Linux控制台(Ctrl+ Alt+ F1)。

那么有没有可能识别出我在哪个终端(Linux 控制台或伪 tty),以便我可以导出具有有效值的 TERM 变量?

[编辑]

我只找到了替代解决方案:

对于 vim 用户(在 .vimrc 中)

set t_Co=256
Run Code Online (Sandbox Code Playgroud)

或用于 .Xdefaults 中的 xterm(在 xrdb -load .Xdefaults 之后)

XTerm*termName:         xterm-256color
Run Code Online (Sandbox Code Playgroud)

或用于屏幕 (.screenrc)

term screen-256color
Run Code Online (Sandbox Code Playgroud)

Cal*_*leb 10

尽量不要导出TERM变量。这应该由终端本身设置为适当的值。linux 控制台应将此设置为linux,而各种基于 X 的终端程序可能会使用您设置的值。

当默认值不起作用或未通过 SSH 连接到无法识别您的环境的位置时,您应该仅将其设置为覆盖。


jas*_*yan 5

控制台 $TERM 是linux,[1] 所以你可以构建一个测试,像这样:

if [ "$TERM" = "linux" ]; then
...
Run Code Online (Sandbox Code Playgroud)

正如Caleb 指出的那样,将环境变量 TERM 设置为您想要模拟的终端类型并不是一个好主意。

有关详细信息,请参阅http://tldp.org/HOWTO/Text-Terminal-HOWTO-10.html#term_not_for_emulation

[1] 从内核版本 1.3.2 开始,控制台的内核默认值是 TERM=linux。

http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO-11.html