GNU/Linux >> Tutoriels Linux >  >> Linux

Comment et où $term est-il interprété ?

Je me demande comment une certaine magie terminale fonctionne en interne.

En jouant avec les conteneurs Docker, la variable d'environnement $TERM n'a pas été défini. Cela a conduit à des applications de console étranges comme vim et tmux, mais aussi à l'ignorance de CTRL+l (écran clair).

Je suis à peu près sûr que toutes les fonctionnalités comme les mises à jour partielles de l'écran, les couleurs, les commandes comme la réinitialisation de l'écran, etc. sont réalisées à l'aide de codes d'échappement, n'est-ce pas ?

Alors où est interprétée cette variable et permet par exemple de réinitialiser l'écran de mon terminal à l'aide de CTRL+l si j'y mets la bonne valeur ? Qui vérifie par exemple, quelles couleurs sont prises en charge (xterm vs xterm-256color) ? La coquille? L'application ou une librairie comme ncurses ? Et où sont définis les valeurs/types de terminaux possibles ?

Réponse acceptée :

$TERM est lu et interprété par le système terminfo. terminfo fait également référence à la base de données des descriptions de terminaux que vous pouvez trouver sur la plupart des systèmes dans /usr/share/terminfo . $TERM doit correspondre à l'une des entrées de cette base de données. Il y avait aussi une ancienne bibliothèque appelée termcap qui avait moins de capacités, mais terminfo l'a remplacée. Dans les systèmes modernes, terminfo fait partie de la bibliothèque ncurses.

Les applications récupèrent généralement les fonctionnalités du terminal directement à l'aide de fonctions de bibliothèque telles que tigetstr() ou ils utilisent des interfaces curses de niveau supérieur pour gérer la disposition de l'écran. Dans tous les cas, $TERM et la base de données terminfo sera consultée.


Linux
  1. Comment démarrer la commande Linux en arrière-plan et détacher le processus dans le terminal

  2. Comment personnaliser les couleurs et le contenu de Bash dans l'invite du terminal Linux

  3. Comment Noëlsifier votre terminal et votre shell Linux

  4. Tput :aucune valeur pour $term et aucun -t spécifié ?

  5. Comment installer Guake Terminal et l'ajouter au démarrage automatique

Comment sauvegarder et restaurer l'historique du terminal Linux

Comment installer et utiliser l'émulateur de terminal Tilix sous Linux

Comment installer et utiliser l'émulateur de terminal Konsole sous Linux

Comment installer et utiliser Terminator Terminal sous Linux

Comment copier des fichiers et des répertoires dans un terminal Linux

Comment effacer le terminal sous Linux {Effacer l'écran sous Linux}