screen コマンドの使い方 memo

利用頻度が低くてなかなか使い方を覚えないコマンドシリーズ。今回は screen。

どうしても長時間フロントで走らせなきゃいけないバッチとかの実行時ぐらいにしか使わないんだけど、その「実行時ぐらいにしか」が半年に1回は有って毎回困る感じ。

基本操作

新規起動

screen

起動時に横幅が 80 になってしまう。これを抑制する設定。

vi ~/.screenrc

termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

※ こちらの記事を参照させて頂きました。
GNU Screenの起動時やアタッチ時にターミナルをリサイズさせない方法

ターミナルの終了 (terminate)

Ctrl+a -> \

(画面下部で本当に終了してもよいか聞かれる。複数ウィンドウを開いていた場合はすべて終了される)

単一ウィンドウの終了

exit 等でシェルを終了する。
強制的に終わらせるには Ctrl+a -> k (画面下部で本当に終了してもよいか聞かれる)

ターミナルの一時停止 (Detache)

起動したターミナル中で Ctrl+a -> d

ターミナル一覧表示

screen -ls

一時停止したターミナルに再接続 (Attach)

screen -r [id]

セッションが一つだけなら id は省略可能。

ターミナル内でのウィンドウ操作

ウィンドウ新規作成

Ctrl+a -> c

ウィンドウ一覧 (タイトルバーのところに表示される)

Ctrl+a -> w

バックスクリーンモード

スクリーンをバックスクリーンモードに変更

Ctrl+a -> Ctrl+[

コピーモード中は vi 的なコマンドでカーソルを移動できる

移動先でコピー選択開始/終了

Enter

コピーしたバッファの貼り付け

Ctrl+a -> Ctrl+]

画面の分割

画面分割

Ctrl+a -> S

分割した後、フォーカスするウィンドウの変更

Ctrl+a -> Tab