3

これはいつも私を悩ませてきました。Unix サーバーに ssh または telnet で接続すると (どんなフレーバーでも)、常にログインしている端末の種類を正しく推測できるため、キーボードは常に「通常どおり」動作します...つまり、バックスペース キーが機能します。

しかし、ログインに成功すると、使用している端末の種類を誤って推測し、キー マッピングを誤って作成することがよくあります。特にバックスペース キーの場合は、次のコマンドを発行する必要があります。

stty erase ...

コマンドを入力して修正します。

Unix の達人は、なぜこれが起こるのか知っていますか?

4

3 に答える 3

2

ユーザー名とパスワードを入力しているときにバックスペースが適切に機能し、ログイン後に機能しなくなるということだと思います。

~/.profile または /etc/profile (またはログイン時に実行される別のスクリプト) で stty が別の値に設定されている可能性があります。

そのファイルを見つけて、その行にコメントを付けます。

于 2008-11-19T10:38:09.690 に答える
1

セキュア シェル (ssh) は、ホストに接続しようとする前に、クライアント ソフトウェアでユーザー名とパスワードを要求する可能性が高いため、ローカルの規則を使用しています。

Telnet は通常、ホスト (リモート エンド) 上の telnetd デーモンと通信し、ホストは I/O を処理します。

端末プログラムが telnetd と対話するように正しく構成されている可能性は十分にありますが、ログイン後、端末設定に影響を与える可能性のあるさまざまなスクリプトが実行されます ( stty erase '^H'. 接続している UNIX システムと使用しているシェルによっては、これは /etc/profile、~/.profile、~/.bashrc、~/.kshrc などの組み合わせになる場合があります)。

最善の策は、一連のプロファイル タイプ ファイル (おそらく ~/.profile) の最後のファイルを見つけてstty erase 'X'そこに入れることです。ここで、X は端末プログラムで実際に必要なキーストロークです。

余談ですが、プロファイルタイプのものはログインシェルに対してのみ実行されますが、他のものは作成されたサブシェルに対して実行される傾向があります。

于 2008-11-19T10:49:39.917 に答える
0

どの SSH/telnet ソフトウェアを使用していますか?

SSH 経由でログインする場合、通常、ユーザー名とパスワードの入力はクライアントによって処理されるため、関係ない場合があります。

私の推測では、端末ソフトウェアによって TERM 環境変数が正しく設定されていない可能性があります。端末が xterm などのように動作するように設定されている場合は、「vt100」に設定します。

于 2008-11-19T10:43:05.607 に答える