Ubuntu Weekly Recipe

第145回 manのさまざまな使い方

この記事を読むのに必要な時間:およそ 3 分

ここ数年でUbuntuの知名度もあがり,Web上にはさまざまなUbuntuの情報やノウハウが蓄積されてきました。検索エンジンを使えば,Web上の膨大な情報から手軽に情報を集めることができるため,わからないことがあるとついググってしまいがちです。しかし,Web上にある記事が,自分のシステムについて正しく解説をしているという保証はどこにもありません。それよりも自分のシステムに用意されたマニュアルの方が信用できるというものです。伝統的なUnixシステムにはmanpageと呼ばれるオンラインマニュアルが用意されています。システムにインストールされているコマンドの使い方や設定ファイルの記述方法は,このマニュアルページを参照することでだいたい解決ができるようになっています。

そこで今週のレシピは,伝統的なUNIXマニュアルのさまざまな読み方を紹介します。ググる前に一度manに目を通してみると,幸せになれるかもしれません。

端末でマニュアルを読む

もっとも基本的なmanの読み方は,端末でmanコマンドを使うことです。manコマンドの引数に読みたいマニュアルのページ名(コマンド名や関数名など)を渡すことで,そのマニュアルが端末内のページャで表示されます(ページャにはlessコマンドが使用されます)⁠lessの使い方がわからない場合は,'h'キーを押してヘルプを確認しておきましょう。基本的な操作は,j/kで一行ずつ上下スクロール,d/uで半画面ずつ前後に移動,f/bで一画面ずつ前後に移動,/(スラッシュ)で検索,nで次を検索,Shift+nで前を検索,qで終了です。

マニュアルには章立てがあり,一般的には表にある8つの章にわけられています。manコマンドに章番号を渡せば,マニュアルを検索する章を限定することが可能になります。もしも同名のマニュアルが複数の章にあった場合でも,検索する章を限定することで意図しないマニュアルが表示されてしまうことを回避できるのです。

図1 端末でmanコマンドを実行すれば,ページャでマニュアルを読むことができます。が,使い勝手がいいとは言えません。

図1 端末でmanコマンドを実行すれば,ページャでマニュアルを読むことができます。が,使い勝手がいいとは言えません。

章を指定してマニュアルを読む例

$ man open      ← openvtコマンドのマニュアルが表示される(man 1 openと同等)
$ man 2 open    ← openシステムコールのマニュアルが表示される
$ man 3 open    ← C言語のopen関数のマニュアルが表示される

表1 マニュアルの章立て

1実行プログラムやコマンド
2システムコール
3ライブラリ関数
4スペシャルファイル
5ファイルのフォーマット(例えば /etc/passwd など)
6ゲーム
7マクロのパッケージ(例えば man(7), groff(7)⁠ など)
8システム管理用のコマンド

Emacsとwoman

端末でmanを読むことはできますが,これではあまりに不便です。そこで,みんな大好きEmacsの出番ですね。Emacsにはwoman注1というmanを読むためのインターフェイスが用意されています。M-x womanを実行すると,ミニバッファに"Manual Entry:"というプロンプトが表示されますので,表示させたいマニュアル名を入力しましょう。もちろんTabやC-iでマニュアル名を補完することができます。

バッファに表示されたマニュアルは,当然C-nやC-vといったキーで読み進めることができますが,セクション単位で移動することもできます。一般的にマニュアルはSYNOPSIS,COPYRIGHT,DESCRIPTION,OPTIONSといったセクションにわけて記述がされており,バッファ上でn/pキーを押すことで,それぞれ前後のセクションの先頭へ直接ジャンプすることができます。gキーを押すとミニバッファにセクション名の入力が促され,任意のセクションへのジャンプができます。もちろんここでもセクション名をTabで補完できます。sキーはマニュアルの最後にある"See Also"セクションへジャンプします。See Alsoセクションにあげられているマニュアルにカーソルを合わせた状態でrキーを押せば,該当するマニュアルを別バッファに開くこともできます。関連する別のマニュアルをその場で参照したい時に役立つでしょう。

注1
manコマンドを使用せず自前でマニュアルを表示するため,without manがその名前の由来だそうですが,うまいシャレですね。

図2 なんでもできるEmacsは,当然マニュアルも読める。Emacsでコーディングをしているのなら,いちいち端末やブラウザを使わなくていいのは大きなメリット

図2 なんでもできるEmacsは,当然マニュアルも読める。Emacsでコーディングをしているのなら,いちいち端末やブラウザを使わなくていいのは大きなメリット

ブラウザでマニュアルを読む

man2htmlパッケージを利用することで,マニュアルをブラウザから見ることができます。man2htmlパッケージのインストールと同時にApache2 Webサーバがインストールされ,ローカルでWebサーバが起動します。インストールが完了したらFirefoxなどのWebブラウザを起動し,http://localhost/cgi-bin/man/man2htmlへアクセスしてみてください。

man2htmlパッケージのインストール

$ sudo apt-get install man2html

man2htmlでは,テキストボックスにマニュアル名を入力してマニュアルを検索できる他,セクションごとの全マニュアル一覧から,見たいマニュアルを探せます。常時起動しているであろうWebブラウザでマニュアルを閲覧できるのは,非常に便利と言えるでしょう。

図3 man2htmlのメイン画面。検索ボックスにマニュアル名を入力する際には,manコマンド同様に章を指定しての検索も可能

図3 man2htmlのメイン画面。検索ボックスにマニュアル名を入力する際には,manコマンド同様に章を指定しての検索も可能

図4 このように,ブラウザでマニュアルを表示できる。HTMLなので,当然ハイパーリンクも動作する

図4 このように,ブラウザでマニュアルを表示できる。HTMLなので,当然ハイパーリンクも動作する

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。株式会社インフィニットループ所属。

コメント

コメントの記入