J'ai un accès ssh à une machine distante. Dans cette machine, si je cours, echo $TERMje reçois xterm.
Si je veux changer mon émulateur de terminal en un autre émulateur (en supposant qu'il soit installé sur la machine distante), comment dois-je procéder?
La valeur de la variable d'environnement TERM est utilisée par le serveur (dans le système V, ou BSD, systèmes d'exploitation dérivés) pour contrôler la façon dont l'entrée est reconnue par le système et quelles capacités existent pour la sortie. Certains types de terminaux sont suffisamment similaires pour pouvoir être échangés tout en restant utiles, tandis que d'autres peuvent rendre le système inutilisable jusqu'à ce que vous ouvriez une nouvelle connexion avec une valeur prise en charge pour TERM. Par exemple, d'un système Linux à un autre, vous constaterez probablement très peu de différence entre les paramètres vt100, vt220 et xterm. La plupart des différences seraient dans la façon dont la sortie est affichée et si les couleurs ou les polices en gras sont disponibles pour ce type de terminal. La base de données termcap répertorie tous les types de terminaux, avec leurs différentes capacités.
Tant que vous ne passez pas à un type de terminal avec lequel votre clavier et votre écran ne sont pas compatibles, tout ira bien.
lisez la page de manuel de term et de termcap sur votre système pour plus d'informations.
Pour changer le type de terminal:
en bash:
export TERM=vt100
en bourne shell ou ksh:
TERM=vt100
export TERM
en csh ou tcsh:
setenv TERM vt100
vt100est un terminal assez sûr pour commencer à jouer. il est compatible avec xterm, mais il n'affiche pas les couleurs ou les polices en gras et peut ne pas reconnaître vos touches F *, mais il est peu probable que vous gâchiez vraiment quoi que ce soit en utilisant vt100.
De nombreuses personnes utilisent la détection des terminaux dans les scripts d'initialisation personnels pour optimiser leur expérience utilisateur en fonction de la façon dont ils se connectent au serveur. Par exemple, définissez une PS1 simple si vous utilisez vt100, utilisez des variables de couleur et dynamiques lorsque vous utilisez bash dans un xterm.
@intrpc Notez qu'il est assez rare de devoir changer la TERMvariable; c'est surtout nécessaire lorsque vous vous connectez à un ancien système qui ne connaît pas le nom d'un terminal plus récent (et il n'y a pas eu beaucoup de nouveaux types de terminaux au cours des 15 dernières années environ, la plupart des émulateurs de terminaux se présentent comme xterm). TERMest ce à quoi les programmes de type terminal pensent qu'ils parlent, cela ne change pas ce qu'est réellement le terminal
Gilles 'SO- arrête d'être méchant'
9
Vous vous méprenez.
Votre console ou terminal ou instance PuTTY du côté LOCAL est le véritable "émulateur de terminal", même si de nos jours nous raccourcissons simplement en "terminaux". L'usage remonte à l'époque où les gens utilisaient réellement des terminaux à écran et clavier pour se connecter à un serveur mainframe plutôt que d'utiliser plusieurs consoles et des environnements utilisateur graphiques.
La variable $ TERM indique simplement au système distant quel type de codes de contrôle votre terminal comprendra lorsqu'il les envoie (par exemple, pour générer des menus textuels ou tout ce qui est basé sur libncurses).
Je ne sais pas exactement ce que vous voulez accomplir, mais changer $ TERM n'aidera probablement pas.
Merci @Shadur, c'est utile. Je voudrais activer la prise en charge de plus de couleurs. J'ai des problèmes avec les caractères qui s'échappent, comme je l'explique dans la mise à jour de cette question . Au cas où cela importerait, les deux machines / systèmes sont modernes ( Ubuntu 11.10sur ma machine locale et Red Hat Enterprise Linux Server release 5.4 (Tikanga)sur la machine distante)
Amelio Vazquez-Reina
Désolé, le lien était vers la mauvaise question. Je viens de modifier mon commentaire ci-dessus.
Amelio Vazquez-Reina
Ensuite, votre problème n'est toujours pas la variable TERM, car ma fenêtre de gnome-terminal, SSHed à un serveur distant avec une valeur $ TERM de xterm n'a aucun problème de rendu des couleurs ansi. Il serait peut-être préférable d'expliquer votre problème plutôt que de demander comment mettre en œuvre ce que vous pensez être la solution.
Shadur
Merci, mais je n'ai pas dit que "mon problème" était la $TERMvariable. De plus, je ne pose pas cette question dans le seul but de trouver une solution à un problème / question différent. Si quoi que ce soit, mon autre question a motivé cette question. Enfin, je ne pense pas qu'il y ait quelque chose de mal à espérer en savoir plus sur le fonctionnement des émulateurs de terminaux en posant cette question.
Amelio Vazquez-Reina,
Au fait, ne vous méprenez pas, j'apprécie vos conseils et, comme je l'ai dit plus tôt, votre réponse m'a aidé à mieux comprendre les émulateurs de terminaux.
TERM
variable; c'est surtout nécessaire lorsque vous vous connectez à un ancien système qui ne connaît pas le nom d'un terminal plus récent (et il n'y a pas eu beaucoup de nouveaux types de terminaux au cours des 15 dernières années environ, la plupart des émulateurs de terminaux se présentent commexterm
).TERM
est ce à quoi les programmes de type terminal pensent qu'ils parlent, cela ne change pas ce qu'est réellement le terminalVous vous méprenez.
Votre console ou terminal ou instance PuTTY du côté LOCAL est le véritable "émulateur de terminal", même si de nos jours nous raccourcissons simplement en "terminaux". L'usage remonte à l'époque où les gens utilisaient réellement des terminaux à écran et clavier pour se connecter à un serveur mainframe plutôt que d'utiliser plusieurs consoles et des environnements utilisateur graphiques.
La variable $ TERM indique simplement au système distant quel type de codes de contrôle votre terminal comprendra lorsqu'il les envoie (par exemple, pour générer des menus textuels ou tout ce qui est basé sur libncurses).
Je ne sais pas exactement ce que vous voulez accomplir, mais changer $ TERM n'aidera probablement pas.
la source
Ubuntu 11.10
sur ma machine locale etRed Hat Enterprise Linux Server release 5.4 (Tikanga)
sur la machine distante)$TERM
variable. De plus, je ne pose pas cette question dans le seul but de trouver une solution à un problème / question différent. Si quoi que ce soit, mon autre question a motivé cette question. Enfin, je ne pense pas qu'il y ait quelque chose de mal à espérer en savoir plus sur le fonctionnement des émulateurs de terminaux en posant cette question.