マスタリング Csh

マスタリング Csh レビュー記事

[ ブックレビューコーナー 目次 ]

翔泳社 様のご厚意により, 書籍 "マスタリング Csh" を ブックレビューコーナー にご献本いただきました. この本のレビューをして頂くべく, Linux Users ML において公募を行い, これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.

ここに, レビューアの方々から寄せられたレビュー記事を公開します.

翔泳社 様および レビューアの皆様のご厚意に感謝いたします.

なお, 以下のレビューは初版を対象としています.


Reviewed by 古村 洋 (furumura@gms.nec.co.jp) さん

Linux の使用歴
約 3 年
UNIX の使用歴
Linux 歴と同じ 3 年
Linux Box の主な用途
インストール&環境構築の反復練習 (;_;)
Linux Box に載っている Linux 以外の OS
Windows98,WindowsNT
Linux と Linux 以外の OS の使用頻度の比
自宅では 9:1,仕事では 1:9

1. 初めに

本書のブックレビューでは, まっとうな記事 (目次ベースのちゃんとした紹介とか, ね) は他の方々が書いて下さいそうなので, 私はあえて, インプレッションに徹したレビュー記事とさせて頂きたいと思います m(_._)m

2. 本書の目的

本書の目的は, 直接的には

などである, しかし, 作者の本当の目的は

ではないかと私は思っている.

私自身, Linux のインストールや環境設定は, いくつものディストリビューションを渡り歩き, あーだこーだと試行錯誤の末, なんとか周りの初心者には教えることは出来るようになったものの, 「さて, 次は…どうしよう…」と固まってしまっていたものである. この本は, まさにそのような人たちの為のものであり, 次なるステップを指し示すものである.

3. おすすめする読者層

4. おすすめしかねる読者層

5. 本書の特徴

6. どんなところがグッときたか

なんといっても「サイバートラボルタ氏」のイカした語り口! たとえば CGI 作成の章のの序文を引用すると

「…略…もう, 十分お楽しみの所だとは思うけど, ダメ押しに CGI をお見舞いしてやるぜ! これさえありゃ, 世界中でフィーバーさ! もう, 俺達を止めるものなどありゃしねぇ (おっと C 言語にゃかなわなぇけどな). …略…これ, マジだで!」

といった具合だ.

読み進むうちに, 本文中のトラボルタ氏のような語り口で独り言をつぶやきながら スクリプトを書いている自分に気がついた.
「Oh! ループから抜けらんねぇぜベイベー!」
とか言いながら, 嬉々としてソースをいじくり返している. (^^;) 十数年間, プログラミングに無縁だった私が, 久しぶりに味わうプログラミング・ハイである. この快感!

また, Tk の部品リファレンスとしても非常に使いやすい. 実際, 本書の 20%くらいが部品の使い方についての解説である. もしかしたら, Tk の入門書としても, かなり良い書物なのではないだろうか. (私は Tcl/Tk 関係の本は読んだことが無いのではっきりとは言えないのだが)

7. まとめ&本レビュー作成悲話 (/_;)

思えば二月某日, JLUG のブックレビュー担当者様から, レビューアー当選のメールをいただいた. 申し込み当初から, なにか重要なことを忘れていたような気がしていのだが… その重要なこととは!

「なになに, 締め切りは 3/5(金)…うげぇ! おれ, 来週から 3/3 まで中東に旅行にいってるじゃねーか! ううむ, 原稿, どうしよう…」

そんな大事なことを忘れているほうがどうかしているのだが, 連日の徹夜残業で朦朧とした私の頭には, 通常の時間概念はとっくに失われていたのであった.

筆者死海で同書を読むの図

とにかく, 旅行カバンにノート PC と本書を詰め込み, 私は中東に向かった…飛行機上で, ホテルで, ヨルダンの名所旧蹟で, とにかく本書を読み, スクリプトを打ち込んでいった. 死海の水に浮かびながらでさえも, 読みつづけた. (さすがに死海の水の上では, 恐くて PC は弄れなかったが)

