screenコマンドの要点

  • 73
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

linuxサーバーにSSHログインして何か作業をしていて、突然通信が途絶えたり、PCの電源が落ちたりすると、実行中の処理が中断されてしまいますが、screenを使うとそういう不安から開放されます。

詳細はmanに書いてあるので、ここでは最低限覚えておくといい事だけを書きます。

用語

語句 意味
セッション screenが作る仮想端末。1つのセッションの実体は1つのscreenプロセス。
ウインドウ セッション内での仮想的なウインドウ。1セッションに複数作って、切り替える事ができる。ウインドウの実体はscreenプロセスの子プロセスとして動作するシェル。
デタッチ セッションから切断すること。デタッチしてもセッションは生き続ける。
アタッチ デタッチしたセッションに再接続すること

基本的な操作

新しいセッションを作る。

$ screen

セッションからデタッチする

# Ctrlを押しながらa、その後d(Ctrlは離して)
Ctrl-a d
# またはCtrlを押しながらa、その後d(Ctrlは押したまま)
Ctrl-a Ctrl-d

既に存在するセッションを一覧表示

$ screen -ls

#すると、こんなのが表示される。
There are screens on:
    16472.pts-1.1hz (Detached)
    17496.pts-1.1hz (Detached)
# 数字はpid。アタッチするときに使う。

他のだれもアタッチしてないセッションにアタッチ

$ screen -r <pid>
# もし、セッションが1つしかないなら
$ screen -r
# でもOK

セッション内で新しいウインドウを作る

Ctrl-a c
# または
Ctrl-a Ctrl-c

直前に表示していたウインドウに切り替える

Ctrl-a Ctrl-a

次のウインドウに切り替える

Ctrl-a n
# または
Ctrl-a Ctrl-n

前のウインドウに切り替える

Ctrl-a p
# または
Ctrl-a Ctrl-p

セッション内のウインドウを一覧表示する。
一覧ではj,kキーで表示するウインドウを選択出来る。

Ctrl-a "

現在のウインドウに名前をつける

Ctrl-a A

現在のウインドウを閉じる

Ctrl-a k

他の誰かにアタッチしてるセッションを横取り

$ screen -d -r <pid>

コマンド

Ctrl-:と入力するとコマンドを受け付けるモードに入ります。
コマンドによってscreenの挙動を変更することができます。

http://www.gnu.org/software/screen/manual/screen.html#Commands