GNU screen 自分用まとめ
今まで単純に nohup 的な使い方しかしてなかったので、もったいないから色んなとこを参考に環境を設定してみました。zsh と組み合わせるともっと便利らしいんですが、今はこれが精一杯。
.screenrc
startup_message off escape ^j^j autodetach on defkanji utf-8 defencoding utf-8 encoding utf-8 utf-8 defscrollback 10000 hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w" bind n screen bind h prev bind j next bind l windowlist bind c copy bind t title
起動画面は邪魔くさいのでオフ。
エスケープはデフォルトの Ctrl+a から Ctrl+j に変更してます。参考サイトによると、Ctrl+a だと emacs とかでバッティングするかららしいのですが、僕は単純に押しやすいのでそうしてます。
あとはスクリーン下に時間とウィンドウ名を表示します。
起動とか
・起動 # screen ・screen のリストを表示 # screen -ls There are screens on: 627.pts-0.debian (08/13/08 13:45:27) (Detached) 571.pts-0.debian (08/13/08 11:32:06) (Detached) 2 Sockets in /var/run/screen/S-kohiro2. ・screen を再アタッチ(仮想端末が一個) # screen -r ・screen を再アタッチ(仮想端末が複数) # screen -r [PID]
-ls で現在の screen 状況が表示されます。アタッチ可能な screen が一個だけの場合は -r で一発ですが、複数あるときは PID を指定する必要があります。PID は -ls や -r 失敗時で表示されます。
コマンド
Ctrl+j でエスケープしたら、以下のコマンドを打ちます。
コマンド | 説明 |
---|---|
n | 新規ウィンドウを作成 |
h | 前のウィンドウに移動 |
j | 次のウィンドウに移動 |
0-9 | n番のウィンドウをアクティブにする |
l | ウィンドウリストを表示(j/k で移動、Enter で選択) |
c | コピーモード(スクロールバッファを vi チックな操作でさわれる) |
t | ウィンドウタブの名前変更 |
d | デタッチ(screen から抜ける) |