質問の大部分はタイトルにありますが、少し詳しく説明します。
ほとんどの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
が使用する端末定義へのパスを検出し、自分で「検索」を実行するオプションはありますか?
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データベースを持つことができ、エントリが個別のファイルである必要がないため、より複雑になります。エントリごとに1つのデータベースと1つのファイルがdefaultであり、Unixシステムとの互換性があります。
tic および infocmp の-D
オプション( late in 2011 を追加)は、追加情報を表示する1つの方法です。たとえば、私の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
プログラムを使用して、使用可能なすべての端末エントリのレポートを生成することもできます。 -s
および-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
...
Zyxel NSA310と同じ問題に直面していました
私のために働いた解決策は
export TERM=xterm
ここでアドバイスが与えられました:
https://better-coding.com/solved-xterm-256color-unknown-terminal-type/