Terminfo

I terminali seriali per il collegamento con interfaccia CLI sono da sempre il metodo principale di lavorare con UNIX in una sessione.

Vi erano negli anni 1990 più di 500 marche diverse di terminale, con tasti di controllo diversi e capabilities diverse: bold, undeline, scrolling, italics, ecc.

Ben presto nella storia di UNIX sì è stabilito uno standard, adottato da quasi tutti i vendors, per il controllo del terminale.

Un terminale produce una determinata capability quando riceve una determinata sequenza di caratteri preceduta dal carattere Escape: le cosiddette Sequenze di Escape.

UNIX e Linux possiedono un database (gerarchico) per la configurazione di un vasto numero di terminali, il database Terminfo.

Questo si trova nella directory /usr/share/terminfo, ma non è direttamente consultabile come testo, perchè si tratta di files binari.

Il riferimento alla scheda di terminfo che viene adottata dal terminale corrente è il valore dellavariabile d'ambiente TERM.

Controllare il valore corrente con echo $TERM. E' possibile settare un valore diverso, ma bisogna porre attenzione a non scegliere cattive configurazioni, o il terminale può non funzionare più.

Anche i pseudoterminali (terminali con finestra GUI), e gli emulatori di terminale (p.es. telnet, Putty, ecc.) fanno riferimento a questa variabile d'ambiente.

Le proprietà del terminale corrente si possono vedere tramite il comando infocmp.

Le proprietà di un altro terminale si possono vedere tramite il comando infocmp terminale.

terminfo

Le proprietà (capabilities) sono di tre tipi:

  • numeriche, es.: cols#80
  • booleane, es.: xon
  • stringhe di controllo terminale (sequenze di escape), es.: clear=\E[H\E[J$<50>

Nuovo terminale

Non avviene più molto spesso, ma è possibile configurare un nuovo terminale precedentemente sconosciuto, conoscendo le sue capabilities e sequenze di controllo.

Si procede da una scheda di un terminale nota, copiandola in un file ed editandola con le caratteristiche del nuovo terminale.

Si registra poi nel database col comando: tic nuovoterminale.

Il comando tput

Sintassi: tput capability

Invia la sequenza di controllo al terminale corrente per produrre la capability desiderata.

  • tput bold - grassetto
  • tput smso - colori invertiti
  • tput clear - pulisce lo schermo
  • tput 23 4 - pone il cursore a linea 23, colonna 4

e molti altri.

Attenzione che non tutti i terminali supportano tutte le capabilities.

Attenzione altresì che alcuni comandi, p.es. ls, usano essi stessi questo metodo, e possono ricambiare i settaggi.

results matching ""

    No results matching ""