シリアルコンソールウィンドウのサイズを変更できますか?

シリアルコンソールウィンドウのサイズを変更できますか?

私のシステムのシリアルコンソールを使用しているときはいつで$COLUMNS=80もとで終わります$LINES=24

これらの変数は手動で変更できますが、クライアント端末ウィンドウのサイズ変更中にいつでもこれを行うのは少し面倒です。

通常、私はコンソールに接続を使用しますscreen /dev/mytty baudrate

$TERM環境変数を「screen」または「xterm」に変更しても役に立ちません。

getty通話にvt100の代わりにこれらのいくつかを使用する必要がありますか?

言うまでもなく、SSHを使用して同じシステムに接続すると、これらすべてがうまく機能します。

ベストアンサー1

前の解説者が述べたように、各コマンドの後に呼び出す以外に選択肢はありません。resizeこのコマンドがなくxterm()にパッケージをインストールしたくない場合は、同じタスクを実行する2つのPOSIXシェルスクリプトがあります。 ANSI端末エスケープコードを使用してください。

res() {

  old=$(stty -g)
  stty raw -echo min 0 time 5

  printf '\0337\033[r\033[999;999H\033[6n\0338' > /dev/tty
  IFS='[;R' read -r _ rows cols _ < /dev/tty

  stty "$old"

  # echo "cols:$cols"
  # echo "rows:$rows"
  stty cols "$cols" rows "$rows"
}

res2() {

  old=$(stty -g)
  stty raw -echo min 0 time 5

  printf '\033[18t' > /dev/tty
  IFS=';t' read -r _ rows cols _ < /dev/tty

  stty "$old"

  # echo "cols:$cols"
  # echo "rows:$rows"
  stty cols "$cols" rows "$rows"
}

ちなみに、私の.profileファイルには次のものがあります [ $(tty) = /dev/ttyS0 ] && res 。たとえば、デバイスを再起動した後、シリアル回線(管理に使用する回線)を介してログインするたびに端末のサイズを決定します。
次のアイデアもご覧ください。鋸歯状各コマンドの後にサイズ変更を実行するには、コメントにこの行を追加します[ $(tty) = /dev/ttyS0 ] && trap res2 DEBUG(私が知っている限り、これは常に可能ではないか、常に可能ではないことに注意してくださいbusybox)。

おすすめ記事