TERM
, por convenção, refere-se a uma descrição do terminal. Originalmente, isso nomeava uma seção de um arquivo de texto termcap (começando no final da década de 1970). Em meados da década de 1980, o terminfo foi introduzido como um arquivo compilado (binário) que economizava tempo ao obter a descrição do terminal. Embora ambos estejam disponíveis para todas as plataformas do tipo Unix, o termcap raramente é usado hoje, exceto como uma emulação usando terminfo.
Para esses dois formatos de dados, os aplicativos geralmente extraem dados do banco de dados do terminal com bibliotecas de programação reutilizáveis. A biblioteca de programação terminfo geralmente faz parte da biblioteca de maldições de nível superior, embora possa ser fornecida (por exemplo, opcionalmente como em ncurses) como um arquivo de biblioteca separado. Se a biblioteca terminfo é fornecida separadamente ou não, nesses casos, ela é considerada parte da biblioteca de maldições. (Existem também algumas outras bibliotecas de nível superior, como gírias).
A entrada do banco de dados do terminal para cada terminal contém propriedades conhecidas como recursos . Eles dizem à biblioteca de maldições (ou aplicativos que usam diretamente termcap / terminfo) como executar operações úteis, como limpar a tela. Para a maioria dos terminais, essa é uma sequência de escape. Alguns terminais podem não suportar uma sequência de escape para esse fim; existem outros recursos que podem ser combinados pela biblioteca de maldições para limpar a tela (como limpar cada linha). Nem todos os recursos são seqüências de escape. Também existem recursos booleanos e numéricos , por exemplo, para saber se um recurso é suportado e qual o tamanho de algo (como o tamanho da tela).
Cada aplicativo que usa termcap / terminfo usa a biblioteca correspondente para recuperar a descrição do terminal, bem como executar operações como a substituição de parâmetros em determinados recursos. Por exemplo, a maioria dos terminais oferece a capacidade de mover o cursor por um determinado número de colunas ou linhas a partir de sua localização atual. As funções tparm
(ou tiparm
) substituem o número na capacidade de obter a sequência de escape real.
A biblioteca curses possui aplicativos de linha de comando que mantêm o banco de dados do terminal ( tic , infocmp ) e alguns são usados em scripts de shell para consultar o banco de dados do terminal ou executar operações de baixo nível com recursos de terminal ( tput , tset / reset ).
Existem aplicativos não convencionais que são usados TERM
sem o uso do banco de dados do terminal. A maioria deles simplesmente codifica seu comportamento (como GNU grep, groff e os links / links2 / elinks navegadores de texto), enquanto alguns têm o que equivale a seu próprio banco de dados de terminal (como GNU ls), mas usando regras e métodos diferentes. comportamento.
Voltar para as perguntas:
Então, onde essa variável é interpretada e permite, por exemplo, redefinir minha tela de terminal usando CTRL + l, se eu definir o valor certo?
O aplicativo e as bibliotecas subjacentes interpretam esse valor. Pois controlL, isso pode ser feito para o bash na biblioteca readline (que usa uma interface de programação termcap).
Quem verifica, por exemplo, quais cores são suportadas (xterm x xterm-256color)?
O banco de dados do terminal armazena o número de cores como um recurso, juntamente com os recursos para definir as cores de primeiro e segundo plano e redefinir as cores. Alguns aplicativos combinam esses recursos com outras informações (como a afirmação de um desenvolvedor que xterm
é "realmente" xterm-256color
).
A concha?
A maioria dos shells usa uma interface de programação termcap para obter as informações do terminal. No entanto, são aplicativos que têm seu próprio comportamento (não necessariamente o mesmo que maldições).
O aplicativo ou uma biblioteca como ncurses?
(veja acima: conchas são um tipo específico de aplicação)
E onde são definidos os possíveis valores / tipos de terminais?
Geralmente, isso está em um banco de dados de terminal compartilhado por aplicativos usando as bibliotecas de maldições ou gírias. Alguns aplicativos são codificados permanentemente ou usam um banco de dados privado.
Leitura adicional: