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 连接到无法识别您的环境的位置时,您应该仅将其设置为覆盖。
控制台 $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