Linux

如何檢查哪些終端定義可用?

  • April 27, 2019

大部分問題都在標題中,但要詳細說明:

在大多數 Linux 上,我可以find /usr/share/terminfo -type f。但是在我附近的 Solaris 機器上 - 這個目錄甚至不存在。

我可以遍歷終端列表,並執行以下操作:

for TERM in xterm xtermc xterm-color xterm-256color screen rxvt
do
   tput cols >/dev/null 2>/dev/null && echo "$TERM available"
done

但它很慢。發現終端定義使用的路徑tput並自己執行“查找”的任何選項?

在 Solaris 10 上,您可以執行以下操作:

find /usr/share/lib/terminfo -type f -print

您應該能夠執行以下操作:

find /usr -type d -name terminfo -print

找到目錄所在的位置。

您還可以閱讀以找到確切的路徑:

man terminfo

支持 terminfo 的“任何”系統上的 infocmp 程序恰好顯示了找到目前終端的終端描述的路徑名。例如(在本例中為 AIX):

$ infocmp vt100
#       Reconstructed via infocmp from file: /usr/share/lib/terminfo/v/vt100
vt100|vt100-am|Digital VT100,
       am, msgr, xenl, xon,
       cols#80, it#8, lines#24, vt#3,
       ...

對於 ncurses,它更複雜,因為您可以有多個 terminfo 數據庫,並且條目不必是單獨的文件。為了與 Unix 系統兼容,預設情況下每個條目一個數據庫和一個文件。

tic和infocmp-D選項( 2011 年末添加)是顯示額外資訊的一種方式。例如,在我的 Debian7 上,我可以看到:

$ infocmp6 -D
/users/tom/.terminfo
/usr/local/ncurses/share/terminfo
/usr/share/terminfo
/lib/terminfo

在我的 FreeBSD 10 機器上,我使用散列數據庫:

$ infocmp -D
/usr/local/ncurses/share/terminfo.db
/usr/local/share/misc/terminfo
/etc/termcap

或者,可以使用該toe程序生成所有可用終端條目的報告。使用-sand-a選項可以讓它組合一些東西(比如conflict程序):

--> /users/tom/.terminfo
----> /usr/local/ncurses/share/terminfo
------> /usr/share/terminfo
--------> /lib/terminfo
--*-+---:       9term           Plan9 terminal emulator for X
--*---*-:       Eterm           Eterm with xterm-style color support (X Window System)
--*-*---:       Eterm-256color  Eterm with xterm 256-colors
--*-*---:       Eterm-88color   Eterm with 88 colors
--*-+---:       MtxOrb          Generic Matrix Orbital LCD display
--*-+---:       MtxOrb162       16x2 Matrix Orbital LCD display
--*-+---:       MtxOrb204       20x4 Matrix Orbital LCD display
--*-+---:       NCR260VT300WPP  NCR 2900_260 vt300 wide mode pc+  kybd
--*-+---:       aaa             ann arbor ambassador/30 lines
--*-+---:       aaa+dec         ann arbor ambassador in dec vt100 mode
--*-+---:       aaa+rv          ann arbor ambassador in reverse video
...

引用自:https://unix.stackexchange.com/questions/30058