Lorsque vous définissez le type TERM, vous dites à l'hôte quel TERMCAP utiliser pour dessiner dans la fenêtre du terminal. La plupart des hôtes * NIX ne savent pas ce qu'est un type de terme `` cygwin '', ils ne savent donc pas comment manipuler les caractères à l'écran tels que les insertions, les suppressions, les parchemins, les changements de police, etc.
Si vous modifiez la variable TERM dans CYGWIN avant telnet ou SSH en un hôte, vous obtiendrez de bien meilleurs résultats:
À CYGWIN:
d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1
d@suntest1's password:
Sun Microsystems Inc. SunOS 5.8 Generic patch October 2001
d pts/1 test01 Fri Oct 12 00:15 still logged in
$ echo $TERM
ansi
$_
L'hôte sait maintenant que vous avez un type de terminal ANSI et il peut utiliser son fichier ANSI TERMCAP pour lui dire comment communiquer.
Si vous ne parvenez pas à le faire fonctionner et que tout fonctionne correctement, sauf le retour arrière, vous pouvez reprogrammer "getty" sur l'hôte auquel vous vous connectez pour reconnaître ce que vous voulez, et voici comment (c'est le plus ancien, le plus courant et le plus universel) moyen de résoudre les problèmes de retour arrière / suppression):
Vous SSH ou Telnet à votre hôte et dans l'hôte, vous exécutez la commande stty. Si vous appuyez sur la touche "RETOUR ARRIÈRE" et qu'elle ne revient pas en arrière, c'est parce que le terminal recherche probablement un caractère différent en fonction du type TERM. Plutôt que de fouiller tout cela, vous pouvez définir manuellement la définition de retour arrière sur la CLI ou dans votre fichier de profil .profile, .bashrc ou .bash dans votre répertoire $ HOME comme vous le souhaitez ou en fonction de la saveur de * NIX que vous êtes en utilisant.
Donc, si vous appuyez sur ^ H (c'est CONTROL-H) et que votre clé sauvegarde mais que vous appuyez sur la touche RETOUR ARRIÈRE et qu'elle n'essaie pas d'utiliser stty comme suit:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
La plupart du temps, cela ressemblera à ceci:
stty erase \^?[ENTER]
Le '\' lui indique que le caractère suivant va être un caractère de contrôle non imprimable et l'accepter, pas "l'interpréter".
Une fois que vous avez appuyé sur [ENTER], vous devriez pouvoir appuyer sur votre touche [RETOUR ARRIÈRE] et la faire reculer / supprimer tout ce que vous avez tapé.
Vous pouvez définir cela dans votre shell.
Maintenant, si vous utilisez toujours VI, parfois la traduction ne fonctionne pas et vous devez réellement taper ^ H dans vi, mais c'est OK.
Vous auriez pu dire:
stty erase k [ENTER]
et il aurait littéralement traduit «k» dans le caractère d'effacement / suppression ..
-RÉ