これまで読んだ UNIX 関係のどの本とも違う, 独特なノリに, おおいに笑い, また考えさせられた.
「そうだ, プログラミングって, 楽しいものたっだなぁ…」
小学生のころ, もう二十年も前, 初めて触った BASIC マシン (デパートの展示用) で組んだプログラムが動いた喜びを, 思い出した. あれは三角形の三辺を入力すると, その面積を表示するものだたっけ…. そんなシンプルなものでも, 当時の私は最高に興奮したのである.

目の前にある, 「マイコン」なるものが, 私の命令を受け, 忠実に動作している… まるで「バビル二世」に出てくる, あの巨大な塔のようなコンピュータが, 自分の下僕になったような気がして, その日はなかなか寝付けなかった.

エルサレムでこの本を読み終えた後, その時と同じ気分になり, やはり眠ることができなかった (時差のせいという話もあるが (^^;))

帰国後, 残りのサンプルスクリプトをガンガンに打ち込んで, その興奮はさらに高まった. いや, いまでも高まりっぱなし, 興奮度 120%である.

我らが Linus 氏が, 「世界征服」という Joke を (もはや Joke ではなくなっているが) 連発する気持ちを, ほんの少しだけ味わう資格を得たような, そんな気さえもしてくる.

最後に, 全国数千人の, インストールマニアからの脱出を図る諸兄姉に, エールを送り, このレビューの締めくくりとしたい.

「みんな! この本読んでいつかは世界征服だ!! Let's go to Cyber-Party!」

これ, マジだで (なまってしまった…笑)

Reviewed by 角谷信太郎 (kakutani@din.or.jp) さん

Linux の使用歴
3 ヶ月
UNIX の使用歴
なし
Linux Box の主な用途
ネットワークと UNIX とプログラミングのお勉強
Linux Box に載っている Linux 以外の OS
別マシンではありますが Windows95
Linux と Linux 以外の OS の使用頻度の比
9:1

書籍の冒頭に, 対象読者とする層について言及されている. それによればこの書籍が対象とするユーザ層は, 「期待にかられてインストールしたものの, 『次は何をするんだ?』と途方に暮れてしまっ」ている 「パソコン OS からの移行者」であるとのこと. 脱・初心者を目指したくはあるものの, スクリプトなんて自分で書いたことのない私は この層に正しくビンゴだと思い, それこそ「期待にかられて」読み始めた.

この書籍で扱われている内容は大きく分けて 3 段構成になっており, それは下記のようになっている.

Csh(Tcsh) を使ったシェルスクリプティング入門・ Tcl/Tk とシェルスクリプトを組み合わせた GUI アプリ作成入門・ HTML/CGI とシェクスクリプトを組み合わせ, ブラウザから利用する. この他にも, awk や正規表現, telnet や MI/X についてや, Tips 的なコラムなどを適宜掲載している.

シェル, X, CGI, といった広い範囲を 1 冊で概観できるというのは 「これからどうしようか」と思っている者にとってありがたい. また, 「インストールはしたけれど」という初心者に, スクリプティングの手ほどきをするために, 既存の専門書のような堅い文体や内容ではなく, 親しみやすい文体と内容にするというコンセプトにも肯けるものがある.

Linux(に限らないとは思うが) は使っていかないことには習熟しないことは 私も身にしみて知っているので, 読者に対して「とっつきやすさ」を提供していこうという考え方は嬉しい. 書籍紹介文の「今までにないスクリプト本」「抱腹絶倒しながらマスターする」 といった文言もそういった考えによるものだろう.

だが, しかし. 「笑い」のセンスは各人各様なので云々しても詮無きことかと思うが, 私の読んだ限りでは, この書籍, クスリとも笑えなかった. 「自分 (著者) が勘違いしていたノーテンキなあの映画 (『サタデー・ナイト・フィーバー』) のイメージでパソコン書を書いてみたら」 「なかなか面白い内容になっ」たということなのだが, 類型的なキャラとどこかで見かけたようなネタの羅列でしかない.

「面白い」とか「笑う」とか, ネタを出すほうから言われても, なにやら笑うことを強制されているようで, 余計に「引いて」しまう. 私にとって, 「笑えよ〜」と受け手に強制できのは横山たかし・ひろしだけである.

また「必要な項目だけ読むという風な読み方をせずに, 一冊の読み物としてお読みください」と「はじめに」にはあるが, そういう「読み物+スクリプト」という読み方ができるのは 最初のシェルスクリプティングのところだけで, 以後は「Cyber-Travolta」も出てこないし, 内容も, スクリプトとその解説・tcl スクリプトのリファレンスといった 体裁になっている.

