![ターミナルでバックスペース、タブが機能しない (ssh を使用)](https://rvso.com/image/23946/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A7%E3%83%90%E3%83%83%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%80%81%E3%82%BF%E3%83%96%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84%20(ssh%20%E3%82%92%E4%BD%BF%E7%94%A8).png)
自分のアカウント(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
以前にもそのような問題を見たことがありました。
たとえば、バックスペースを例にとると、リモート ホストは「消去/バックスペース」として使用される文字を想定しています。ターミナルでバックスペースを押すと、ターミナル プログラムはリモート ホストに文字を送信します。リモート ホストが想定している文字とターミナル プログラムによって送信された文字が異なる場合、この問題が発生します。簡単な修正方法は次のとおりです。
- リモート ホストでコマンドを実行し
#stty -a
、出力で消去コードと思われるものを見つけます。 と入力しますerase=^?
。 - ターミナルで、Ctrl+を押してv、バックスペースを押します。「消去」として送信されるコードが表示されます。 と入力します
^H
。 - リモート ホストで を実行します
#stty erase ^H
。
(注: Ctrlv+を使用してくださいBackspace。^ を手動で入力しないでください)
上記と同じ方法でタブの問題を修正できます。
答え3
これは、デフォルトのシェルが であるためです。sh
を使用するにはbash
、bash
シェルから を実行するだけです。
bash
bash
デフォルトのシェルとして設定するには:
chsh -s /bin/bash
または
sudo chsh -s /bin/bash yourusername
答え4
シェルは/bin/sh
、/bin/bash