Certains terminaux envoient ^h
(caractère numéro 8) pour le BackSpace et d'autres envoient ^?
(caractère numéro 127). De nombreux émulateurs de terminal peuvent être configurés, et la plupart des programmes peuvent être configurés pour savoir quelle touche attendre. Il est évident que les deux parties doivent se mettre d'accord.
Stty est un moyen par lequel les applications peuvent interroger la configuration du terminal. erase = ^?
signifie que le fichier de description de votre terminal sur le serveur affirme que lorsque votre terminal envoie ^?
cela signifie "effacer le caractère précédent". werase = ^?
signifie que ^?
signifie "effacer le mot précédent". Il y a une contradiction entre ces deux paramètres.
Lorsque vous vous connectez par ssh, le client ssh envoie un nom pour le terminal, qui est placé dans le fichier de configuration du terminal. TERM
variable d'environnement. Les programmes du serveur recherchent ensuite les descriptions du terminal dans une base de données (appelée termcap ou terminfo). Si ces descriptions sont cassées, ou si un fichier de configuration quelque part (tel que /etc/profile
o ~/.login
o ~/.bashrc
) remplace les descriptions par des données erronées, vous risquez de vous retrouver avec un décalage. Par exemple, une source possible de votre problème est qu'un fichier d'initialisation contient la commande stty werase '^?'
(forçage ^?
pour signifier un effacement de mot) pendant que votre terminal envoie ^?
pour la touche de retour en arrière.
L'idéal est de résoudre le conflit, car de nombreux programmes lisent ces informations.
Dans Putty, vous pouvez configurer les éléments suivants ^?
o ^h
le site BackSpace la clé envoie. Vérifiez la valeur de ce paramètre. La façon la plus simple de résoudre votre problème est peut-être de faire en sorte que Putty envoie ^h
para BackSpace et assurez-vous que le serveur utilise ce paramètre ( stty erase '^h'
à mettre en place ~/.bashrc
le forceront).