6 わからなかったらコンピュータに聞こう - manコマンド -

man,オンライン・マニュアル


 コンピュータを使っていて,『あれ,このコマンドのパラメータは,どう書くのだったかな?』とか,『このコマンドのオプションは何があったっけ?』ということがよくあると思います。こんなときは,本棚にあるマニュアルを出してきて調べる,というのがよくあるスタイルですが,UNIXではいちいち本を読む必要はありません。

 というのは,UNIXにはマニュアルがディスクに入っていて,いつでも画面に表示できるのです。このため,たとえば mv コマンドのパラメータの書き方を調べたければ,下図のような画面がすぐ表示できます。


 また,コマンドそのものを忘れることもよくあります。こんなときも,このマニュアルの中から目的とするコマンドを捜すことができます。
たとえば,『ディレクトリを作成するコマンドは何だったかな?』というときは,下図のようにディレクトリに関するコマンドとその説明の一覧を画面に表示させて,『あ!そうか,mkdir コマンドだったな』と,思い出させてくれます。なお,この図で各コマンドの後ろの括弧内の記号は,マニュアルの章番号です。


 指定するコマンドのマニュアルを表示させるには,次のように入力します。

% man コマンド名

たとえば,mv コマンドのマニュアルを表示するには,

% man mv

と入力します。

 コマンドのマニュアルは何行もあり,とても画面に一度で表示できないため,more コマンドによりファイルの内容を表示させたときのように,1画面分表示した時点でいったん表示が止まり,最下位行に反転文字で more と表示が出ます。ここで,スペース・キーを押すと次の1画面分が表示され,リターン・キーを押すと次の1行が表示されます。また,[CTRL]-cで以後の表示を取りやめます。

 なお,システムによってはmore機能がないときがあります。この場合には,いうまでもないことですが,次のようにします。

% man mv | more

 コマンド名を忘れた場合は,コマンド名をその機能を表す特徴的な単語(これをキーワードといいます)で検索することができます。この書式は,次のように行います。

% man -k キーワード

たとえば,ディレクトリ(directory)をキーワードにして検索する場合は,

% man -k directory

と入力します。

 -k オプションがないシステムでは findmanコマンドで代用します.


 UNIXに限らず,一般に計算機のマニュアルは膨大な分量となります。大学の計算機センタにあるような大型計算機には,ソフトウェアのマニュアルだけで数十冊のマニュアルが備えられていますし,ワークステーションでもいろいろなコマンドやシステムの大量のマニュアルが10以上のバインダに入っています。

 調べたい事柄を,こうしたマニュアルの中から捜し出すのは,結構たいへんな作業です。それでも,システムの設定を変更してインストールをやり直す,といった仕事を行うときには,いろいろなマニュアルを良く読むことも必要ですし,マニュアルを読む価値もあるのですが,コマンドのパラメータの使い方とか,コマンド名の確認といった簡単なことにまで,いちいち何冊ものマニュアルをひっくり返すのは,ばかげています。

 このため,UNIXでは初期の段階からマニュアルをディスクに格納し,ディスク上のマニュアルの中から必要とする事柄を捜し出して画面に表示する機能が備えられていました。このようなマニュアルを本来の「ペーパ・マニュアル」に対応して「オンライン・マニュアル」といいます。


 manコマンドで使用するマニュアルは,ディスクのきめられたディレクトリに入っています。たとえばBSD系のUNIXでは,/usr/man というディレクトリの下にさらにman1,man2,man3...というディレクトリがあり,man1 の下にはマニュアルの1章の各項目のファイルが,man2 の下には2章の各項目のファイルというように,章ごとに分けて各項目のファイルが整理されて入っています。

 各マニュアルは,troff/nroffという形式で格納されていて,man コマンドにより画面に表示するときは,nroffを用いて表示しています(troff/nroffについては,Part8-1を参照してください)。また,man コマンドに -t というオプションを付ければ,troffを用いて整形したマニュアルを出力するので,もしレーザ・プリンタが接続されていれば,次のように入力して mv コマンドのきれいなマニュアルを得ることができます。

% man -t mv | lpr -t

また,自分でマニュアルをディスクへ登録することも可能です。たとえば,自分で新しいコマンドを作成してこれをほかの人に公開する場合,その使い方を説明したマニュアルをtroff形式で作成してディスクへ登録し,ほかのユーザが必要に応じてこれを読めるようにできます。

 マニュアルの書き方は,すでに登録されているマニュアルを参考にしてください。詳しい説明は,次のようにして,マニュアル第7章に記載されている man コマンドの詳細説明を画面に表示することでもわかります(オプション 7 を省略すると,第7章を指定したことになり,manコマンドの通常の使い方が表示されます)。

% man 7 man


man コマンドでは,UNIXの各コマンド以外にも,標準でサポートされている関数や,ファイルの説明なども表示させることができます。この場合は,コマンドの場合と同様に,man の後ろに関数名やファイル名を書きます。

使用している計算機のディスク容量が小さく,マニュアルをディスクへ入れておくと別のファイルが登録できない場合があります。こんなとき,もしPart8で説明するEthernetというネットワークで接続された別の計算機があれば,この計算機のディスクに入っているマニュアルを利用させてもらい,使用している計算機にはマニュアルのためのファイルを格納しない,ということが可能です。
これは,まず使っている計算機のマニュアル・ファイルをすべて消去し(もちろんどこかにバックアップはとっておきますが!),NFSというネットワークを用いたファイル共有システムを用い,相手の計算機のマニュアルが入っているディレクトリを,使っている計算機のマニュアル用ディレクトリへマウントします(NFSについての詳しい説明はPart8-5を見てください)。
ただし,両方の計算機が同じ場合はいいのですが,異なる計算機でマニュアルを共有する場合は,その機種特有のコマンドや機能については食い違いが生じますから,注意が必要です。


 システム管理者は,各ユーザが作成したコマンドがあれば,このコマンドのマニュアルを書き(もしくは,作成者に書いてもらい),これをディスクへ登録してユーザ全員が利用できるようにします。また,NFSを用いた別の計算機のディスク利用のための設定作業は,システム管理者が行う仕事です。


【man】 オンライン・マニュアルの表示