首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux 9命令将ANSI/彩色序列发送到单色终端

Linux 9命令将ANSI/彩色序列发送到单色终端
EN

Unix & Linux用户
提问于 2022-12-20 18:23:26
回答 3查看 161关注 0票数 0

我在RockyLinux9上使用Wyse50终端仿真。手册页、帮助屏幕等无法使用,因为系统输出的属性和颜色代码是终端仿真器所不理解的;例如,man cp是这样读的:

代码语言:javascript
复制
1mSYNOPSIS0mm
       1mcp 22m[4mOPTION24m]... [4m-T24m] 4mSOURCE24m 4mDEST0mm
       1mcp 22m[4mOPTION24m]... 4mSOURCE24m... 4mDIRECTORY0mm
       1mcp 22m[4mOPTION24m]... 4m-t24m 4mDIRECTORY24m 4mSOURCE24m...m  m

1mDESCRIPTION0mm

我已经更新了最新的终端包,并在最新的wy50和Linux4的wy50之间做了一个infocmp,在那里一切都很好。

我在配置文件、bash_profile、bashrc或.bashrc中没有任何设置任何颜色参数的东西。

我遗漏了什么?(不包括属于上世纪的遗留应用程序)

EN

回答 3

Unix & Linux用户

发布于 2022-12-20 22:30:10

这是groff的硬编码默认行为(不涉及ncurses和groff)。这是在2002年年2月中引入的一个错误特性(参见Debian #257413)。作为解决办法,您可以将环境变量GROFF_NO_SGR设置为一些非空值。

几乎所有的视频终端(没有一个是你可能遇到的)做的是一系列字符,后置空间,超击(下划线或相同字符)。这有时被错误地描述为ASR 33,尽管它不是一个视频终端,而是一台打印机(当然,我使用过两者都有 )。

进一步读:

票数 0
EN

Unix & Linux用户

发布于 2022-12-21 04:04:41

我反对托马斯·迪基将这种行为描述为错误的行为。

我已将我的理由详尽地阐述在其他地方。

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=312935

简短的版本是,Wyse 50、现代终端模拟器和*ix内核控制台设备都不是Teletype机器的仿真器。

对于groff 1.24,我想将grotty作为终端应用程序,以便它能够更智能地适应终端功能。

然而,即使这样做了,它也不会可靠地模仿Teletype公司的型号37,因为今天使用的大多数终端模拟器都无法做到这一点。

同时,您可以设置GROFF_NO_SGR环境变量。

票数 0
EN

Unix & Linux用户

发布于 2023-01-11 01:19:12

通常,在Linux发行版或其他Unix系统中,当使用串行端口或等效的伪终端(例如在sshtelnet会话中)时,单个程序的输出将直接按原样传递到终端--在Linux内核或其他任何地方没有任何类型的转换层用于终端格式化转义序列。

许多程序将试图为您正在使用的终端产生适当的输出,这是根据TERM环境变量设置确定的,通常是在terminfotermcap等库的帮助下实现的,但是那些没有这样做的程序--如果您运行的是没有的终端类型,并且需要输出不适当的转义序列,则终端将接收不适当的转义序列。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/729124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档