tool

道具としてのコンピュータ

2002/10/02

コンピュータの素人が、やたらと難しいが面白い Linux を道具として使うのにはどうすれば良いのだろうかと思ってこのホームページを作り始めたのが1999/09/04 でした。今日が 2002/10/2 だから丸3年間たっています。3年たってもこの程度なのでやはり Unix はそう簡単には使いこなせないのでしょう。ただ、仕事の合い間に色々とやっているうちにこうしたら便利なのではないかという考えが湧いてきたので少しまとめてみたいと思います。

Linux を何につかうのか

著者はコンピュータをいじると時間を忘れるほうなので、Linux を使うのは趣味のためですが、最近趣味のためだけに使うのは勿体ない気がしてきました。それは Linux の発展が著しく、ウェブを見たり、メールを読むのには全く困らない程アプリケーションが充実してきたのも一因ですが、文書情報の情報処理に焦点をあてると高度な機能が簡単に実現できるからです。

趣味でも仕事でも要求されるのは、欲しい情報をいかにすばやく獲得することができるかという事でです。そうしてそういう情報は用が済むとすぐに散逸してしまいがちです。そのため、以前に利用した情報が後になって欲しくなってもどこに行ったか分からなくなってしまうと言うのは良くあることです。惜しいと思いますが、ため込んでしまうと家が何軒あっても足りなくなってしまいます。このような情報は文書のかたちをとることがほとんどです。文書情報に関してはいまだに本や雑誌などの書籍にかなうものはありませんが、インターネットの発達で少し様変りしているようです。そのようなネットの文書情報を Linux を少し工夫して使うことで効率良く管理できるのではないかと思うようになってきました。

情報は蓄積されて価値が出る

言うまでもないことですが、情報は蓄積されてこそ価値がでてくるものです。何回も同じ情報を得るために同じ検索をくり返したと言う経験がある人は多いでしょう。使い棄ての情報も蓄積しておくと役に立つことが多いのです。むしろ、書籍などにはないこのような生の情報が必要なことのほうが多いくらいです。当座の問題を切りぬけたからと言ってこういう情報を蒸発させてしまうのは惜しい気がします。

重大な情報から些細な情報まで有用な文書情報を蓄積しておいて利用できたらどんなに便利でしょう。そのような目的に Linux が利用できるかもしれないのです。

文書情報の蓄積はテキストファイルか HTML ファイルにする。

文書情報の蓄積はできるだけ、テキストファイルか HTML ファイルにしておくほうがよいでしょう。理由はデータがプログラムと独立しているからです。テキストファイルと HTML ファイルなら、IE でも Mozilla でも w3m でも lessでも cat でもなんでも読み取ることができます。プログラムがないので情報が全く読みだせないという危険性がないのです。また、どんなに OS やソフトウェアが進化してもデータが利用できなくなるという危険性もありません。それに、ファイル名に .txt か .html の拡張子を付けておくと何の設定もしないでnamazu のインデックスを作ることができるのです。後でも述べますが情報を蓄積しても読みだせないのではあまり意味がありません。namazu がこれほど強い支持を集めているのは情報の検索のためのインデックスを非常に簡単な方法で作ることができるからだと思います。くり返しますが情報を役立てたいのならデータはテキストファイルか HTML ファイルに保存すべきです。

HTML 文書を作成するのに w3m を利用する

HTML 文書は ハイパーリンクが設定できるので便利なのですが、エディターで作成しているときはどういうふうに見えるかがハッキリしません。w3m を活用するとレンダリングがどうなるかを確認しながら文書を作成して行くことができます。このホームページのブラウザー w3mに具体的なやり方を書いています。このホームページの文書は全て w3m を利用して作成したものです。w3m はまた httpd がなくても CGI を実行できる機能があるのでCGI の勉強やテストに活用している人も多いようです。

文書情報に全文検索のインデックスを作成する

文書情報が少ないうちは grep あるいは wgrep でキーワードの検索ができますが、情報量がある程度以上増えたら namazu のインデックスを作ると便利です。このページで紹介したnindex (namazu index) スクリプトを使うと任意のディレクトリー内の文書のインデックスを作ることができます。使い方はcd documents のように文書の入ったディレクトリーに入った後mknindex でインデックスを作成します。インデックスが ./namazu_index (ディレクトリーは自動作成されます)に作成されたら documents ディレクトリー内で nindex keyword でキーワードを検索することができます。この方法の利点はキーワード検索をするのに特別なディレクトリーに移動することなく ls でファイルリストを確認した後にその中を全文検索できることです。簡単なスクリプトなので使ってみるとその良さが分かると思います。

コンピュータ内の文書を自在に検索する

Linux は標準でインストールしても豊富な文書を利用することができます。man や info だけでなく、Vine Linux ではマニュアルや解説の文書の全文検索もできるようになっています。いろいろな文書を検索する際にお勧めしたいのがlocate というファイル名のデータベースを検索するプログラムです。Linux の入門書に find の解説はあるのに locate の解説がないのは、最初にデータベースを作らないと検索できないので初心者にはちょっと敷居が高いかもしれないからでしょう。しかしデータベースは Vine Linux 2.5 の場合は次のようにすると簡単に作成することができます。root アカウントで updatedb & と入力するだけです。

$ su
# updatedb &
# exit

一旦データベースを作成すれば locate filename とするだけでほとんど瞬時にファイルのフルパスを検索することができます。またこのページで紹介した wlocate を使うと検索したファイルのリンクをたどってその内容を読むことができます。例えば、

wlocate ruby

とすると コンピュータに入っている ruby 関係の全リストが表示されそのリンクをたどって行くことができます。perl や ruby のモジュールを調べるたりするのにたいぶ活用しました。

リンク集を作る

インターネットから情報を収集していると、リンク集を作りたくなることが多いと思います。w3m を使うと簡単にリンク集を作ることができます。このページの効果的なリンク集の作り方に詳しく述べていますが w3m でブックマークファイルを指定できるオプションを活用します。たとえば高血圧についてのリンク集を作りたい場合コンソールでつぎのように入力します。

w3m -bookmark kouketuatu.html http://www.google.co.jp

Googleの画面があらわれたら「高血圧」をキーワードに検索します。検索結果のリストのリンクをたどって記録したいページを確認したら Esc-a でリンクを登録します。作業がおわって w3m を終了したら kouketuatsu.html というリンク集が出来上がっていると思います。これは HTML ファイルなので w3m kouketuatu.html としてすぐに内容を確認することができます。

シェルプログラムで小道具をつくる

シェルプログラムは見掛の古さよりもずっと強力です。アプリケーションを作るには向いていないかもしれませんが、このページで紹介したツールのようにかなりの機能を持った小道具がほんの数行で書けてしまいます。シェルプログラムの学習に時間を投資するのは決して無駄ではないと思います。

Ruby でシミュレーションをする

「スクリプト言語なんてとてもとても」という人があるかもしれませんが何もそんなに難しいプログラムを作る必要はないのです。シミュレーションといってもスーパーコンピュータを使う必要はありません。たとえば複利計算で元利がどうなるのかというのも立派なシミュレーションです。次のようなプログラムをvi か emacs あるいは gedit で hukuri.rb という名前で作成します。

print "gankin = "
gankin = gets.to_f
print "riritu = "
riritu = gets.to_f
print "kikan = "
kikan = gets.to_f
ganri = gankin * ( 1 + riritu ) ** kikan
puts ganri

たとえば 100 万円を年利 2% で 10 年間借りたときの元利合計はいくらになる でしょうか。

$ ruby hukuri.rb
gankin = 100
riritu = 0.02
kikan = 10
121.899442

2% の利子でも元利合計が 120万円を越えてしまいます。

Ruby はオブジェクト指向言語という特長があるので、変数の扱いにちょっと注意が必要ですが、そこをクリアすればほとんど BASIC と同じ感覚で使うことができます。Ruby 入門についてはRubyに挑戦を見て下さい。

なぜわざわざオブジェクト指向プログラムの Ruby を使うのかと思う人もあるかもしれません。しかし、Ruby はプログラムの可読性が高く。後で自分やひとの作ったスクリプトを読んだときにあまり悩まなくて済むのです。「やりかたは幾通りもある」のなら簡単な方法をおぼえた方が楽です。

バックアップにフロッピーディスクをつかう

コンピュータにデータを蓄積していていちばん恐いのは操作ミスやディスククラッシュでデータが消えてしまうことです。データは頻繁にバックアップをとりたいものです。Linux を初心者が使っていていちばん手軽にバックアップをとれるのはフロッピーディスクを使う方法です。Vine Linux の設定では DOS/V 用の表記で販売されているウィンドウズ用にフォーマットされたフロッピーディスクならそのままフロッピーディスクドライブに入れて mount /mnt/floppy で簡単にマウントすることができます。例えば ~/data ディレクトリー以下に納められたデータのバックアップをとりたい場合は次のようにします。

tar zcvf data.tar.gz data

バックアップファイルの名前のあとには .tar.gz とつけるのが習慣のようです。これを次のようにしてフロッピーディスクにコピーします。

cp data.tar.gz /mnt/floppy

今どき 1.4M のフロッピーでは物足りないかもしれませんが文書情報ならかなり入ると思います。そのあとフロッピーディスクを取りだすのですが、 Windows の場合とちがって必ず次の操作でマウントの解除したあとで取りださないとデータがこわれてしまいます。

umount /mnt/floppy

バックアップしておいたデータをもとに戻すには次のようにします。

cp /mnt/floppy/data.tar.gz ./
tar zxvf data.tar.gz

もちろんフロッピーを利用したバックアップは容量の問題があります。いちばんよさそうなのはファイルサーバを利用することですが、すこし勉強が必要です。お金があればネットワークにファイルサーバを持つ方法もあります。とにかく重要なのはパソコンの環境とデータを切り放すことです。Linux の進歩は著しいのですぐに OS をアップデートしたくなります。そのときに足かせになるのがデータなのです。最低 /home ディレクトリーは OS 本体とは別のハードディスクにするのが良いと思います。

ともあれ、当分はこまめにフロッピーにバックアップしましょう。なんといっても一番簡単ですから。

おわり

以上が Linux を使って文書情報を処理するのに便利だと思った Tips です。サーバーとしては何でもできる Linux ですが、個人的に使うのには何に使っていいのか分からないと考える人も多いと思います。しかし、文書処理に関しては意外と使えるのではないでしょうか。オフィスプログラムも段々充実してきているし本当に「 Linuxのほうがいいや」といえる時代が来ているようです。