GNU screen の小技

投稿者: | 2021/10/05

Small TIPS for GNU Screen to launch multiple terminals automatically.

今日の小技です。

組込設計などをしていると、複数のシリアルターミナルを同時に立ち上げ、モニタしたいことがあります。GNU screen コマンドを使えば可能ですが、コマンドを何度も手で入力するのは面倒なものです。

GNU screen には .screenrc という初期化ファイルを読み込む機能があります。普段はその使い方をあまり意識していないと思いますが、今日はちょっと調べてみました。

いま、以下の 4つのシリアルポートに対して全て 115200 bps でターミナルを開きたいとしましょう。

  • /dev/tty.SLAB_USBtoUART
  • /dev/tty.SLAB_USBtoUART2
  • /dev/tty.SLAB_USBtoUART3
  • /dev/tty.SLAB_USBtoUART4

まず、次のようなファイル(screenrc_multi_terms)を用意します。(「bind q quit」は、私は Ctrl-\ を日本語入力のオン・オフに使っているために、追加しています。こうしておくと、Ctrl-a, q で全てのターミナルを同時に閉じられるので便利です。)

defscrollback 100000
startup_message off
bind q quit
screen /dev/tty.SLAB_USBtoUART 115200
split
focus
screen /dev/tty.SLAB_USBtoUART2 115200
split
focus
screen /dev/tty.SLAB_USBtoUART3 115200
split
focus
screen /dev/tty.SLAB_USBtoUART4 115200

split は、他面を縦に分割するためのコマンドで、focus は、新しく分割したペインにフォーカスを移すコマンドです。

あとは、コマンドラインから screen -c screenrc_multi_terms と実行すれば OK です。Ctrl-a, TAB でペインの間を移動できます。Ctrl-a, " も便利です。

今回は、こちらのサイトを参考にさせて頂きました。

今日はここまで。