2008年03月12日
GNU Screen
久々に技術ネタを。
最近、少しだけ時間が出来たので、以前より気になっていたGNU Screen を試してみました。
まぁ、存在自体は、8年前くらいから知っていましたが、試そう試そうと思ってそれきりになってました。
で感想は、なかなか使えます。
キーバインドと主要な使い方を押さえれば、それだけでもかなり使えるなぁ~と言った感想です。
では、適当に自分の備忘録程度にまとめます。
■設定
~/.screenrc にてチューニングします。僕はひとまずこんな感じにしました。
---
escape ^j^j
shelltitle "$ |bash"
hardstatus alwayslastline "%{wb}${USER}@%H: %-w%{bw}%n %t%{-}%+w"
bind l windowlist
---
まぁ、詳細はman を見て貰うこととして、簡単に説明を加えますと・・・
- 1行目: コマンド文字のキーバインドをC-j に変更(デフォルトはC-a)
- 3行目: Screen のステータスバーを使いやすいように飾ってます
- 4行目: C-j + l にてwindow のリストを表示
google とかで、dot screenrc とかで検索すれば、色んなサンプルが転がっているので、ご参考に。
■主要な使い方
以下、コマンド文字のキーバインドをC-j (デフォルトはC-a)と記載します。適宜、読み替えてください。
1) window 作成/切り替え/消去
作成: C-j + c
切り替え: C-j + space / C-j + 数字キー / C-j + n / C-j + p
消去: C-d / exit
まぁ、これだけ覚えていても、Tera Term 大量起動から開放されます。
さらにScreen が本領を発揮するのは、次の機能だと思います。
2) デタッチ/アタッチ
デタッチ: C-j + d
アタッチ: $ screen -ls でセッションID を確認した後に、$ screen -r <session ID>
デタッチは、Screen のセッションを保持したまま、シェルに戻ります。
アタッチは、デタッチでバックグラウンド化したScreen のセッションを呼び戻します。
現実的なシチュエーションとしては、こんな使い方でしょうなぁ~。
Screen 起動
↓
会社で処理時間が掛かるコマンド実行(コンパイルとか・・・)
↓
デタッチして帰宅
↓
自宅の環境からアタッチ
↓
コマンド結果の確認
ふむふむ、便利です。
もう少し使い込んで、自分のツールにしたいと思います。