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

40

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

D'autre part, j'ai également un autre compte sur la même machine & quand je ssh à travers ce compte, son terminal fonctionne parfaitement bien. Je ne pouvais pas comprendre pourquoi cela se produit.

    
posée gopi1410 15.07.2012 - 12:56
la source

10 réponses

30

MODIFIER: Référence: réponse de Mateng.

Mateng est proche en ce que je pense que vous utilisez probablement Bourne Shell. Mais vous ne devriez pas éditer votre fichier /etc/passwd directement. Essayez d’utiliser la commande chsh à la place:

chsh -s /bin/bash

Le drapeau -s fera du nouveau shell (Bash dans ce cas) votre shell de connexion, à l'avenir.

    
réponse donnée Aaron 29.10.2012 - 17:48
la source
16

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 renvoyé:

/bin/sh

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

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

Je me suis déconnecté, puis reconnecté. Bizarrement, je devais changer de shell manuellement (peut-être un cache était-il actif) en entrant ceci:

/bin/bash

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

    
réponse donnée Mateng 29.10.2012 - 17:33
la source
12

lors de la première utilisation de 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

    
réponse donnée Drake Clarris 26.10.2012 - 15:01
la source
4

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

$ / bin / bash

La commande mentionnée ci-dessus 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 shell 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 seront nécessaires.

    
réponse donnée nightsinwhiteaustin 25.08.2017 - 18:17
la source
1

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

à partir de: Wikipedia > > Terminal GNOME

Le terminal GNOME émule l'émulateur de terminal xterm et fournit certaines des mêmes fonctionnalités.

Vous pouvez trouver un traité sur le problème et sa / ses solution (s) ici:

Retour arrière Linux / Supprimer le mini-HOWTO

Every Linux user has been sooner or later trapped in a situation in which having working Backspace and Delete keys on the console and on X seemed impossible. This paper explains why this happens and suggests solutions. The notions given here are essentially distribution-independent: due to the widely different content of system configuration files in each distribution, I will try to give the reader enough knowledge to think up his/her own fixes, if necessary.

I assume that the Backspace key should go back one character and then erase the character under the cursor. On the other hand, the Delete key should delete the character under the cursor, without moving it. If you think that the function of the two keys should be exchanged, in spite of the fact that most keyboards feature an arrow pointing to the left (←) on the Backspace key, then this paper will not give you immediate solutions, but certainly you may find the explanations given here useful.

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

    
réponse donnée david6 30.10.2012 - 10:19
la source
1

En tant qu'utilisateur root, modifiez 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.

    
réponse donnée Nagaraj Vittal 04.09.2015 - 11:20
la source
1

J'ai essayé toutes les notes ci-dessus et celles 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 la sortie de ce qui suit, il semble que vi ait été transformé en 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
    
réponse donnée jtlindsey 13.01.2016 - 16:05
la source
0

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 la compatibilité des préférences de profil avec le système hôte pour cet utilisateur spécifique.

    
réponse donnée sai siva sundar 15.09.2012 - 06:54
la source
0

D'accord, je sais que ce n'est pas une "solution" à proprement parler, et cela ne peut pas aider beaucoup d'entre vous , mais espérons-le aide au moins 1 d'entre vous . Cela a résolu mon problème.

Mon enfant de six mois a tapé sur mon clavier et mes touches de direction ont cessé de fonctionner lors de ma session de mastic dans une boîte Debian. Ils ont fonctionné partout ailleurs (tous les autres programmes en dehors du mastic). Après Googleing et même atterrir ici (j'allais fermer cet onglet, ça ne le résolvait 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) 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 le shell bash, j'ai essayé toutes les combinaisons possibles: CTRL + haut, bas, gauche droite, ALT + haut, bas, gauche, droite, SHIFT + haut, bas, gauche droite, CTRL + ALT +. haut, bas, gauche droite, CTRL + SHIFT + haut, bas, gauche droite, etc. Toujours sans succès, j'ai aussi essayé le menu des fenêtres et les touches de l'application Windows avec haut, bas et 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.

    
réponse donnée PyTis 25.05.2017 - 18:28
la source
0

Aucune des réponses ci-dessus n'a corrigé le même problème, c'est-à-dire que je ne peux pas utiliser des touches de retour arrière ou des touches similaires après l'envoi à un ordinateur distant d'Ubuntu (ici ubuntu-17.10 avec ncurses-6.0).

Cela finit par poser un problème avec terminfo. En gros, 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.

Ce qui suit a résolu le problème:

$host: echo $TERM
xterm-256color
$host: infocmp >terminfo.src
$host: tic terminfo.src
$host: scp .terminfo/x/xterm-256color $remote:/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.

    
réponse donnée user1448926 14.11.2017 - 15:52
la source

Lire d'autres questions sur les étiquettes