追加読書

追加読書

USBシリアル接続を介してARM開発ボードで実行されているArch Linuxのインストールにログインしています。インストールがスムーズに行われ、すべてが良く見えます。しかし、私のコンソールは奇妙に動作しています。いろいろなコマンドに応じて行を消さないようです。例は理解しやすいです(説明は難しいですが)。

$ mkdir test
*Press delete*
$ mkdir test*space*

上記のコマンドを実行するとtesディレクトリが作成されるため、削除が機能することがわかります。コマンド表示で正しく動作しないようです。 「stty -a」を確認してみると削除が正しいです(^?)。 bashの使用の歴史はより明白です:

$ mkdir test
$ cd test
*Up Arrow* *Up Arrow*
$ cd testmkdir test

画面とは別のGUIプログラムを介してボードにログインしようとしましたが、どちらも同じ動作を示します。これは単純な構成エラーであると確信していますが、それに関連する他の問題は見つからないようです。どんなアイデアがありますか?

答え1

TERMBourne AgainシェルのGNU Readlineライブラリに表示される環境変数は、次のものを表す必要があります。正しいシリアル接続が終了すると、実際の端末に一致する情報がterminfoデータベースに書き込まれます。

シリアル接続の終了時に端末エミュレータに切り替え可能な端末タイプがある場合は、TERM現在の設定に合わせて変数を切り替える必要があります。

getty従来、ローカル物理端末は同じシリアル回線に物理的に接続されたままであり、システム管理者はプログラム呼び出しに正しい端末タイプが使用されるようにワンタイム構成変更を行いました。今日では、エミュレータプログラムを実行しているPCが実際の端末であるかのようにシリアルデバイスに接続されており、エミュレータ構成を同じままにするか、エミュレータプログラムが変更されるたびにホストシステムを再設定する必要があります。

矛盾があり、カーソルを後ろに移動するために、GNU Readlineライブラリからエクスポートされた制御シーケンス(TERMterminfoデータベースの-とマークされたレコードから読み取られる)が制御シーケンスと一致しません。端末または端末エミュレータ実際に悟るカーソルを後ろに移動します。

(入力行の最後から左への削除はReadlineによって指定されます。カーソルを後ろに移動し、スペースを印刷してから、カーソルをもう一度戻します。。 Readlineは常にこのcub関数ではなくこのcub1関数を使用していることに注意してください。どの端末も機能cubにこの文字を使用しません。したがって、端末が応答する方法は赤ニシンです。cub重要なのは、関数の実際の制御シーケンスにどのように反応するかです。 )

リストされた行規則特殊文字は、stty2つの理由で危険です。彼ら入力する処理と無関係出力GNU Readline ライブラリで使用される制御シーケンスです。 GNU Readline は端末を非正規入力モードに切り替えます。それでもコマンドラインを編集すると実際に発生します。

追加読書

関連情報