複数起動でGNU Screenを活用

1. GNU Screen

GNU ScreenはCUIの作業にとってとても有用なツールだ。このツールは起動時に、基本的には利用するユーザのホームディレクトリにある.screenrcファイルを読み込む。ここに設定したい修飾キーなどを記述できる。

一枚だけのScreenを利用するのであればこれはこのままでも良いんだけれど、このスクリーンを増やしたい場合があったりする。もちろん、そういったことも可能だけれど、ちょっとだけ気をつけなければいけないこともあったり。

2. セション名

GNU Screenには起動しているScreenに対し、セション名という一意の名前を付ける。そしてScreenに対するソケットは ユーザ名/セション名 で表される。デタッチしたScreenをアタッチするときなどはこのセション名を利用する。一枚しかないときはセション名無しでもおk。

で、複数のScreenを利用する時にはこのセション名をいちいち入力しないといけない。アタッチしているセション名を変えるには

エスケープキー(デフォルトだとC-a)を押して、コロン、その後にsession セション名を入れる。ターミナルの下部に“:session hogesession”という感じで。これでセション名を指定出来る。

でもscreenrcに記述しておけば毎度毎度設定する必要は無かったり。でも、デフォルトで読まれる.screenrcだとセション名かぶっちゃう。なので別のセション名を記述した.screencを用意し、必要に応じてそちらのscreenrcを読み込ませれば良い。

この別途のscreenrcファイルを読ませるには、screen起動時に-cオプションを利用すると良い。

例えばルータへのログインを一括で行ったりするscreenを立てる場合には下記のようにしてる。

shell> more ~/.screenrc_routers

escape ^t^t
multiuser on
zombie "^d^r"
autodetach on
vbell off
defscrollback 10000
shelltitle ""
defencoding utf-8 utf-8

caption always "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"
bind x command -c REGION
bind -c REGION 2 split
bind -c REGION 1 only
bind -c REGION 0 remove
bind -c REGION o focus
bind -c REGION ^ resize

sessionname routers
screen -t "" 0
screen -t "l2tp" 1
screen -t hogeo 2
screen -t fuga 3
screen –t bar 4

shell> screen -c ~/.screenrc_routers

こんな感じで、ログ閲覧専用とか、ルータ専用とか、一時的なコピペ広場用とか。いっぱいあると便利だよ!

コメントを残す