6.2 ヘルプコマンドの実行と各種ヘルプシステム
Linux Essentials Online Text | 2021/07/21

Linuxは、企業が販売するWindowsOSやMacOSとは異なりコミュニティから作られたOSであるため、使い方について不明点があっても、製造元に問い合わせすることができません。
しかしながら、コマンド操作を中心としたLinuxにとって、コマンドの構文やオプション等、使い方に関する情報は重要であり、Linuxには複数の解決方法があります。

コマンドの補助機能

Linuxで利用可能なほとんどのコマンドには、「-h」または「–help」オプションが提供されています。manやinfoコマンドによるマニュアルほど丁寧ではありませんが、簡易的な使用方法を参照することができます。
-hオプションは、コマンドによっては他の機能が割り当てられている場合がありますので、–helpオプションを使用することをオススメします。

$ COMMAND -h
$ COMMAND --help

実際に実行してみましょう。2行目には使い方(Usage)として書式が表示され、3行名以降に簡単な説明が表示されます。その後、使用可能なオプションとその説明が列挙されます。
日本語化されていない部分もあるので注意して下さい。

$ ls --help
使用法: ls [オプション]... [ファイル]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all             . で始まる要素を無視しない
  -A, --almost-all      . および .. を一覧表示しない
      --author            -l と合わせて使用した時、各ファイルの作成者を表示する
                    :

ロングオプション

アルファベット一文字だけでなく、「–(ハイフン二つ)」から始まる同じ機能を持つオプションがあることに気がつくと思います。ハイフン一つのものをショートオプション、ハイフン二つのものをロングオプションと呼びます。どちらを指定しても得られる結果は同じですが、タイプする文字が多くスペルミスの可能性が高いロングオプションは、あまり使用されない傾向にあります。

オンラインマニュアルを閲覧する(man)

Linuxには便利なオンラインマニュアルがあります。ここではmanの使い方を紹介します。入力は次の通りです。

書式:

man [オプション] コマンド名
man [セクション] コマンド名

主なオプション:

-k 単語'単語'が含まれるエントリ一覧を出力します。
-f 単語'単語'が完全一致するエントリ一覧を出力します。

manの実体は /usr/share/manに格納されていて、これを呼び出して表示しています。
例としてls コマンドのマニュアルを調べてみます。

$ man ls
CP(1)                            User Commands                           CP(1)

NAME
       cp - copy files and directories
