ターミナルとシェル間のやり取りを見てデバッグするには?

ターミナルとシェル間のやり取りを見てデバッグするには?

私が理解しているように、端末はリストされた制御コードを傍受し、シェルはstty -aReadlineライブラリを利用して入力を処理し、各キーを押すたびにバッファリングされた入力を受け取ります。

また、シェルはターミナル制御コードを介してReadlinesの変更をターミナルに渡す必要があります。ところで端末では^W(単語を逆に削除)などの制御コードをどのように端末に渡すのでしょうか?

これを確認するために、端末とシェルの間の相互作用をデバッグしたいと思います。どうすればいいですか?

ベストアンサー1

シェル - >端末方向の通信を確認するには、ログストリームを使用してscript(1)ログファイルを確認するのが最も簡単な方法です。

ioctlこれには、他の方向(キーを押す)への通信やバイパス操作(コマンドに対応する端末)は含まれませんstty

(それでも含める必要がある場合は、strace端末エミュレータの特定の機能を適用またはデバッグする必要があります。)

^Wシェル - >ターミナルの方向には(戻る単語の削除)のようなものがないことがわかります。指定されたセルの数だけカーソルを移動したり、文字を印刷(上書き)したり、より単純な基本要素のみが存在します。文字単位に文字やスペースが含まれているかどうかによって動作が異なることはないため、ここには「単語」という概念はありません。

おすすめ記事