236
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

screenコマンドの要点

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

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

用語

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

基本的な操作

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

.bash
$ screen

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

.bash
# 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。アタッチするときに使う。

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

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

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

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

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

.bash
Ctrl-a Ctrl-a

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

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

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

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

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

.bash
Ctrl-a "

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

.bash
Ctrl-a A

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

.bash
Ctrl-a k

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

.bash
$ screen -d -r <pid>

コマンド

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
236
Help us understand the problem. What are the problem?