screenコマンドとは
tmuxに似ていて、以下の用途で使える。
・ セッションの保存(sshで長時間のジョブを実行するときに助かる)
・ 画面の分割
MacでもLinuxでも大抵デフォルトで入っているらしい。
逆にtmuxは追加で入れないといけないので、できればscreenに慣れておきたい。
一連の流れ
以下は全てUbuntuで実行。
セッション管理
セッション一覧を確認
$ screen -ls
No Sockets found in /run/screen/S-user1.
セッションを作成(+自動的にセッションに入る)
$ screen -S hoge
今セッションの中にいるのかどうかチェック
$ echo $TERM # "screen*"だったら内部にいる
screen.xterm-256color
$ echo $STY # セッション内部のときだけ存在する環境変数
3023174.hoge
セッション内部ではctrl-a <cmd>
でscreenコマンドを実行することになる。
もともとのctrl-a
(カーソルを先頭に移動)はctrl-a a
で実行できる。
セッションを抜ける
ctrl-a d
一覧を確認してみる
$ screen -ls
There is a screen on:
3023174.hoge (08/09/2021 05:25:41 PM) (Detached)
1 Socket in /run/screen/S-user1.
セッションに入る(以下のどれでもオッケー)
$ screen -r 3023174.hoge
$ screen -r hoge
$ screen -r 3023174
セッションの削除
$ screen -X quit # 今いるセッションを削除して元のターミナルに戻る
$ screen -S hoge -X quit # セッション外部にいて、セッション"hoge"を削除する
画面分割
画面分割
ctrl-a S # 水平
ctrl-a | # 垂直
画面移動
ctrl-a tab
虚無の画面に新規ウィンドウ作成(分割でできた新規画面に移動したらまずこれ)
ctrl-a c
分割された画面の削除
ctrl-a X
# 小文字のxだと画面ロックになるので注意
Tips
マウスでスクロールするなら。
$ cat ~/.screenrc
termcapinfo xterm* ti@:te@
defscrollback 100000
ctrl-aからctrl-jに変更。
$ cat ~/.screenrc
escape ^Jj