擬似端末(任意の端末)を介して利用可能なシリアルポートを端末に提供するために仮想マシン(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 のシェルです。cols
rows
ここでは、複数のシステムとターミナル/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の独自のストリームがあります。
追加資料: