gpt4 book ai didi

linux - TERM=dumb 终端必须具备的功能

转载 作者:IT王子 更新时间:2023-10-29 00:58:45 26 4
gpt4 key购买 nike

我希望在 中实现远程客户端它通过 nc 连接到 Linux 并启动 bash。所以我需要告诉 bash 我可以从它发送给我的 stdout 中解析哪些功能,以及我将如何将键码和其他内容发送到它的 stdin,以便它也可以解析它们。

这是通过 TERM=something 环境变量完成的,我需要将其设置为某个值。如果我不设置它,各种程序就会开始报错:

$ mc
The TERM environment variable is unset!

我发现我可以将 TERM 设置为 dumb 来表示我的客户端真的很有限。而且我似乎仍然遗漏了一些东西。

$ export TERM=dumb
$ mc
Your terminal lacks the ability to clear the screen or position the cursor.

从这里看来,dumb 终端没有这两个能力,但它还有哪些能力值得期待呢?是否有关于它的规范或一些事实上的标准?

最佳答案

寻找源代码会有所帮助。终端数据库有评论。这是一个 slice from that :

#### Specials
#
# Special "terminals". These are used to label tty lines when you don't
# know what kind of terminal is on it. The characteristics of an unknown
# terminal are the lowest common denominator - they look about like a ti 700.
#

dumb|80-column dumb tty,
am,
cols#80,
bel=^G, cr=^M, cud1=^J, ind=^J,
unknown|unknown terminal type,
gn, use=dumb,

假定了“哑”和“未知”终端类型,但很少使用:

  • “dumb”有自动边距(文本在右边距“换行”),假定有 80 列,以及一个 ASCII BEL 和回车符。由于缺少更好的东西,cud1(向下光标)是一个 ASCII 换行符。 ind(索引)值相同,表示当您到达屏幕底部时文本会向上滚动。

    没有游标寻址(cup)也没有交替(例如沿行或列任意移动)。

  • “unknown”添加了“generic”标志,将其标记为不适合 curses 应用程序使用。把它想象成一台打印机。

至于最低要求,这实际上取决于个人应用。 ncurses 可以设法在屏幕上四处移动,而无需实际使用 cup。它适用于六种策略。如果您阅读 mvcur 的源代码,您可以了解它需要什么。

但是,诸如 mc 之类的应用程序并不简单地依赖 ncurses 来决定它是否有效,因为(在这种情况下)它可能与俚语相关联(它不会仔细检查)。所以 mc 会进行自己的检查,这可能会增加限制。

在实践中,除非您选择有限的终端描述,例如“dumb”,否则您可能遇到的大多数终端都可以工作。

进一步阅读:

关于linux - TERM=dumb 终端必须具备的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com