screenなお話 その1 | もっとコンピュータが好きになるblog

screenなお話 その1

array
(昔の画像の使い回しで悪いっすけど,CUIの見本って事で)


父が叙勲受章者になりまして,勲章を頂きます.まあ,それ関連でなんだか,菊紋のついたグッツのパンフレットがいろいろ来るのだとか...
どんなパンフレットなのか,後で見に行ってみようかとか思ってます.

僕の進んでいる道(ITとかソフト業界)は賞らしい賞がない世界なのでちょっとうらやましいです.まあ,WWWで有名なティムバナーズリーがナイトの爵位を授与された事から考えれば,今後も絶対無いとも言い切れないですけどね.(そこまで有名人になれるかどうかは別として)



さて,今回はscreenというUnixのコマンドについて解説してみようかなと思っています.こちらのぷらたなすさん の所でこんな話題があったからです.


ぷらなたすさん「$ telnet サーバのアドレス 110でpopのコマンドを実行するテストをしているのですが,画面のスクロールが出来ないので実行結果を全て見ることが出来ず,困っています」  

(ちょっと解説.telnetはunixのコマンドで,本来の使い方はサーバにログイン(入る)するのに使われます.でも汎用のクライアントマシンしても利用可能で,ポート番号110に接続する事でpop(メール受信用のプロトコル)で通信して,簡易のメールクライアントになる事も出来ます.ここでは,そうして,メールの生のやりとりをしています)

udpip「screenというコマンドを利用されてはどうでしょうか.多分標準で入っていると思います.」

ぷらなたすさん「入っていませんでした.インストールしなければならないですか.」



といった感じのやりとりがありました.少し端折りましたけど,大体こんなこんな感じ.実は僕は遠隔で作業する際にはscreenを結構利用するので,screenは最近のUnix系OSには標準で入っているものだと思いこんでいたんですけど,そうじゃなかったみたいです.そこで,FreeBSDを利用されているというぷらなたすさん用に簡単インストールの仕方とscreenの利用の仕方について書いてみたいと思います.



まず,そもそもscreenというコマンドがどういった機能を持っているのかを説明しなければなりません.Unix系OSでは上の図のようなCUI(文字だけの操作)での作業が可能です.見た目に乏しいという欠点もありますが,コンピュータの操作を柔軟に行えるなどの利点もあります.特にUnix系OSでは,Windowsと違って,ネットワークを利用して遠隔からの作業などが行えるのですが,遠隔の操作は大抵このCUI画面での操作となります.

実はUnix系OSでは操作中のコンピュータに対して,Alt+ファンクションキーで操作中のコンソール画面を切り替えて作業が可能です.一つ目の画面でログを表示しながら,二つ目の画面でスクリプトを書くなんて事も出来ます.

ただ,遠隔から入った場合は別で,いくらAlt+ファンクションを押しても画面切り替えを行う事は出来ません.やはり,切り替えて作業した方が楽な事は多いので,そこで登場するのがscreenです.このコマンドを利用することで仮想的にコンソールの切り替えが可能になります.今までは一つの画面(CUI)しか利用出来なかった所をいくつも利用可能に出来るんですね.



他にもscreenの便利な機能はあるのですが,それは後半の使い方の方に解説をまわすとして先にFreeBSDというUnix系OSでの簡単なソフトウェアのインストール方法について解説したいと思います.

Windowsにも同様の機能があれば,どんなに便利なんだろうといつも思っている機能がFreeBSDには標準で装備されていまして,それをportsと言います.このports,ソフトウェアを簡単にインストールしてくれる機能なんです,ちなみにportsのような機能はNetBSDやRedhat,Debian,Gentooなど様々なUnix系OSにもあります.結構面白いので,また別の機会に説明したいと思います.

具体的にどんな風に行うかscreenを例にしてみてみます.


まずはportsのディレクトリに移動します.
$ cd /usr/ports

この中には,FreeBSDで利用可能なソフトウェア(のインストール方法)がゴマンと詰まっていまして,インストールしたいソフトウェアのディレクトリに行ってインストールコマンドを打つだけでインストールは終了します.ただ,どこにscreenがあるかよくわかりません.そこで,こんなコマンドを打つを良いかと思います.

$make search key=screen

($ less INDEXでも良いですけどね)

この結果からscreenのディレクトリが/usr/ports/misc/screenであることがわかりました.そこでそのディレクトリにゆき,インストールコマンドを打ち込めば終了です.
$ cd /usr/ports/misc/screen
$ su  (インストールする為にrootになる必要があります)
# make install; make clean
(単にmake installでも可)

これだけです.ただこれもUnixに慣れている人なら「すざまじく簡単だ」と言うかも知れません.もしこの方法でも面倒な場合は先に「portupgrade」というソフトウェアをインストールしておくことをお奨めします.このソフトウェアを利用すれば,上記の作業は以下のように短縮されます.

# portinstall screen

このソフトウェアも少し利用方法にコツがいるので,それはまた次の機会にでも記事にします.



これでscreenがインストールされたかと思います.ちょっと長くなってきました...  明日この続き書きます.この次はscreenの具体的な利用方法についてみてみたいと思います.