ターミナルでバックスペース、タブが機能しない (ssh を使用)

ターミナルでバックスペース、タブが機能しない (ssh を使用)

自分のアカウント(sudo 権限付き)で Debian の別のマシンに ssh すると、バックスペース キーを押すと奇妙な記号が生成されます。また、Tab&delキーも機能しません。

一方、同じマシンに別のアカウントもあり、このアカウントを介して ssh すると、ターミナルは完全に正常に動作します。なぜこのようなことが起こるのかわかりません。

答え1

「stty」ソリューションの他に、「TERM」ソリューションを試すこともできます。

何らかのターミナル (putty、solaris dterm、debain xterm、その他) から Debian に ssh すると、このターミナルは TERM 環境変数を介して機能 (Backspace キーや Tab キーなどを含む) を通知します。

したがって、Unix ホスト (Debian または他のホストに依存しません) に ssh した後、ターミナルに応じて TERM 変数を設定します。シェルとして bash を使用し、ターミナルとして vt100 を使用しているとします。

export TERM=vt100

ps: TERM は ssh 経由で自動的に通知されるはずですが、状況によってはこの魔法が失敗します。

答え2

以前にもそのような問題を見たことがありました。

たとえば、バックスペースを例にとると、リモート ホストは「消去/バックスペース」として使用される文字を想定しています。ターミナルでバックスペースを押すと、ターミナル プログラムはリモート ホストに文字を送信します。リモート ホストが想定している文字とターミナル プログラムによって送信された文字が異なる場合、この問題が発生します。簡単な修正方法は次のとおりです。

  1. リモート ホストでコマンドを実行し#stty -a、出力で消去コードと思われるものを見つけます。 と入力しますerase=^?
  2. ターミナルで、Ctrl+を押してv、バックスペースを押します。「消去」として送信されるコードが表示されます。 と入力します^H
  3. リモート ホストで を実行します#stty erase ^H
    (注: Ctrlv+を使用してくださいBackspace。^ を手動で入力しないでください)

上記と同じ方法でタブの問題を修正できます。

答え3

これは、デフォルトのシェルが であるためです。shを使用するにはbashbashシェルから を実行するだけです。

bash

bashデフォルトのシェルとして設定するには:

chsh -s /bin/bash 

または

sudo chsh -s /bin/bash yourusername

答え4

シェルは/bin/sh/bin/bash

関連情報