web-dev-qa-db-fra.com

Les touches de retour arrière, de tabulation, de suppression et de flèche ne fonctionnent pas dans le terminal (avec ssh)

Lorsque je ssh sur une autre machine Ubuntu avec mon compte (avec les autorisations Sudo), ma touche de retour arrière génère des symboles difficiles en appuyant sur. De plus, les touches Tab, Suppr et Flèche ne fonctionnent pas.

D'autre part, j'ai aussi un autre compte sur la même machine et lorsque je passe à travers ce compte, son terminal fonctionne parfaitement. Je ne pouvais pas comprendre pourquoi cela se produit.

41
gopi1410

EDIT: Référence: Mateng's answer

Mateng est proche dans le sens où je pense que vous utilisez probablement Bourne Shell. Mais vous ne devriez pas modifier votre fichier /etc/passwd directement. Essayez plutôt d'utiliser la commande chsh:

chsh -s /bin/bash

L'option -s fera du nouveau Shell (Bash dans ce cas) votre Shell de connexion, à l'avenir.

30
Aaron

Les modifications suivantes ont résolu le problème pour moi. Tout d'abord, j'ai vérifié quel shell était en cours d'exécution:

$ echo $0

qui a rendu:

/bin/sh

Comme je l'ai lu dans ce publier dans Ubuntuforums , changer le Shell en /bin/bash apporte la solution. J'ai donc modifié mes paramètres utilisateur dans /etc/passwd pour:

johndoe:x:1001:104:John Doe:/home/johndoe:/bin/bash

Je me suis déconnecté, puis connecté à nouveau. Bizarrement, je devais changer de shell manuellement (peut-être une partie du cache était-elle active) en entrant ceci:

/bin/bash

Voila!
[Le problème est dû à une mise à jour de la distribution.]

16
Mateng

quand vous commencez à utiliser ssh, essayez ces deux commandes

stty sane
export TERM=linux

Je dois le faire sur certaines machines dans lesquelles je vais résoudre exactement ce problème

13
Drake Clarris

L'un des moyens les plus simples de résoudre ce problème consiste à taper/bin/bash sur l'interface de ligne de commande.

$/bin/bash

La commande susmentionnée exécutera le Bourne Again Shell par-dessus le Shell existant en tant que sous-processus. Cela présente l'inconvénient d'utiliser plus de ressources, mais rien ne doit être modifié et aucune autorisation spéciale n'est requise. Par exemple, dans les versions récentes de Kubuntu, une session/bin/bash sera lancée sur l'interface de ligne de commande/bin/dash par défaut.

Pour conserver les modifications, une solution consiste toutefois à modifier le fichier/etc/passwd et à ajouter/modifier/remplacer le shell par défaut dans/bin/bash après le dernier caractère ':' de la ligne correspondant à l'utilisateur. Pour pouvoir modifier ce fichier, des privilèges d’administrateur sont nécessaires.

5
nightsinwhiteaustin

J'ai essayé tout ce qui précède plus les notes de ( ce lien ) sans succès. Vous voudrez peut-être vérifier que vim est installé.

J'utilise habituellement vi pas vim. J'ai donc installé vim.

$ Sudo apt-get install vim

Après cela, les touches du clavier ont commencé à fonctionner correctement lorsque j'ai exécuté vi. En regardant le résultat de ce qui suit, il semblerait que vi ait été transformé en un alias pour vim après l’installation:

$ ls -al /etc/alternatives | grep vi 
lrwxrwxrwx   1 root root    18 Jan 13 09:38 vi -> /usr/bin/vim.basic
1
jtlindsey

'Gbnome Terminal' n'émule pas exactement 'xterm' ..

à partir de: Wikipedia >> Terminal GNOME

Le terminal GNOME émule l'émulateur de terminal xterm et fournit une partie de les mêmes fonctionnalités.


Vous pouvez trouver un traité sur le problème et sa solution ici:

mini-HOWTO Linux Backspace/Delete

Chaque utilisateur de Linux a été tôt ou tard pris au piège dans une situation dans laquelle il semblait impossible de disposer des touches de retour arrière et de suppression sur la console et sur X. Ce document explique pourquoi cela se produit et suggère des solutions. Les notions données ici sont essentiellement indépendantes de la distribution: en raison du contenu très différent des fichiers de configuration système dans chaque distribution, je vais essayer de donner au lecteur suffisamment de connaissances pour imaginer ses propres correctifs, si nécessaire.