他にも気になる点はある. 「中級者への入門書」であろうこの書籍だけで, シェル・Tcl/Tk・CGI のすべてが間に合うわけではないだろう. この先々も Linux と付き合っていくのであれば, 他にも書籍やドキュメントは参考にしていく必要があると思う. しかし, そういった書籍なりドキュメントなりへのポインタが少ない.

巻末に書籍の紹介記事はあるにはあるが, 著者がその書籍を自費で買ったのか, それとも友人に借りたのか, といったことに私の興味はない. 紹介時に触れるべきは我々にどう役立つか, なのではないだろうか. 紹介する冊数も多いとはいえない. 見開き 2 ページで 6 冊紹介のうち, 1 冊は HTML タグ辞典. これは Linux の「使い倒し方」の手ほどきを目的とした書籍として 妥当なのだろうか.

「楽しければ, それで十分」というコンセプトであるにしても 「とにかく使えて, 楽しい」の先のステップへの視線が欠けているように思える. あるいは, 「man なり検索エンジン使え」ということなのかもしれないが, それを適切に使いこなせないから「期待にかられてインストールしたものの, 『次は何をするんだ?』と途方に暮れてしまっ」ているのではないのだろうか? 例えば私のように.

とはいえ, とにかく Linux をイジっていきたい, 堅苦しい記述は一切受け付けられない, という人に対して「とっつきやすさ」を提供する, という点においてはそれなりに有用なのかな, と思う. 馴染んだ後は他の書籍なりドキュメントを読まないといけないだろうけれども. 少なくとも私はその必要性を感じた.

Reviewed by 兼宗 進 (susumu@logob.com) さん

Linux の使用歴
3 年
UNIX の使用歴
13 年
Linux Box の主な用途
インターネットサーバー
Linux Box に載っている Linux 以外の OS
なし
Linux と Linux 以外の OS の使用頻度の比
Linux : Solaris : Windows = 3 : 2 : 5

期待したこと

目次や出版社からの概要紹介を見て, 読む前に期待していたのは, 次の 2 点です.

  1. csh を Tcl/Tk と連携させるなど, 遊び心を感じる.
  2. 初心者用の UNIX の参考書として推薦できるかもしれない.

内容

全体は 3 部構成になっています.

タイトルを見ただけでは, 何を説明する章かわかりませんね. :-)

第 1 章では csh スクリプトの概要と, その中でよく使われる UNIX のコマンド (sed, awk など) を紹介した後, 主人公であるサイバートラボルタの日常に合わせて話が進みます.

全体を通して説明で使われる実用プログラムは 3 個あります. ファイル検索スクリプトは find コマンドの引数を対話的に指定するもの. 住所録スクリプトはテキストファイルの住所データを管理するもの. 簡易パッケージマネージャは make install の出力を保存して管理するものです. 第 1 章では, これらのテキスト画面版を作ります.

第 2 章では Tcl/Tk の詳細と, csh と組み合わせて使うプログラム例を紹介しています. 実用的なプログラム例は, 第 1 章の 3 個のプログラムの GUI 版です.

第 3 章では, Tcl/Tk の代りに HTML から CGI や SSI という形で csh スクリプトを呼び出すことを説明しています. 説明に使われる例題は, UNIX のマニュアルを HTML で表示するプログラムです. 実用的なプログラム例は, 前の章の 3 個ずつの例題から 簡易パッケージマネージャを除いた 2 個のプログラムです.

感想

全体的に, 「楽しく読めるように」というコンセプトで 書かれているように感じました. 字も大き目で, イラストを含めたレイアウトも工夫されています. 本文の説明は丁寧であり, 読者としては, UNIX の初心者から csh スクリプトを書き始めた初心者あたりを 狙っていると感じました. ある程度, 成功していると思います.

動作環境は, 本文中に明記されていませんでした. 本文が「PC-UNIX のインストール, お疲れ様!」ではじまるので, BSD 系や Linux を想定していると思われます. 特定の環境にこだわらずに, UNIX の一般的な話として書いていること自体は好感が持てます.

