« Google App EngineでTwitterを活用する | 世界で愛されている語学学習サイト、Lang-8さんが遊びに来ました »

2010.08.28

screenとは?【初心者入門編】

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをnewsingに追加
screen とは、1つのターミナル内に、
複数の擬似ウィンドウを開くことが出来るようにするソフトウェアです。

歴史ある技術ですので、ほぼどのLinux環境にも使えて、動作も安定、
設定・操作も手軽で済むため、多くのエンジニアに重宝されています。
ターミナル用のソフトですが、サーバへインストールするものです。

今更の内容ですが、復習も兼ねてまとめてみることにしました。

ちなみに、タイトルに「初心者入門編」と書いていますが、
少なくとも自分は2年間、この内容だけで便利に使えています。
(まー、自分はかなり開発環境に無神経な方ですが)

 

screenの特徴・長所

  • 擬似ウィンドウ(スクリーン)を開いて、複数SSHセッションを平行して操作できる。
  • サーバへインストールすれば、どのターミナルからも使える。
  • インストール・設定は超簡単。
  • ターミナルソフトを落としても、SSHセッションを維持してくれる機能がある。

 

インストール

例えば、CentOS の場合は

# yum install screen

・・・だけ!楽っ! ヽ(´ー`)ノ

 
他の環境でも同じようなもので、
普通のLinux環境なら、パッケージ管理ソフトで簡単に入ります。

また、ソースを取得して、ホームディレクトリ以下へインストールしても使えるので、
共有環境でも安心して力を発揮できます。

設定については、まずは不要です。
そのままお使いいただけます。

 

screenの基本操作

1. screenの開始

$ screen

これで、スクリーンを1つ開いて、新しいSSHセッションが立ち上がりました。
再度、screen を打つともうひとつ開き、exit でひとつのスクリーンを閉じます。
これらの開いたスクリーンそれぞれで、SSHを平行操作することが出来ます。

2. screenコマンドを使う
スクリーン上では、通常のSSHセッションと同じ操作を行えます。
ただ、スクリーンの切り替えなどの操作を行う場合のために、特別なコマンドが用意されています。
デフォルトだと、Ctrl + A で、このキーを押した後に特定のキーを押すことで、
各種操作を行うことができます。

以下は代表的なコマンドです。

c = 画面を増やす(screenと打ったときと同じ)
w = 画面一覧を表示
n = 次の画面へ切替
p = 前の画面へ切替
K = ひとつのスクリーンを強制終了
l = 画面再描画
d = デタッチ

 

.screenrc の設定

screenの設定ファイルは .screenrc です。
一旦スクリーン状態を終了して、ホームディレクトリ以下に以下の
.screenrc ファイルを作ってみてください。

# screenコマンドモードに入るキーの変更
escape ^Zz

# ステータスラインの表示
hardstatus alwayslastline "[%02c] %0`%-w%{=b bw}%n %t%{-}%+w %= %?%{=brw}%2`%{-} %?%1`”

これで再度スクリーン状態になると、先の Ctrl + A が Ctrl + Z に変わっています。
また、ターミナルの下に、画面一覧と現在の画面を示す
ステータスラインが表示されているはずです。
他にも多くの設定がありますが、とりあえずはこれだけで充分だと思います。

 

セッション維持機能

全てのスクリーンを exit で閉じると終了しますが、デタッチ(screenコマンドキー + d)を行うと、
ターミナルを落としても、スクリーン上のSSHセッションを立ち上げっぱなしにすることができます。
また、普通にターミナルソフトを閉じても、セッションが残っています。

用途としては、
突然の停電やブレーカー落ちの時も作業状態がそのまま残っているので安心、とか、
会社でやり残した作業を家で再開するときに楽、とか、
バッチスクリプトを掛けっぱなしにして寝る時も楽、とかです。

セッションの復活や一覧の操作は以下です。

$ screen -R
 →セッションの復活
$ screen -list
 →残っているセッションの一覧
$ screen -x
 →セッションの復活、その2
  すみません、詳細不明ですが、ルータが再起動してIPが変わった後などは、
  -R だと復活できないので、このコマンドで復活しています。
  復活しても、しばらく後に繋がらなくなるので、一旦作業状況を整理して終了した方がいいです。

 

以上

今更感のある内容ですが、ローカルPCがメインの開発環境の方などは、
あまりご存知ない内容だと感じたので、書いてみました。

なんで、そんなことが出来るんだろう?という点まで考える人は若干不安だと思いますが、
とにかく、敷居は低いし、経験上動作も安定しているので、
とりあえず使ってみてもいいのではないでしょうか?

 
 
 
・・・ちなみに、
「Poderosaとか使えばいいんじゃね?」という質問に対しては、
「まぁ、そうなんだけどね」という回答に・・・否定はできない・・・。(←台無し)

Trackback URL

Comment & Trackback

No comments.

Comment feed

Comment





XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>