screenをちゃんと使ってみる

正直なところsshで接続しているときに落ちても大丈夫、くらいにしか使ってなかったんですけど、CTRL+aが使えないのはscreenのせいかー!と思ったところから、せめてコマンドくらいは見ておこうと思いました。

まず、CTRL+aが使えなくなるのは、screenのキーバインドがbashとかのキーバインドよりも優先して働くため使えないようです。
CTRL+aではなく、CTRL+tとかzとかに変更するといいらしいです。

CTRL+tに変更する

~/.screenrcを作成し、以下を入力
[text]
escape ^Tt
[/text]

これでCTRL+aが使えます。

カスタマイズ

ひとまず便利そうなやつ。

・下にウィンドウの一覧が表示され、アクティブなウィンドウがわかるようになる。すばらしい・・・
~/.screenrc
[text]
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"
[/text]

・最初にでてくる画面を省略する。
./.screenrc
[text]
startup_message off
[/text]

・こちらはsshするときに新しいウィンドウを作って、ホスト名をウィンドウ名にしてくれる。紹介してたサイトのだとうまく動かなかったので微妙に変更。
~/.zshrc
[text]
function ssh_screen(){
eval server=’$’$#
screen -t $server ssh "$@"
}
if [ x$TERM = xscreen ]; then
alias ssh=ssh_screen
fi
[/text]

・コマンド
|~コマンド|~内容|
|^Tc|新しいウィンドウ|
|^Tn|次のウィンドウ|
|^Tspace|次のウィンドウ|
|^Tp|前のウィンドウ|
|^Tw|ウィンドウ一覧|
|^T数字|数字のウィンドウに切り替え|
|^T”|リストからウィンドウを切り替え|
|^Tk|ウィンドウを閉じる|
|^Td|デタッチ|
|^TS|ウィンドウを上下に分割|
|^T||ウィンドウを左右に分割|
|^Ttab|分割したウィンドウを移動|
|^TX|アクティブな領域を閉じる|
|^TQ|アクティブな領域以外を閉じる|
|^T?|ヘルプの表示|

・コマンド
|~コマンド|~内容|
|screen|スクリーンの起動|
|screen -ls|スクリーンの一覧|
|screen -r|デタッチしているスクリーンにアタッチ|
|screen -r |で指定したスクリーンにアタッチ|
|screen -rx|デタッチしていないスクリーンにもアタッチ|

screen -rx を使えば、端末を共有できる。

・コピーモード
 端末の画面をコピーして別端末にペーストしたりできる。

|~コマンド|~内容|
|^T[|コピーモード開始|
|SPACE|コピーする範囲の開始、終了|
|ESC|コピーモード終了|
|^T]|ペースト|

参考