ただ, 初心者を対象とするならば, 環境によって異なる個所は, 丁寧に解説したほうが親切ではないかと感じました. 具体的には, 本文中でコマンド (tcsh, find, nkf, grep など) のインストールを勧めている部分です. BSD や Linux (Debian や RedHat) のパッケージについても触れているのですが, 具体的な説明はソースからのコンパイルになっていました.

また, エディタは vi を想定しているらしく, 「^G」を「Ctrl-v + Ctrl-g で入力」と説明してありました. すべてのエディタの入力方法を書く必要はありませんが, vi に独自の部分は, 「vi では」と書いたほうが親切です.

第 3 章では, セキュリティについても触れておくほうがよいと感じました. コマンド名を入れてそのマニュアルを表示するプログラムが例題なので, 読者が応用した CGI プログラムを書いた場合に, 作り方によってはサーバー上の任意のファイルを 表示してしまう危険などが考えられます.

また, この本は「csh でとことんがんばる」という部分に 意外性や特色があるのですが, そうでない選択肢も軽く紹介してあると, 内容が深まったと思います. 具体的には, 第 3 章の CGI を個人で書く場合は Perl を使うことが多いので, Perl についてもひと言触れておくと, 初心者の参考になったと思います.

お勧めの読者層

UNIX の初心者にとっては, 「読みやすい部分だけ読めればいいや」 と割り切ってしまうなら, 第 1 章の途中までは笑いながら読めるのでお勧めです. ただし, 第 1 章の途中からは突然 100〜600 行の長いプログラム例が出てきたり, 第 2 章の前半に Tcl/Tk のレファレンスが 60 ページ近く続くため, 途中で挫折する危険があります.

逆に, すでに csh スクリプトや Tcl/Tk や CGI を使える人には勧めません. 特に目新しいテクニックはありませんし, 読んでいて「もっといいやり方があるだろう!」と 突っ込みを入れたくなる部分が多いからです.

いちばんお勧めできるのは, 「簡単な csh スクリプトを書けるが Tcl/Tk や CGI は書いたことがない」 という人たちでしょう. csh スクリプトを Tcl/Tk や HTML と組み合わせて使うという切り口で, 楽しんで読むことができると思います.

Reviewed by 細野茂伸 (modula@d1.dion.ne.jp) さん

Linux の使用歴
4 ヶ月
UNIX の使用歴
10 数年まえに VAX-11 の端末で rogue 1 年
7,8 年まえに MINIX1.5 でちょっとお遊び
最近 PlamoLinux で 4 ヶ月. そのうち会社のサーバーを Linux に.
Linux Box の主な用途
Linux の学習, internet 端末
Linux Box に載っている Linux 以外の OS
Windows 98/NT
Linux と Linux 以外の OS の使用頻度の比
Linux:Windows 98/NT = 1:7

会社では, 仕事上 Windows 関係のプログラム (C 言語, VB) をしているので, UNIX に関しては素人です. 10 数年前に会社の新入社員研修で C シェルの研修を受けた記憶はありますが, もっぱら昼休みに VAX-11 の端末で rogue をしていた程度です. そんな私の感想であることを念頭においてください.

この本の構成

タイトルが「マスタリング Csh」となっているので, C シェルスクリプトに関する入門書ですが, 内容は単純な C シェルスクリプトだけでなく GUI のプログラムもできるように Tcl/Tk を使ったり, ホームページの SSI・CGI での応用まで広範囲です. 大きく分けて 3 部構成になっています.

Shall we dance?119Page
Let's go to the Cyber-Party
(Home-Party Edition)
165Page
Let's go to the Cyber-Party
(World-Party Edition)
73Page

