我的本地 Linux 机器有这样的彩色终端输出;
当我通过 SSH 连接到 pfSense/BSD 盒子时,它会像这样改变颜色;
即使当我通过 SSH 连接到一台没有彩色本地终端输出的机器,并从那里通过 SSH 连接到这个 pfSense/FreeBSD 盒子时,它也会启用彩色输出,并开始产生不需要的彩色输出/
我是否可以在本地更改某些内容,以便当我从本地计算机或通过中间计算机 SSH 到 pfSense 框时,我的客户端将忽略远程颜色设置。理想情况下,我只想保持黑白、两种色调标准背景和文本颜色?
答案1
将变量更改TERM
为兼容但不支持颜色的某个条目可能会起作用。喜欢:
TERM=xterm-old
基本上,您需要一个TERM
FreeBSD 系统已知的 termcap 或 terminfo 数据库,其中TERM=the-term tput colors
不返回正数,而对于 GNU ls,则需要一个dircolors -p | grep -x 'TERM the-term'
不返回任何值的数据库。无论终端是否声称支持它,它可能仍然不适用于输出颜色转义序列的应用程序。
或者,您可以使用 GNUscreen
禁用颜色,例如(zsh 语法):
screen -c =(printf %s\\n "termcapinfo * 'AF=\E[1m:AB=\E[7m'") ssh ...
这将使大胆的每次尝试设置前景色和撤销每一次尝试设置背景。
我认为这一切都归结为 FreeBSD 假设终端背景是黑色的(或者至少是黑色的)。如果您使用xterm
而不是xfce-terminal
,则可以动态更改背景和前景色和/或单个颜色以设置不同的颜色配置文件。这是通过转义序列完成的,但您也可以使用xtermcontrol
更容易的命令。
答案2
终端中出现颜色是因为 tty 发送 ANSI 编码的控制序列来告诉终端更改颜色。一些(如果不是大多数)终端应用程序可以配置为忽略这一点并仅以一种颜色显示所有文本。
在 中xterm
,您可以使用该-cm
选项。对于 Konsole,可以将所有颜色的映射更改为相同。您的 XFCE 终端应用程序可能有类似的选项。
答案3
如果您不想修改 ~/.bashrc 我确信它包含类似的内容export PS2=.....+colors......
:
在 Linux 控制台上,尝试TERM=linux-m1b
或TERM=linux-m2
将单色设置为 linux-m1b 的“灰色/白色/黑色和暗淡”或 linux-m2 的“绿色/白色/黑色和蓝色”(复古!)...
使用 Putty(有一个适用于 Mac 用户的端口),使用TERM=putty-m1b
andTERM=putty-m2
相反...
这将完全满足您的需要,但是:您将需要一个最近的 terminfo 数据库,或者在必要时从那里获取它:wget http://canal.chez.com/linux.ti ; tic -x linux.ti
亚历克斯. PS:xterm-mono 似乎不再存在了。
答案4
你应该能够让你的终端模拟器和环境相信它一开始就不能支持颜色,假设你的 GNU/Linux 系统没有忽略这些规则:
unset LS_COLORS
TERM=xterm-mono
export TERM
尝试使用TERM=vt100
orTERM=xterm-mono
之类的东西htop
,您应该立即看到区别。
top
您还可以通过按 小写尝试切换颜色来快速测试z
。
或者,通过结合其他一些贡献者方法,您可以获得“无颜色”终端定义 (-1) 的列表并选择一个:
$ find /lib/terminfo -type f -exec sh -c 'for fx do T=`basename "$fx"` ;echo -n "$T ";TERM=$T tput colors ;done' find-sh {} + | sort -V | grep '\-1'
dumb -1
mach -1
mach-bold -1
mach-gnu -1
rxvt-basic -1
sun -1
vt52 -1
vt100 -1
vt102 -1
vt220 -1
xterm-mono -1
xterm-r5 -1
xterm-r6 -1