Je suppose que la touche Retour arrière doit revenir d’un caractère à l’autre, puis effacer le caractère situé sous le curseur. Par ailleurs, la touche Suppr doit supprimer le caractère situé sous le curseur, sans le déplacer. Si vous pensez que la fonction des deux touches doit être remplacée, alors que la plupart des claviers comportent une flèche pointant vers la gauche (←) sur la touche Retour arrière, cet article ne vous donnera pas de solutions immédiates, mais certainement vous. peut trouver utiles les explications données ici.

La solution la plus simple (pouvant fonctionner ici) consiste à utiliser: bash $ export TERM = gnome

1
david6

En tant qu'utilisateur root, éditez le fichier/etc/passwd pour votre utilisateur et passez de/bin/sh à/bin/bash

hdfs: x: 1020: 1001 ::/home/hdfs:/bin/sh vers hdfs: x: 1020: 1001 ::/home/hdfs:/bin/bash

Cela a fonctionné pour moi.

1
Nagaraj Vittal

Il s’agit d’un problème de compatibilité avec le clavier, c’est-à-dire la façon dont il est interprété dans le système hôte. Vous devrez peut-être utiliser j ou h pour vous déplacer dans l'éditeur vi en mode commande. Les flèches ne fonctionneront pas.

Vérifiez les préférences de profil -> compatibilité dans le système hôte pour cet utilisateur spécifique.

0
sai siva sundar

Ok, je sais que ce n'est pas une "solution" à proprement parler, et il peut ne pas aider beaucoup d'entre vous , mais J'espère que cela aidera au moins 1 d'entre vous . Cela a résolu mon problème.

Mon enfant de six mois a frappé sur mon clavier et mes touches de direction ont cessé de fonctionner sur ma session PuTTY dans une boîte Debian. Ils ont fonctionné partout ailleurs (tous les autres programmes en dehors de PuTTY). Après Googleing et même atterrir ici (j'allais fermer cet onglet, ça ne le résout pas pour moi). J'ai essayé quelque chose. J'ai ouvert une nouvelle session SSH dans la même boîte et mes touches de direction ont fonctionné. J'ai rejoint ma session d'écran et ils n'ont pas fonctionné. Donc, quelque chose vient de se passer lié à la session d'écran en cours qui désactive les touches fléchées. Malheureusement, j'étais au milieu d'un gros projet, j'avais 28 fenêtres ouvertes dans ma session écran et je ne voulais pas la fermer, perdant ainsi ma place sur chacune des 28 fenêtres.

Alors..

Pendant que j'étais sur la bash de Shell, j'ai essayé toutes les combinaisons possibles, de CTRL + haut, bas, gauche droite, ALT + haut, bas, gauche, droite, SHIFT + haut, bas, gauche droite, CTRL + ALT + haut, bas , gauche droite, CTRL + MAJ + haut, bas, gauche droite, etc. Toujours sans chance, j'ai aussi essayé le menu des fenêtres et les touches de l'application Windows avec haut, bas, gauche droite.

Maintenant, mes flèches fonctionnent à nouveau! Quelque chose à propos de l’une des combinaisons de ce qui est au-dessus et des touches fléchées le corrige.

0
PyTis

Aucune des réponses ci-dessus ne résout mon problème identique, c’est-à-dire que je ne peux pas utiliser des touches de retour d’espace ou des touches similaires après avoir envoyé un pseudonyme à un utilisateur distant d’Ubuntu (ici ubuntu-17.10 avec ncurses-6.0).

Cela finit par être un problème avec terminfo. Fondamentalement, mon gnome-terminal dit que c’est un terminal xterm-256color (via la variable TERM, qui est exportée par ssh vers la télécommande), mais la télécommande n’avait pas de configuration terminfo pour xterm-256color.

Procédez comme suit pour résoudre le problème:

 $ Hôte: echo $ TERM 
 Xterm-256color 
 $ Hôte: infocmp> terminfo.src 
 $ Hôte: tic terminfo.src 
 $ Hôte: scp .terminfo/x/xterm-256color $ distant:/usr/share/terminfo/x/xterm-256color 

infocmp, sans aucune option, produit une liste source pour le terminal dans la variable d'environnement $ TERM. Donc, cela équivaut à infocmp -I $ TERM.

Ensuite, la source résultante est compilée via tic.

Enfin, installez la configuration terminfo correspondante sur l’emplacement distant. Ainsi, lors de ma prochaine connexion à $ remote via $ Host, il sera informé de mon terminal.

0
user1448926