是否有一种便携的方法来列出所有支持的终端类型否X 系统?
如果没有,那么在 Solaris 上获取此列表的最佳方法是什么?
答案1
在大多数系统上,您可以查找 下的文件/usr/share/terminfo
。在某些 Solaris 版本上,可能为/usr/lib/terminfo
。某些系统还会有一个termcap
文件,可能位于 中/etc
,/usr/share
或偶尔位于 中/usr/share/misc
; 中的终端名称位于与 匹配的行中^[^\t].*|
,并且 s 之间的每个名称|
都是有效的终端名称。(从技术上讲,第一个 2 个字符的条目也是有效的,但实际上未使用;它是 UNIX 第 6 版研究版 tty 驱动程序 hack 留下的。某些termcap
解析器也可能接受长描述,但许多解析器不会接受。)
任何系统的明确答案都将在termcap(5)
和/或中terminfo(5)
。
答案2
如果你ncurses
安装了该软件包,那么你可以使用toe(1)
。除此之外,还可以使用
ls /usr/share/lib/terminfo/?/*
应该可以工作,但是数据库的位置在不同的操作系统上并不一致。
答案3
首先,您需要获取 terminfo 的路径,例如:
#infocmp -D
/etc/terminfo
/lib/terminfo
/usr/share/terminfo
然后运行:
find /usr/share/terminfo/ -type -f -print
笔记:结果大约有3000行。
它可以帮助您检索终端类型列表
答案4
支持所有终端类型否X 系统?
不。
您说的终端是什么意思?您是指哑终端/终端仿真器吗?还是远程显示系统?
正如其他人提到的,[n]curses/terminfo 试图提供一个统一的抽象层来与哑终端对话 - 但抽象层提供的覆盖范围没有很好的衡量标准。除了 xterm(基于 vt100 仿真)之外,这些大多仅可用于访问旧系统。(putty 或多或少是 ssh 客户端上的 xterm 仿真器)。
另一方面,X Window 系统是一个更为复杂的系统 - 并且只有一个协议,多年来几乎没有变化。
还有其他远程显示协议:(NX 只是 X 的包装器)包括 RDP(Microsoft 和 Citrix 青睐的协议)但据我所知,没有 *nix 服务器和 VNC - 可在各种硬件上运行。