NOM
term − conventions de nommage pour les types de terminaux
DESCRIPTION
La variable d’environnement TERM devrait normalement contenir le type de terminal, de console ou d’affichage que vous utilisez. Cette information est très importante pour tous les programmes dont l’affichage se fait sur écran tels que votre éditeur favori ou votre logiciel de messagerie.
Une valeur par défaut est fixé pour TERM par /etc/inittab (sous Linux et les Unix basés sur System-V) ou par /etc/ttys (pour les Unix basés sur BSD). Cela devrait être largement suffisant pour les stations de travail et les consoles classiques.
Si vous utilisez une ligne série, le type de périphérique rattaché peut varier. Les systèmes Unix les plus anciens fixent un type de terminal très basique appelé « dumb » ou « dialup » sur ce genre de lignes. Des plus récents fixeront sans doute « vt100 » étant donné le grand nombre de terminaux et d’émulateurs de terminaux compatibles avec le DEC VT100.
Les telnets modernes passent votre variable d’environnement TERM locale à la session distante. Cela peut poser des problèmes si la machine distante n’a pas de réglages pour votre type de terminal dans ses fichiers terminfo ou termcap. Dans certains cas, vous serez même obligé de spécifier explicitement le type comme étant « vt100 » (en supposant que vous utilisez une console, un terminal ou un émulateur de terminal compatible « vt100 »).
Dans tous les cas, vous pouvez bien sûr écraser le réglage par défaut de votre variable TERM dans votre profil de votre « shell » (N.d.T : le programme que vous utilisez en mode texte, par exemple bash, zsh...). Dans ce cas, l’utilitaire tset(1) pourra vous être d’une aide certaine car vous pouvez lui donner un ensemble de règles pour déduire ou demander un type de terminal en se basant sur le périphérique tty et le taux de transfert.
Fixer votre propre valeur pour la variable TERM peut également être utile si vous avez créé votre propre entrée avec des options spécifiques (telles que la cloche visuelle ou la vidéo inversée) et que vous désirez passez outre les réglages par défaut du système pour votre ligne.
Les descriptions des types de terminaux sont stockées dans des fichiers contenant les données sur leurs capacités, sous /usr/share/terminfo. Pour visualiser la liste de tous les noms de terminaux reconnus par le système, faites
toe | more
depuis le shell. Ces fichiers de description sont dans un format binaire optimisé pour la lecture (contrairement à l’ancien format de fichier termcap sous forme de texte auquel il succède). Pour consulter une entrée, vous devez utiliser la commande infocmp(1) ainsi :
infocmp nom-de-terminal |
où nom-de-terminal est le nom du type de terminal que vous désirez examiner (et le nom de son fichier de configuration se trouve dans le sous-répertoire de /usr/share/terminfo débutant par sa première lettre). Cette commande affiche le fichier de configuration dans le format textuel décrit par terminfo(5).
La première ligne d’une description terminfo(5) donne les différents noms du terminal dans terminfo séparés par un un caractère « | » (barre verticale, ou pipe en anglais) et terminés par une virgule. Le premier de ces synonymes est le nom primaire et est celui à utiliser lorsque vous fixez la valeur de la variable TERM. Quant au dernier champ (si différent du premier), c’est la description du type de terminal (il peut contenir des espaces, mais les autres doivent être en un seul bloc). Les noms des champs entre le premier et le dernier (si présents bien sûr) sont des synonymes conservés pour des raisons historiques de compatibilité.
Il existe des conventions pour déterminer le choix de noms primaires pour les terminaux qui permettent de les rendre uniques et descriptifs. Voici une méthodologie pour les nommer et comprendre la signification de cette nomenclature :
Premièrement, choisissez un nom de base. Ce nom sera composé d’un caractère minuscule suivi d’un nombre de caractères minuscules ou de chiffres pouvant aller jusqu’à sept. Il vous faut éviter les caractères de ponctuation dans ces noms car ils sont utilisés et interprétés dans les noms de fichiers et les séquences de remplacement des shells comme méta-caractères (des caractères tels que !, $, *, ?...), ce qui pourrait vous amener à des résultats inattendus. N’utilisez pas non plus les caractères qui peuvent être interprétés par quelque système de fichiers (/, \, $, [, ]) car ces noms sont indépendants de la plateforme et pourraient compliquer le portage sur d’autres architectures un jour ou l’autre. L’utilisation du point (.) en revanche n’est pas proscrite si il n’y en a pas plus d’un par nom, d’ailleurs, quelques noms terminfo historiques l’utilisent.
Le nom de base pour un terminal ou une station de travail devrait toujours débuter par un nom de fabriquant (tel que hp pour Hewlett-Packard, wy pour Wyse ou att pour les terminaux de AT&T), ou le nom commun de la ligne de terminaux (vt pour les terminaux de la série VT de DEC, sun pour les consoles de stations de travail Sun Microsystems ou regent pour les « ADDS Regent series »). Vous pouvez regarder l’arborescence de terminfo pour voir quels sont les préfixes qui sont déjà habituellement utilisés. Le préfixe du nom de base devrait être suivi quand cela est justifié d’un numéro de modèle, par exemple : vt100, hp2621, wy50.
Le nom de base pour une console Unix sur PC devrait être le nom de l’OS, par exemple : linux, bsdos, freebsd, netbsd. Il ne doit surtout pas s’appeler console ou quelque autre nom trop générique qui pourrait semer le trouble dans un environnement hétérogène. Si un numéro de modèle suit, il doit indiquer soit la version du système d’exploitation soit la version du pilote de périphérique de la console utilisée.
Le nom de base d’un émulateur de terminal (si il ne correspond ni à un type ANSI ni à un type vt100) devrait être le nom du programme ou une abréviation claire de celui-ci (par exemple : versaterm, ctrm).
Puis, à la suite du nom de base, vous pouvez ajouter un nombre raisonnable de suffixes de fonctionnalités.
2p |
Possède 2 pages de mémoire. De même pour 4p, 8p, etc. | ||
mc |
Magic-cookie. Certains terminaux (surtout les anciens Wyse) ne peuvent supporter qu’un attribut sans perte de magic-cookie. Leur entrée de base est habituellement couplée avec une autre qui a ce suffixe et utilise les magic cookies pour supporter les attributs multiples. | ||
-am |
Activer la marge automatique | ||
-m |
Mode monochrome - Suppression du support de la couleur | ||
-na |
Pas de touches fléchées (N.d.T : « No Arrow keys ») - termcap ignorera les touches fléchées habituelles sur le terminal. L’utilisateur pourra donc utiliser les touches fléchées en local. | ||
-nam |
Pas de marges automatiques - supprime la fonctionnalité de marge automatique. | ||
-nl |
Pas d’étiquettes - supprime les étiquettes logicielles (N.d.T : « soft labels »). | ||
-nsl |
Pas de ligne d’état (N.d.T : « No status line ») - Supprime la ligne d’état | ||
-pp |
Possède un port imprimante qui est utilisé. | ||
-rv |
Terminal avec mode vidéo inversé (noir sur blanc) | ||
-s |
Active la ligne d’état | ||
-vb |
Utilisation d’une cloche visible (un clignotement à l’écran) au lieu d’un son. | ||
-w |
Mode large (N.d.T : w comme « wide ») : le terminal est dans un mode avec 132 colonnes. |
Habituellement, si votre type de terminal est une variante d’un type de terminal avec un nombre de lignes spécifié, ce suffixe doit être présent en premier. Ainsi pour un terminal imaginaire FuBarCo modèle 2317 avec 30 lignes et la vidéo inversée, le nom le plus approprié serait fubar-30-rv (au lieu de « fubar-rv-30 »).
Les noms de terminaux qui sont utilisés non pas comme des entrées uniques, mais plutôt comme des composants ajoutés à d’autes entrées en utilisant la directive use, se distinguent habituellement par l’utilisation de « + » au lieu de « - ».
Les commandes qui utilisent le type de terminal spécifié par la variable d’environnement TERM pour contrôler leur affichage acceptent souvent l’option -T pour préciser un terminal spécifique.
COMPATIBILITÉ
Pour une compatibilité maximale avec les Unix System V anciens, les noms et alias doivent être uniques dans les 14 premiers caractères.
FICHIERS
/usr/share/terminfo/?/*
Base de données binaire relative aux fonctionnalités des différents terminaux
/etc/inittab
Initialisation des lignes tty (Pour les Unix compatibles AT&T).
/etc/ttys
Initialisation des lignes tty (Pour les Unix compatibles BSD).
VOIR AUSSI
ncurses(3), terminfo(5), term(5).
TRADUCTION
Pierre SOUCHAY <pierre.souchay [AT] free.fr>, 2001.