見出しタイトルだけでは, シェルスクリプトと何の関係があるのだろうと思ってしまいますが, これは著者が映画の「サタデーナイトフィーバー」にかけて, 「サタデーナイトスクリプト」や「ジョントラボルタ」を 「サイバートラボルタ」と言って話を面白可笑しく進めると言う趣旨で このようなタイトルになっています. 著者の方とは年齢的に近いのですが, 個人的にはあまり面白く読み進めることはできませんでした. その分, 説明やサンプルを増やして欲しいと思いました. この辺は好みのわかれる所だと思います. ただ, 硬い表現でなく柔らかい表現の文章には好感が持てました. 著者は Mac ユーザーなのでなんとなくわかるような気がしますが...(^^; 各部は, 最初にツボを押さえた簡単なリファレンスがあり, 次に実用的なサンプルで練習するような形式になっています.

第 1 部 Shall we dance?

この章は, C シェルスクリプトの基本についての章です. 前半のコマンドの説明部分では必要最小限の説明だけしてあります. 他のリファレンスブックがないと理解しづらいかもしれません. (巻末に参考書籍の紹介があります) サンプルプログラムを解読しながら, 前半のコマンドの説明や他の tcsh などのリファレンスブックを参照しながら プログラムを読んでいくと理解しやすいと思います. ある程度 UNIX のコマンドに詳しければ比較的簡単に理解できますが, 私のように UNIX の基本コマンドすらよくわからない人や, 最初のコマンドの説明を読み飛ばしていると, 出てくるコマンドが UNIX のコマンドなのか, スクリプトの予約語なのかわからず悩んだりもします. sed や awk など UNIX 以外の OS でも有名なコマンドは問題ないのですが, which のような UNIX 独特のコマンドがサンプルに出てきたとき名前からして, シェルスクリプトの予約語かなと思うと悩んでしまいます. UNIX のコマンドとわかればなんてことないですが. 初心者には, スクリプトの学習というよりも, UNIX コマンドの使い方を覚える方が多いかもしれません.

第 2 部 Let's go to the Cyber-Party (Home-Party Edition)

この章は, Tcl/Tk と C シェルスクリプトを組み合わせて GUI のスクリプトの作り方の説明です. 前半は Tcl/Tk のオプションの簡易リファレンスとなっています. ほとんどのオプションについてどう表示されるかの画面例がついており, とても参考になると思います. また, 「勝手な感想」というコラムのようなものが, 各オプションごとにありますが, なかなか参考になって面白いです. リファレンス部分は見ていてもつまらないので実際に入力して, 試しながら読み進めるのがいいと思います. この本はあくまでシェルスクリプトの入門書なので, GUI の部分を Tcl スクリプトにまかせて 処理部分を C シェルスクリプトで処理するようになってます. 処理がサブルーチン化されて見やすくなってます.

第 3 部 Let's go to the Cyber-Party (World-Party Edition)

ホームページでの SSI, CGI でのシェルスクリプトの利用法について書かれています. HTML からのシェルスクリプトの呼び出し方から, GET と POST の違い, Cookie の使い方まで説明されてます. man を WWW ブラウザーで表示させるスクリプトは, なかなか面白くて実用的ではないでしょうか. すでに, man を html に変換する Perl のスクリプト (man2html) もあるようですが, このサンプルの応用でオリジナルを自作してみるのも面白いかもしれません.

総評

Linux をインストールして, X-Window も動いて, ホームページも見れて, メールも読めて, さて次に何をしようかなというときに, いきなり C 言語でプログラムというのも敷居が高いと思われる方には, まずはシェルスクリプトからはじめるのも良いのではないでしょうか. テキスト表示だけではつまらない人も, この本ならば Tcl/Tk で GUI にもチャレンジできます. あっさり動く Tcl/Tk には感激します.

飽きしょうな人には, 一冊で 3 つ楽しめるこの本はお勧めです. ただし, リファレンス部分は読むだけでなく, 実際に動作確認しながら読み進めないと挫折するかもしれません. DISK 付きではないですが, ftp でサンプルリストがダウンロードできます. この本の誤植や補足的なことは, ホームページにあるので 購入したら一度そちらのホームページを覗いてみたほうが良いかと思います. (巻末にアドレスが載ってます)

この本を手にすれば Linux 初心者から 1 歩, 2 歩前進できるのではないでしょうか. 私も, シェルスクリプトの勉強と言うよりも, UNIX のコマンドやエディタの使い方, 日本語環境などそちらの方が勉強になってしまいました. 今回は限られた時間のブックレビューなので 余り細かく動作確認しながら読み進めませんでしたが, もう一度最初から動作確認しつつ読み直してみようと思います.


[ ホーム | マップ | ニュース | 検索 | ドキュメント | リンク | プロジェクト ]
このサイトに関するご意見・ご要望は Webmasters までお願い致します.