Существует ли портативный способ перечисления поддерживаемых типов терминалов во всех системах N X?
Если нет, как лучше всего получить этот список в Solaris?
В большинстве систем вы можете искать файлы в /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)
.
Если у вас установлен ncurses
пакет, вы можете использовать toe(1)
. Помимо этого, что-то вроде
ls /usr/share/lib/terminfo/?/*
должен работать, но расположение базы данных не является одинаковым для всех операционных систем.
Сначала вам нужно получить путь 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
чтобы вообще не показывать псевдонимы.find /usr/share/terminfo -type f
Нет.
Что вы подразумеваете под терминалами? Вы имеете в виду тупые терминалы / эмуляторы терминалов? Или системы удаленного отображения?
Как уже упоминалось, [n] curses / terminfo пытается предоставить унифицированный уровень абстракции для общения с немыми терминалами - но нет хорошего показателя покрытия, обеспечиваемого уровнем абстракции. Помимо xterm (который основан на эмуляции vt100), они в основном доступны только для доступа к устаревшим системам. (putty более или менее является эмулятором xterm поверх ssh-клиента).
OTOH Система X Window - гораздо более сложный чайник для рыбы - и имеет только один протокол, который за последние годы изменился очень мало.
Существуют и другие протоколы удаленного отображения: (NX - это просто оболочка для X), включая RDP (как одобрено Microsoft и Citrix), но в AFAIK нет серверов * nix и VNC, который работает на всех видах оборудования.
источник