SYNOPSIS
       cp [OPTION]... [-T] SOURCE DEST
       cp [OPTION]... SOURCE... DIRECTORY
       cp [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
       Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -a, --archive
              same as -dR --preserve=all
                    :

ページャーで表示され、操作はmoreやlessコマンドと同じです。
[↑]キー、[↓]キー、[スペース]キー等でページを送りを行い、[q]キーで終了します。

manコマンドは原則英語表記です。日本語環境があるときは日本語が表示される事もあります。内容は同じです。
manページのレイアウトは見やすいように最適化されており、強調やフォント制御も行います。manページ内の節構成は以下の通りで、だいたい以下の順序で配置されますが、全てのマニュアルで共通化されているわけではなく、manによっては項目が存在しない場合もあります。

NAME(名前)コマンドや関数の名前とその機能を一行で説明する文。
SYNOPSIS(書式)コマンド行のオプションを含めた形式。
DESCRIPTION(説明)コマンドや関数についての具体的な説明。
EXAMPLES(例)使用法の具体例。
REPORTING BUGS(バグ)プログラムにバグがあったときの連絡先。
KNOWN BUGS(既知のバグ)既知のバグに関する説明。
AUTHOR(著者)このプログラムの作者。
COPYRIGHT(著作権)     このプログラムの著作権表記。
SEE ALSO(関連事項)関連するコマンドや関数のリスト。

上記以外にも、OPTIONS、EXIT STATUS、ENVIRONMENT、FILESなどがあります。

<実習: コマンドのマニュアル閲覧>

cpのマニュアルを見てみましょう。

$ man cp

セクション

lsやcpのmanを閲覧したとき、上部に「LS(1)」「CP(1)」という記述があった事に気がついたでしょうか。これは、lsやcpのマニュアルが「セクション1」にあたる、という意味です。
セクションとは、マニュアルの内容を特定の分野に分け、その分野を指定したものです。セクションには番号がついており、以下の表のようになっています。

1ユーザコマンド
2UNIXのシステムコール
3UNIXのシステムライブラリや関数
4デバイスやデバイスドライバ
5ファイルの形式
6ゲームやデモ等
7その他
8システム管理用のコマンド
9カーネル等の情報

<実習: セクション別のマニュアルの表示>

Linuxには、パスワードを管理する/etc/shadowというファイルがあります。このマニュアルを見てみます。

$ man shadow
SHADOW(3)                        Library Calls                       SHADOW(3)

NAME
       shadow, getspnam - encrypted password file routines
SYNTAX
       #include <shadow.h>
                :

何か、おかしいことに気がつくでしょうか?そうです、どう見てもファイルの説明が書いてあるようには見えませんね。実際、セクションが「3」となっており、ライブラリコールと書かれています。説明内容もなんだかプログラミング的です。とりあえず、下の方を見てみましょう。

manの最後に「SEE ALSO」と表示され、以下のような記載がありました。

SEE ALSO
        getpwent(3), shadow(5).

これは、セクション5にもshadowというエントリがあるのでそれを参照してください、という意味です。
では、[q]でmanコマンドを終了させ、セクション5のマニュアルを参照します。次のように入力します。

$ man 5 shadow

今度は、先程とは違う表示が出力されます。

SHADOW(5)                     File Formats Manual                    SHADOW(5)

名前
       shadow - 暗号化されたパスワードファイル

説明
       shadow にはユーザのアカウントに対する暗号化されたパスワード情報、
       およびオプションとしてパスワードの有効期限の情報が記されている。
               :

どうやら今度は、/etc/shadow というファイルについての説明のようです。実は、Linuxには「shadow」という単語に対しては2つの意味合いがあり、それぞれにマニュアルが用意されている、ということです。

このように同じ単語でも複数の意味を持つ場合は、セクションごとにマニュアルが用意されており、セクションを切り替えて参照します。

マニュアルの検索

マニュアルは検索が可能です。検索オプションには2種類あります。1つは[-f]オプションです。これは、指定したキーワードと完全一致した一覧が表示されます。
もう1つは[-k]オプションです。これは、指定したキーワードの一部がマッチした一覧が表示されます。これは、aproposコマンドと同じ動作です。

書式:

man -f キーワード
man -k キーワード

<実習:マニュアルの検索>

$ man -f crontab
crontab (1)          - maintains crontab files for individual users
crontab (5)          - files used to schedule the execution of programs
$ man -k crontab
anacrontab (5)       - configuration file for Anacron
crontab (1)          - maintains crontab files for individual users
crontab (5)          - files used to schedule the execution of programs
crontabs (4)         - configuration and scripts for running periodical jobs

-fオプションは完全一致、-kオプションは部分一致であることがわかりますね。

infoマニュアルを閲覧する(info)

Linuxのコマンドの多くはGNUプロジェクトによって開発されています。GNUプロジェクトが提供している各種パッケージのドキュメントは「Texinfo」というフォーマットで作成されており、infoコマンドで読むことができます。
このドキュメントは、infoマニュアル(ドキュメント)と呼ばれており、オンラインマニュアル(manコマンド)とは別物です。コマンドによっては、infoマニュアルの方が詳しい場合が多くあります。使い方は次の通りです。

書式:

info コマンド名

<実習: infoマニュアルの表示>

まずはlsのオンラインマニュアルを見てみましょう。

$ man ls

マニュアルの最後の方に以下のようなメッセージが記述されています。

SEE ALSO
   The full documentation for ls is maintained as a  Texinfo  manual.   If
   the  info and ls programs are properly installed at your site, the com‐
   mand
                 info coreutils 'ls invocation'
          should give you access to the complete manual.

英語でよくわからないかも知れませんが、意訳すると「lsコマンドの詳細は“Infoマニュアル”に記載されている」と書いてあります。このように表示されるものは全てinfoコマンドで確認できます。
実際にやってみましょう。以下のコマンドを実行します。

$ info ls

以下のように表示されます。

File: coreutils.info,  Node: ls invocation,  Next: dir invocation,  Up: Directory listing

10.1 'ls': List directory contents
==================================

The 'ls' program lists information about files (of any type, including directories). 
Options and file arguments can be intermixed arbitrarily, as usual.
         :

Infoマニュアルはページが階層構造になっていたり、別ページへのリンクを貼ることができたり、とオンラインマニュアルに比べると高機能です。また、引数なしでinfoコマンドを実行するとメニューページが表示されます。

アプリケーション固有のドキュメント

アプリケーション固有のドキュメントがある場合、それらは大抵 /usr/share/doc/ ディレクトリ下のアプリケーション名 (にバージョン番号を付けた名前)のサブディレクトリにインストールされます。ドキュメントは開発したコミュニティがそれぞれに提供しているため、PDFだったり、HTMLだったりと統一した形はありません。
そのため、ファイルごとに閲覧方法を変える必要があります。

PAGE TOP