¿Enumerar tipos de terminales compatibles?

12

¿Existe una forma portátil de enumerar los tipos de terminales compatibles en todos los sistemas N X?

Si no, ¿cuál es la mejor manera de obtener esta lista en Solaris?

pra
fuente

Respuestas:

12

En la mayoría de los sistemas, puede buscar archivos debajo /usr/share/terminfo. En algunas versiones de Solaris que pueden ser /usr/lib/terminfoen su lugar. Algunos sistemas también tendrán un termcaparchivo, que puede estar en /etc. /usr/share, O de vez en cuando /usr/share/misc; los nombres de terminal en que están en líneas coincidentes ^[^\t].*|, y cada nombre entre |s es un nombre de terminal válido. (Técnicamente, la primera entrada de 2 caracteres también es válida, pero en la práctica no se utiliza; queda de un tty driver hack para 6th Research Edition UNIX. Algunos termcapanalizadores también pueden aceptar la descripción larga, pero muchos no lo harán).

La respuesta definitiva para cualquier sistema estará en termcap(5)y / o terminfo(5).

geekosaur
fuente
7

Si tiene el ncursespaquete instalado, puede usarlo toe(1). Más allá de eso, algo así como

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

debería funcionar, pero la ubicación de la base de datos no es coherente en todos los sistemas operativos.

justarobert
fuente
1

Al principio necesita obtener la ruta de terminfo como:

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

Entonces corre :

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

NOTA: el resultado fue de aproximadamente 3000 líneas.

Puede ayudarlo a recuperar la lista de tipos de terminales

Golfo pérsico
fuente
¿Para qué -iname "*"sirve? Habría escrito \! -type d -printpara eliminar directorios. En total, en mi máquina, find $(infocmp -D) \! -type d -print | grep -v '/README$'. Se puede reemplazar -printpor -ls, que mostrará cuáles son alias, o reemplazar \! -type dpor -type fno mostrar alias en absoluto.
Law29
Puede usar:find /usr/share/terminfo -type f
PersianGulf
0

tipos de terminales compatibles en todos los sistemas N X?

No.

¿Qué quieres decir con terminales? ¿Te refieres a terminales tontos / emuladores de terminal? ¿O sistemas de visualización remota?

Como otros han mencionado, [n] curses / terminfo intenta proporcionar una capa de abstracción unificada para hablar con terminales tontos, pero no hay una buena medida de la cobertura proporcionada por la capa de abstracción. Aparte de xterm (que se basa en la emulación vt100), en su mayoría solo están disponibles para acceder a sistemas heredados. (Putty es más o menos un emulador xterm en la parte superior de un cliente ssh).

OTOH el sistema X Window es un hervidor de pescado mucho más sofisticado, y solo tiene un protocolo que ha tenido muy pocos cambios a lo largo de los años.

Existen otros protocolos de visualización remota: (NX es solo una envoltura alrededor de X), incluido RDP (como lo prefieren Microsoft y Citrix) pero AFAIK no hay servidores * nix y VNC, que se ejecuta en todo tipo de hardware.

symcbean
fuente