画面/開発者/pts/仮想マシンのstty設定が正しくありません。

画面/開発者/pts/仮想マシンのstty設定が正しくありません。

擬似端末(任意の端末)を介して利用可能なシリアルポートを端末に提供するために仮想マシン(linux + kvm + qemuを使用)を設定します。/dev/pts/<number>

画面は、エスケープ文字(たとえば)を正しく処理しないか、入力を何度もエコーするよりも優れていることがわかった/dev/pts/<number>ため、対話する方法として画面を使用します。cat /dev/pts/<number> & cat > /dev/pts/<number>ctrl-c

stty --allこの問題の問題であり、キーは、シェルによって内部的に照会された「tty / pts」の設定にディメンション(および)のscreen /dev/pts/<number>正しい設定がないことです。これは、実際には内部的に間違った改行などにより、痛みを伴うことがあります。 VM のシェルです。colsrows

ここでは、複数のシステムとターミナル/tty/ptsが実行されているため、正しい設定を構成する方法を知るのに十分な経験がありません。

screen /dev/pts/<number>シェルに正しい設定を知らせるにはどうすればよいですかstty

**更新**

stty --all仮想マシンシェル内の出力は次のとおりです。

root@mail:~# stty --all
speed 115200 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke -flusho -extproc

stty --allホストシステムシェルの出力は次のとおりです。

speed 38400 baud; rows 39; columns 147; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

ベストアンサー1

対話型シェル初期化を実行するように設定した場合resize、端末のサイズを尋ね、同じシステムコールを実行しますstty

ブロックはaの終わりにあります。.bashrc働きます:

if [ -t 0 ] && [ -t 1 ] && [[ $TERM == screen* ]] && [ -f /usr/bin/resize ];
  サイズ変更>/dev/null
  #stty-a
フィリピン諸島

標準入力/出力が端末であるか(つまり、セッションが対話型であるか)、次のいずれかにTERM設定されていることを確認します。screenフレーバーとインストールするresizeかどうか。

出力をリダイレクトしても、resize端末にエスケープシーケンスを送信して応答を受信するのを妨げません。開いているこれを行うには、ttyの独自のストリームがあります。

追加資料:

おすすめ記事