Список поддерживаемых типов терминалов?

12

Существует ли портативный способ перечисления поддерживаемых типов терминалов во всех системах N X?

Если нет, как лучше всего получить этот список в Solaris?

Пра
источник

Ответы:

12

В большинстве систем вы можете искать файлы в /usr/share/terminfo. На некоторых версиях Solaris это может быть /usr/lib/terminfoвместо. В некоторых системах также будет termcapфайл, который может быть в /etc. /usr/shareили изредка /usr/share/misc; имена терминалов в этих строках совпадают ^[^\t].*|, и каждое имя между |s является допустимым именем терминала. (Технически первая 2-символьная запись также допустима, но на практике не используется; она оставлена ​​после взлома tty-драйвера для 6-го Исследовательского издания UNIX. Некоторые termcapпарсеры также могут принять длинное описание, но многие не примут.).

Окончательный ответ для любой системы будет termcap(5)и / или terminfo(5).

geekosaur
источник
7

Если у вас установлен ncursesпакет, вы можете использовать toe(1). Помимо этого, что-то вроде

ls /usr/share/lib/terminfo/?/*

должен работать, но расположение базы данных не является одинаковым для всех операционных систем.

justarobert
источник
1

Сначала вам нужно получить путь terminfo, такой как:

 #infocmp -D
/etc/terminfo
/lib/terminfo
/usr/share/terminfo

Затем запустите:

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

ПРИМЕЧАНИЕ: результат составил около 3000 строк.

Это может помочь вам получить список типов терминалов

Персидский залив
источник
Для чего это -iname "*"полезно? Я бы написал, \! -type d -printчтобы удалить каталоги. В общем, на моей машине find $(infocmp -D) \! -type d -print | grep -v '/README$'. Можно заменить -printна -ls, который покажет, какие псевдонимы, или заменить \! -type dна, -type fчтобы вообще не показывать псевдонимы.
Law29
Вы можете использовать:find /usr/share/terminfo -type f
PersianGulf
0

поддерживаемые типы терминалов во всех системах N X?

Нет.

Что вы подразумеваете под терминалами? Вы имеете в виду тупые терминалы / эмуляторы терминалов? Или системы удаленного отображения?

Как уже упоминалось, [n] curses / terminfo пытается предоставить унифицированный уровень абстракции для общения с немыми терминалами - но нет хорошего показателя покрытия, обеспечиваемого уровнем абстракции. Помимо xterm (который основан на эмуляции vt100), они в основном доступны только для доступа к устаревшим системам. (putty более или менее является эмулятором xterm поверх ssh-клиента).

OTOH Система X Window - гораздо более сложный чайник для рыбы - и имеет только один протокол, который за последние годы изменился очень мало.

Существуют и другие протоколы удаленного отображения: (NX - это просто оболочка для X), включая RDP (как одобрено Microsoft и Citrix), но в AFAIK нет серверов * nix и VNC, который работает на всех видах оборудования.

symcbean
источник