8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【図解】screenコマンド入門(迷子向け)

Last updated at Posted at 2021-08-19

screenコマンドを初めて使った時、自分がどこにいるのか全く分からなくなり、正直迷子になりました
原因はウィンドウとセッションの混同だったのですが、この概念の違いを図で説明している記事があまりなかったため、入門記事を書いてみました

この記事が同じ迷子たちの道標となることを祈ります🙏

screen 概要

screenコマンドはCLI上でのマルチターミナル環境を実現するコマンドです
以下でインストールします

$ apt install screen

screenではセッションという単位で作業スペースを作ることができ
セッション内では更にウィンドウという単位で実行環境を分けられます

screen command figure (3).png

図のターミナルウィンドウ全てが独立したシェル環境です

screen移動操作は、おおまかに上の図の赤色と青色の矢印の2種類があり、
赤矢印はログインシェルとセッション操作、screenコマンドを使います
青矢印は同一セッションのウィンドウ操作、Ctrl-aキーを使います

実際にコマンド入力を通してセッションとウィンドウを作成してみましょう

セッション操作

まずはログインシェル(普段つかっているシェル)からscreenと入力

$ screen

新しいセッションを作成すると同時に0$ bashのウィンドウが自動的に作られ、0$に接続します
screenの説明が出てきた場合はエンターキーで閉じます

screen command figure (8).png

ウィンドウ操作

ウィンドウ内の操作の基本はCtrl-aです
Ctrl-aを押すと表示は変わりませんがコマンド受付状態になります

ウィンドウ作成

Ctrl-a, cで新しいウィンドウを作って接続します
あるいはscreenコマンドを打ちます

$ (Ctrl-a), (c)
$ screen(ウィンドウ内)

ウィンドウ一覧

Ctrl-a, wで現在のセッションのウィンドウ一覧を表示します

$ (Ctrl-a), (w)
+ 0-$ bash    1*$ bash

緑ハイライトの部分が表示されていれば正しくウィンドウ操作ができています
現在のセッションでは0$1$のウィンドウが存在しています

screen command figure (9).png

ウィンドウ間の移動

ウィンドウ間を移動する方法は複数あります
状況に合わせて選択すると良いでしょう

$ (Ctrl-a), (0-9)
{0-9}$のウィンドウに移動

$ (Ctrl-a), (Space)
一つ次のウィンドウに移動

$ (Ctrl-a), (Ctrl-a)
直近のウィンドウに移動

その他ウィンドウ操作

$ (Ctrl-a), (k)
$ (Ctrl-d)
$ exit
ウィンドウを削除

$ ctrl+a ?
ヘルプ表示

セッション内すべてのウィンドウを削除すると自動的にセッションが削除されログインシェルに戻ります

ログインシェルへ戻る

セッションのデタッチ

ウィンドウ内でscreen -dと打つとセッションから抜けます(デタッチ)
あるいはCtrl-a, Ctrl-dを打ちます

$ screen -d
$ (Ctrl-a), (Ctrl-d)

screen command figure (10).png

セッションの一覧

screen -lsでセッションの一覧とセッションのPIDを表示します

$ screen -ls

There is a screen on:
        (PID).pts-0.mycomputer        (08/19/21 23:36:09)     (Attached)
1 Socket in /run/screen/S-logiteca7.

セッションのアタッチ

もう一度さっきのセッションに戻るにはscreen -r (PID)screen -rx (PID)(強制アタッチ)

$ screen -r (PID)

セッションの削除

お片付けをしましょう

$ screen kill (PID)

これで一連の移動操作が出来ました!

参考

screenでは一画面に複数ウィンドウを出したり(リージョン)、コピーペーストをしたり、セッションやウィンドウに名前をつけたりできるんですが、長くなるので割愛しました
他の記事を参照してみてください

チートシート

※チートシートや用語の説明として素晴らしい記事ですが、若干のtypo注意

screenでウィンドウを垂直・水平分割する方法

この記事にくどいくらい図が入っているのは、ごめんなさい、draw.io使うのが楽しかった…

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?