GNU Screen 覚え書き
WEB+DB Press Vol.40 のはてなおやさんの記事に影響されて、GNU Screen を使い始めました。

各種設定ファイルは、上記記事と下記サイトを元に、以下のような感じに。

.screenrc
escape ^Tt
vbell off
hardstatus alwayslastline " %`%-w%{=b bw}%n %t%{-}%+w"
autodetach on
defutf8 on
bind ^k kill

markkeys "h=^B:l=^F:$=^E"

bind -c REGION 2 split
bind -c REGION 1 only
bind -c REGION 0 remove
bind -c REGION o focus
bind -c REGION ^ resize
bind x command -c REGION


.zshrc (screen に関係ある部分だけ)(9/5 一部修正)(9/7 さらに修正)

preexec () {
[ ${STY} ] && echo -ne "\ek${1%% *}\e\\" # 20070907 修正
}
[ ${STY} ] || screen -rx || screen -D -RR # 20070905 修正


スクリーンショットはこんな感じ。
a0057891_19512891.jpg


備忘録的に、少し解説します。

画面の分割をEmacs風のキーバインドで操作



bind -c REGION 2 split
bind -c REGION 1 only
bind -c REGION 0 remove
bind -c REGION o focus
bind -c REGION ^ resize
bind x command -c REGION

画面の分割をEmacs風のキーバインドで操作できるようになります。分割(split)は、^T x 2。リージョン間の移動(focus)は、^T x oとか。

subtech - Pink Blossom Diary - screen emacs風bindnaoyaのはてなダイアリー - GNU screen いろいろまとめ。経由)からいただきました。

ウィンドウタイトルに最後に打ったコマンドを表示(*修正あり)



preexec () {
echo -ne "\ek${1%% *}\e\\"
}

ウィンドウのタイトルが、最後に打ったコマンドになります。どのウィンドウで何の操作をしているかが一目で分かるので便利。ちなみに、zsh限定。

titles [GNU screen]からいただきました。bashでの設定方法も、こちらに書いてあります。

9/7 追記
上記の設定だと、screen を使っていない時には、打ったコマンドが画面に表示されてしまって、イヤな感じです。例えば、以下のようになってしまいます。

%echo "Hello World"
echoHello World

これを避ける為に、設定を以下のように修正しました。

preexec () {
[ ${STY} ] && echo -ne "\ek${1%% *}\e\\"
}

これで、screen を使っていないときは、打ったコマンドが余計なところに表示されるという事が無くなります。ずっとscreen を使っているのであれば、あまり必要ない設定ですが。

ログインしたらすぐにscreen起動(*修正あり)



[ ${STY} ] || screen -D -RR

ログインした際に、screenのプロセスがあればそこにアタッチ(screen のセッションがあった場合、そのセッションをデタッチしてしまいます)。なければ新しくウィンドウを作ります。必ずユーザホームの .zshrc等に設定する事。/etc/zshrc あたりに設定すると、su した時にループして大変な事になります。

GNU screen その5の >>463 からいただきました。

9/5 追記
上の設定だと、複数のターミナルからログインした時に、既にアタッチされているセッションがある場合、そのセッションが強制的にデタッチされてしまいます。つまり、1枚のターミナルしか使えません。それはちょっと嫌なので、以下のように修正しました。

[ ${STY} ] || screen -rx || screen -D -RR

これで、期待通り、セッションがあればそこにアタッチ、なければ新規作成、という動作になるので、複数ターミナルで作業が出来るようになります。

その他のリンク


[PR]
by fkmn | 2007-09-04 23:55 | IT
<< My Job Went To ... 【感想】ゼルダの伝説 夢幻の砂時計 >>


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX