www.suzu841.com | mrs.suzu841.com

neko1sa.gif マニュアル( man )ページをテキスト化する

ランレベル3上で、マニュアル( man )ページをテキストファイルとして一度にたくさん出力してしまいたい、とか html として一度にたくさん出力したいとかと言う時に便利なツールです。もちろん、ランレベル5上でも操作可能です。


man ページをテキストファイルに掃き出す

suzu841.com のスクリプト・ショートショートのページから、「man ページをテキストファイルに掃き出す」のスクリプトを頂戴してきます。
修正版が出ていますので、下の修正版の方の2行目以下を全て選択してコピーします。


自分のデスクトップ上で右クリックし「端末」を選択します。

& vi

上のように入力し、Enter キーを押します。


起動してきた「 Vim 」を、まずキーボードの「 i(アイ) 」キーを押して挿入モードにし、先の suzu841.com でコピーしてきた man2txt を Shift キーと Ctrl キーを押したまま V キーを押して、貼り付けます。この時、「 Vim 」起動時の文章が「 Vim 」上に表示されていても気にせず、操作をおこなってください。「 Vim 」起動時に表示される文章はバッファ上にあるものを表示しているだけですので、操作を行えば消えます。


適当な名前をつけて保存します。ここでは「 man2txt.sh 」と名前をつけて保存します。
操作方法は、まず、「 Esc 」キーを押して挿入モードから抜けます。この時1回だけだとうまく行かないといけないので、2,3回叩いてもかまいません。次に「 :(コロン) 」と書かれているキーを押し、それから「 wq 」と入力し、半角スペースをあけ、作ったファイルにつける名前を入力します。

ちゃんと保存できているかどうかを「 ls 」コマンドで確認します。「 man2txt.sh 」とちゃんと出来ていました。


「 ll(エル・エル) 」コマンドで権限の確認をします。このままでは使えないので、実行権限を割り当てます。
実行権限は「 chmod 」コマンドを使い、自分だけが実行できるように「 700 」をあてます。

権限が変わりました。

では、今度は ランレベル3上で 実際に「 man2txt.sh 」を使って、Vim の man ページを作ってみようと思います。

この時、必ず「 . (ドット)」と「 /(スラッシュ) 」をつけて「 ./mant2txt.sh ××× 」と入力します。

「 ls(エル・エス)」コマンドで確認をしてみると、「 vim 」 のテキストファイルが出来ています。


できた「 vim.txt 」の内容を「 less (レス)」コマンドで確認してみます。

$ less vim.txt

「less vim.txt 」と入力して Enter キーを押します。

vim の man ページが表示されました。

ランレベル3とランレベル5では同じ「 bash 」が動いていますので、ランレベル3上での操作はランレベル5上の「仮想端末(ターミナル)」と非常に良く似ています。

今度は上の操作をランレベル5の「仮想端末(ターミナル)」で行ってみます。
ランレベル3の時と同じように「 vim 」の「 man 」ページをテキストファイルにします。

出来た「 vim.txt 」の内容を「 less(レス) 」コマンドで確認します。
どうですか? ランレベル3とランレベル5の「仮想端末(ターミナル)」上で「man2txt.sh」を使って「 vim 」の「 man 」ページをテキストファイルにする操作手順と言うのは、殆ど同じでしょう?
もちろん違うところもいっぱいあります。全部同じと言うわけにはいきません。
その証拠にランレベル5でしか操作ができないツールと言うものがいっぱいありますし、ランレベル3上では漢字表記などが苦手です。
ちょっと前のバージョンまではランレベル3上で日本語のマニュアルなどを読むときに便利な「 kon 」と言うシェルのようなツールがありましたが、この CentOS 5.x 系では残念な事に、なくなってしまったようです。
いいツールだったんですけど・・・私は好きでした。はい。(悲しいなぁ・・・)

おまけ(ランレベル3で仮想コンソール(端末)画面の切り替え)


ランレベル5で、ユーザごとにログオン画面が表示され、それぞれ違う画面が表示されますよね?
ランレベル3で、それと同じようにひとつの画面をそのままにしておいて、又、新しい画面で操作をし、また、その画面はそのままにしておいて、他の画面を出して操作したり、元の1枚目の画面へちょっと内容を確認にいったり・・・。
一番最初のはそのままで、次に作る時には、「 Alt 」キーを押したまま「 F2 」キーを押すと下の画像のような他のランレベル3の画面が表示されます。一番最初の画面は「 Alt 」キーを押したまま「 F1 」キーという事になります。また、3枚目を作りたければ「 Alt 」キーと「 F3 」キーを押して・・・と言うように6枚くらいまでは切り替えることができたと思います。
切り替えるときには「 Alt 」キーともどりたい画面の番号キーを押し、その画面を終了する時には、「 exit 」です。

デバイスとしては「 tty 」の「番号」、つまり「 tty 0 」、「 tty 1 」、「 tty 2 」などと定義されるようです。

man ページを html ファイルに掃き出す


上記の「man ページをテキストファイルに掃き出す 」に似たものに、man ページを html に落とす「 man2html 」というコマンドがあります。
ただ、「 man ページをテキストファイルに掃き出す 」ツールと「 man2html 」は動作が違いますので、「 .gz 」などで圧縮されている「 man 」ファイルはいったん解凍する必要があります。

試しに「 man.1.gz 」を「 gunzip 」コマンドで解凍してみました。「 man2html.1 」と言うファイルが出来ました。

& gunzip man.1.gz


では、今度はこれを html ファイルに落としてみましょう。

& man2html /usr/share/man/ja/man1/man2html.1

「 /usr/share/man/ja/man1/man2html.1 」と言うのは、「 usr 」と言うディレクトリー(フォルダー)の中の「 share 」と言うディレクトリー(フォルダー)の中にある「 man 」と言うディレクトリー(フォルダー)の中の「 ja 」と言うディレクトリー(フォルダー)の中にある「 man1 」と言うディレクトリー(フォルダー)の中に「 man2html.1 」ファイルがある、ということです。

「 man2html.1.html 」というファイルが出来ました。


ブラウザーの「 konqueror 」で表示してみます。

もしも文字化けなどをおこしていたら、それぞれの環境にあわせてエンコードを正しく指定しなおしてください。


次は「 lynx (リンクス)」と言うテキストブラウザで表示してみます。
ただし、「 lynx 」というテキストブラウザの仕様で「 meta 」情報が必要になります。「 lynx 」は「 meta 」情報をまず読みに行きますので、「 meta 」情報がないとどうしたらいいのかわからないという事になってしまいます。作った html ファイルに「 meta 」情報がなかったら、記述しておきましょう。

下記の赤い点線のところに下の赤い枠線で囲んだ「 meta 」情報を記述しておきます。
ここでは「 meta 」情報の「 charset 」に「 utf-8 」と記してありますが、ここもそれぞれの環境にあわせて使用するエンコードを変更してください。
訂正し終わったら、「 lynx 」で表示してみます。

無事に確認できました。


ランレベル5上での代替ツール

/usr/share/man/ja/ の中には man ファイルが 「 .gz 」 で圧縮されていっぱいあります。
これは通常の edit では開く事ができません。 Emacs とか Vim などなら大丈夫ですが、残念な事に Vi( Vim )はマルチバイト文字が苦手ですので、きれいに日本語などを表示してくれません。使えるのは Gvim という事になります。
これでしたら、そのまま「 .gz 」のファイルを読み込む事ができ、しかも日本語表記はお手の物。そして、html への変換もOKです。おまけに meta 情報もちゃんと入るのでランレベル3で lynx をそのまま使用できます。
ただし、残念な事に「 Gvim 」それ自体は、はランレベル3上では使用できませんし、一度にたくさんのファイルを変換する事もできません。そしてランレベル3では マルチバイト文字が・・・!!
lynx
ランレベル3、 lynx で man2html.1.html を表示してみましたが、見事に日本語が表示されていません。

ランレベル3上は Unicode を使用しています。Unicode と言うのは、半角ベースの文字ですので、日本語などの漢字は、半角文字が右と左と2つ並んでひと文字とします。よく文字化けしたところで、四角が並んで化けているのを見たことがありませんか?つまり、右側でひと文字、左側でひと文字・・・と・・・。


※ 「 man2txt.sh 」や「 man2html 」は、あくまでも、「man ファイル」だけに有効なツールです。