Listar tipos de terminais suportados?

12

Existe uma maneira portátil de listar os tipos de terminal suportados em todos os sistemas N X?

Caso contrário, qual é a melhor maneira de obter essa lista no Solaris?

pra
fonte

Respostas:

12

Na maioria dos sistemas, você pode procurar por arquivos em /usr/share/terminfo. Em algumas versões do Solaris, isso pode acontecer /usr/lib/terminfo. Alguns sistemas também terá um termcaparquivo, que pode estar em /etc. /usr/shareou ocasionalmente /usr/share/misc; os nomes dos terminais que estão nas linhas correspondentes ^[^\t].*|e todo nome entre |s é um nome de terminal válido. (Tecnicamente, a primeira entrada de 2 caracteres também é válida, mas, na prática, não é usada; ela foi deixada de um tty driver hack para o 6th Research Edition UNIX. Alguns termcapanalisadores também podem aceitar a descrição longa, mas muitos não.).

A resposta definitiva para qualquer sistema estará em termcap(5)e / ou terminfo(5).

geekosaur
fonte
7

Se você tiver o ncursespacote instalado, poderá usá-lo toe(1). Além disso, algo como

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

deve funcionar, mas o local do banco de dados não é consistente nos sistemas operacionais.

justarobert
fonte
1

Inicialmente, você precisa obter o caminho do terminfo, como:

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

Então corra :

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

NOTA: o resultado foi de cerca de 3000 linhas.

Pode ajudá-lo a recuperar a lista de tipos de terminal

PersianGulf
fonte
Para que é -iname "*"útil? Eu teria escrito \! -type d -printpara remover diretórios. Ao todo, na minha máquina find $(infocmp -D) \! -type d -print | grep -v '/README$'. Pode-se substituir -printpor -ls, que mostrará quais são os pseudônimos, ou substituir \! -type dpor -type fpara não mostrar pseudônimos.
precisa
Você pode usar:find /usr/share/terminfo -type f
PersianGulf
0

tipos de terminais suportados em todos os sistemas N X?

Não.

O que você quer dizer com terminais? Você quer dizer terminais burros / emuladores de terminal? Ou sistemas de exibição remota?

Como outros já mencionaram, [n] curses / terminfo tenta fornecer uma camada de abstração unificada para conversar com terminais burros - mas não há uma boa medida da cobertura fornecida pela camada de abstração. Além do xterm (que se baseia na emulação vt100), eles estão disponíveis apenas para acessar sistemas legados. (o putty é mais ou menos um emulador xterm sobre um cliente ssh).

O OTOH, o sistema X Window, é uma chaleira de peixe muito mais sofisticada - e possui apenas um protocolo que sofreu muito poucas mudanças ao longo dos anos.

Existem outros protocolos de exibição remota: (o NX é apenas um invólucro do X), incluindo o RDP (como preferido pela Microsoft e Citrix), mas o AFAIK não possui servidores * nix e o VNC - que é executado em todos os tipos de hardware.

symcbean
fonte