2008-11-19 9 views
3

Cela m'a toujours dérangé. Quand je ssh ou telnet à un serveur Unix (quelle que soit la saveur), il parvient toujours à deviner correctement le type de terminal à partir duquel je me connecte et donc le clavier agit normalement ... c'est-à-dire la touche backspace fonctionne.Mappage des touches du terminal distant Unix

Mais quand je suis connecté, il devine souvent incorrectement le type de terminal que je utilise et rend les correspondances clés incorrectes - en particulier pour la touche Retour arrière, ce qui signifie que je dois publier un:

stty erase ... 

Type commande pour le réparer.

Tous les gourous Unix savent là pourquoi cela se produit?

Répondre

2

Je pense que vous voulez dire backspace fonctionne correctement lorsque vous saisissez votre nom d'utilisateur et mot de passe, il cesse de fonctionner après que vous avez connecté.

stty Très probablement est réglé à autre chose dans ~/.profile ou/etc/profile (ou un autre script qui s'exécute à la connexion).

Trouvez ce fichier et commentez la ligne.

+0

Oui, désolé, j'aurais dû être plus explicite. Il s'agit plus d'une question générale que d'une plate-forme spécifique mais vous avez raison ... c'est probablement aussi simple que quelque chose dans le fichier/etc/profile – gnuchu

0

Quel logiciel SSH/Telnet utilisez-vous?

Lors de la connexion via SSH, nom d'utilisateur/mot de passe est généralement géré par le client, de sorte qu'il peut être sans importance.

Je dirais que la variable d'environnement TERM est mal réglé par votre logiciel de terminal, par exemple. mis à "vt100" lorsque le terminal est configuré pour se comporter comme xterm, etc.

1

Le shell sécurisé (ssh) demandera très probablement le nom d'utilisateur et le mot de passe dans le logiciel client avant même d'avoir tenté de contacter l'hôte, il utilise donc le service local. conventions.

Telnet communique généralement avec le démon telnetd sur l'hôte (extrémité distante) et l'hôte sera la manipulation d'E/S.

Il y a de bonnes chances que votre programme de terminal soit configuré correctement pour communiquer avec telnetd mais, après s'être connecté, divers scripts peuvent affecter les paramètres du terminal (quelque chose comme stty erase '^H'). Selon le système UNIX auquel vous vous connectez et le shell que vous utilisez, cela peut être une combinaison de/etc/profile, ~/.profile, ~/.bashrc, ~/.kshrc et ainsi de suite. Votre meilleur pari est de trouver le dernier dans la chaîne des fichiers de type profil (probablement ~/.profile) et de mettre un stty erase 'X' dedans, où X est la touche désirée pour votre programme terminal.

En aparté, les type de profil sont exploités pour un shell de connexion que tandis que les autres ont tendance à être exécuté pour un sous-shell créé.

Questions connexes