web-dev-qa-db-ja.com

端末でBackspace、Tab、Del、および矢印キーが機能しない(sshを使用)

自分のアカウントで(Sudo権限を持つ)別のUbuntuマシンにsshすると、バックスペースキーを押すといくつかの厄介な記号が生成されます。また、Tab、Del、および矢印キーは機能しません。

一方、同じマシン上に別のアカウントもあります。このアカウントを使用してsshを実行すると、その端末は完全に正常に動作します。なぜこれが起こっているのか分かりませんでした。

41
gopi1410

EDIT:参照:Matengの answer

Matengは、Bourne Shellを実行していると思われるという点で近いです。ただし、/etc/passwdファイルを直接編集しないでください。代わりにchshコマンドを使用してみてください。

chsh -s /bin/bash

-sフラグは、新しいシェル(この場合はBash)をログインシェルにして、先に進みます。

30
Aaron

次の変更により、問題は解決しました。まず、どのシェルが実行されているかを確認しました。

$ echo $0

返された:

/bin/sh

これを読んでいると buntuforumsに投稿 で、シェルを/bin/bashに変更することで解決できます。そこで、/etc/passwdのユーザー設定を次のように編集しました。

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

ログアウトしてから、再度ログインしました。奇妙なことに、次のように入力して、シェルを手動で切り替える必要がありました(キャッシュがアクティブだったのかもしれません)。

/bin/bash

出来上がり!
[ディストリビューションの更新により問題が発生しました。]

16
Mateng

最初にsshするとき、これらの2つのコマンドを試してください

stty sane
export TERM=linux

この問題を正確に修正するために、いくつかのマシンでこれを行う必要があります

13
Drake Clarris

この問題を修正する最も簡単な方法の1つは、コマンドラインインターフェイスのプロンプトで/ bin/bashと入力することです。

$/bin/bash

前述のコマンドは、既存のシェルの上にBourne Againシェルをサブプロセスとして実行します。これには、より多くのリソースを使用するというデメリットがありますが、編集する必要はなく、特別な権限は必要ありません。たとえば、最近のKubuntuバージョンでは、デフォルトの/ bin/dashコマンドラインシェルインターフェース上で/ bin/bashセッションを開始します。

ただし、変更を永続化するには、/ etc/passwdファイルを編集し、ユーザーに対応する行の最後の「:」文字の後にデフォルトのシェルを/ bin/bashに追加/編集/交換します。ただし、このファイルを編集するには、管理者権限が必要です。

5

上記のすべてに加えて( this link )のメモを試してみましたが、成功しませんでした。 vimがインストールされていることを確認してください。

通常、vimではなくviを使用します。そこで、vimをインストールしました。

$ Sudo apt-get install vim

その後、viを実行すると、キーボードストロークが正常に動作し始めました。次の出力を見ると、インストール後にviがvimのエイリアスになっているようです。

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

「Gbnome Terminal」は「xterm」を正確にエミュレートしません..

from: Wikipedia >> GNOME Terminal

GNOMEターミナルはxtermターミナルエミュレータをエミュレートし、いくつかの同じ機能を提供します。


問題と解決策に関する論文はここにあります:

Linux Backspace/Delete mini-HOWTO

すべてのLinuxユーザーは、遅かれ早かれ、コンソールおよびXでBackspaceキーとDeleteキーを使用することが不可能に思われる状況に陥りました。このホワイトペーパーでは、これが発生する理由を説明し、解決策を提案します。ここで示した概念は、本質的にディストリビューションに依存しません。各ディストリビューションのシステム構成ファイルの内容が大きく異なるため、必要に応じて、読者に自分の修正を考えるのに十分な知識を与えようとします。

Backspaceキーは1文字戻り、カーソルの下の文字を消去する必要があると思います。一方、Deleteキーはカーソルの下の文字を移動せずに削除する必要があります。ほとんどのキーボードはBackspaceキーの左(←)を指す矢印を備えているにもかかわらず、2つのキーの機能を交換する必要があると思われる場合は、このペーパーではすぐに解決できるわけではありませんが、ここに記載されている説明が役立つ場合があります。

(ここで動作する可能性があります)最も簡単な解決策は、次を使用することです:bash $ export TERM = gnome

1
david6

Rootユーザーとして、ユーザーの/ etc/passwdファイルを編集し、/ bin/shから/ bin/bashに変更します

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

これは私のために働いた。

1
Nagaraj Vittal

これはキーボードとの互換性の問題、つまりホストシステムでの解釈方法です。コマンドモードのviエディターで移動するには、jまたはhを使用する必要がある場合があります。矢印は機能しません。

その特定のユーザーのホストシステムのプロファイル設定->互換性を確認します。

0
sai siva sundar

さて、これは言うごとに「解決策」ではないことを知っています。そして、それは多くのあなたを助けないかもしれません、しかし少なくとも1人のユーザーに役立つことを願っています。それは私の問題を解決しました。

私の6か月前のキーボードが私のキーボードで叩かれ、矢印キーがDebianボックスへのPuTTYセッションで動作しなくなりました。彼らは他のどこでも動作しました(PuTTY以外のすべてのプログラム)。グーグルで検索してここに着陸した後(このタブを閉じようとしていましたが、解決しませんでした)。私は何かを試しました。同じボックスへの新しいsshセッションを開き、矢印キーが機能しました。スクリーンセッションに参加しましたが、機能しませんでした。そのため、矢印キーを無効にする現在のスクリーンセッションに関連する何かが発生しました。残念なことに、私は大きなプロジェクトの途中で(スクリーンセッションで28個のウィンドウを開いていました)、セッションを閉じたくなく、28個のウィンドウすべてで場所を失いました。

そう..

Bashシェルで、Ctrl +上、下、左、右、ALT +上、下、左、右、SHIFT +上、下、左、右、CTRL + ALT +上、下など、考えられるすべての組み合わせを試しました、左、Ctrl + Shift +上、下、左、右など。幸運にも、上、下、左、右の順にWindowsメニューとWindowsアプリのキーを試しました。

今、私の矢印は再び機能します!上にあるものと矢印キーの組み合わせの1つに関する何かがそれを修正しました。

0
PyTis

上記の答えのどれも私の同じ問題を解決しませんでした。つまり、Ubuntu(ここではncurses-6.0を備えたubuntu-17.10)にリモートで接続した後、バックスペースまたは同様のキーを使用できません。

最終的にterminfoの問題になります。基本的に、私のgnome-terminalは、xterm-256color端末(sshによってリモートにエクスポートされるTERM変数経由)であると言いますが、リモートにはxterm-256colorのterminfo設定がありません。

以下を行うことで問題が修正されました。

 $ Host:echo $ TERM 
 xterm-256color 
 $ Host:infocmp> terminfo.src 
 $ Host:tic terminfo.src 
 $ホスト:scp .terminfo/x/xterm-256color $ remote:/ usr/share/terminfo/x/xterm-256color 

infocmpは、オプションなしで、環境変数$ TERMに端末のソースリストを作成します。したがって、infocmp -I $ TERMと同等です。

次に、結果のソースがチックを介してコンパイルされます。

最後に、対応するterminfo構成をリモートの場所にインストールします。そのため、次に$ Hostを介して$ remoteに接続すると、私の端末が認識されます。

0
user1448926