部屋を掃除したら漫画が沢山出てきたので書く日記

漫画とか合唱とかUNIXとかLinuxとかについて書く日記です。

Solaris 10サーバでscreenを使ってみる その2

かなり時間が経ってしまいましたがその1の続きです。

とりあえず使える状態にはなりましたが、実際に便利に使う際には他にもコマンドが必要です。

また、「.screenrc」という設定ファイルに、動作させる環境の情報を色々書くと便利になります。
ここでは、「.screenrc」の作成とその上での便利な使い方について書こうと思います。

なお、screenについてはこちらのように、マニアックに使おうと思えば更に出来るのですが、正直言って私は使いこなしているレベルではなく、とりあえず業務で便利に使っている程度ですので「これしか設定しないのかよ」とか思われるかもしれませんがご了承下さい*1

.screenrcの作成

screenを実行するユーザのホームディレクトリに「.screenrc」という名前のファイルがあれば、実行時にそれを読み込んで動作させる事が出来ます。

とりあえず私は以下のような設定をしています。なお、#でコメントアウト出来ます。

#起動時のメッセージ表示をOFFにする
startup_message off
#文字コードをEUCに設定(これはお好みで)
defencoding eucJP
#画面下に「ホスト名、開いている画面の一覧、日付を表示させるようにする
hardstatus alwayslastline "%{= bw}%H:%-w%{= kw}% %t%{= bw}%+w %=[%y/%m/%d %D %c]"
#不意にネットワーク切断などが発生した際に自動でデタッチする(接続は保持される)ようにする  
autodetach on
#バックスクロールできる行数
defscrollback 1000
#screenで使用するシェルをbashに
shell bash

screenを日常使う方々的にはシンプルすぎると思いますがこんな感じで。
ホームディレクトリが「/home/hoge」であるhogeユーザで使用する場合、上記が記述された.screenrcというテキストファイルを、

 /home/hoge/.screenrc

というように格納してやれば良いです。

ファイルが作成できた後にscreenを起動してみます。

screen

すると、以下のような画面になるはずです。下に青色の画面一覧などが表示されるようになっていますね。これで、

  • 青色の帯が表示されていたらscreen使っている、という事がわかる
  • 複数画面が存在したら一覧に表示される*2

という事ができるようになり、大変便利になります(デフォルトで複数画面を作成しても区別が付け辛いので)。

各種コマンドについて

screenで使用できるコマンドは色々あるようですが、これまた最小限のものしか私は使いこなせておりません。ので少ないですがつかっているものは以下の通りです。原則、
「Ctrl + A , なにかのキー」
という組み合わせになります。

動作 コマンド 備考
画面の作成 CTRL + A , C
画面の切替 CTRL + A , {画面番号} 画面番号は0〜9までが指定可能
画面の切替(昇順) CTRL + A , N
画面の切替(降順) CTRL + A , P
画面名の編集 CTRL + A , SHIFT + A 書いた後Enterで決定
デタッチ CTRL + A , D
画面の削除 CTRL + A , K

また、起動前の状態で出来る事は以下の通りです。

動作 キー 備考
デタッチしたscreenプロセスを確認 screen -ls
screenセッションのアタッチ screen -r detachされたセッションが複数ある場合は画面で選択する
起動時に特定の.screenrcファイル読み込み screen -c {ファイル名} 客先環境とかでひっそり使うときに便利

ではー。

*1:むしろ教えて頂きたい

*2:ただし表示上は最大10個までしか表示されません。仕様なのか設定変更できるのかは未調査です。誰か教えてー