シェルコマンドの使い方の調べ方(セルフヘルプのすすめ)

前回の記事で、odというコマンドの-tオプションを使いましたが、UNIX系のコマンドラインで、コマンドの機能や、どんなオプションがあるのか、などを自分で調べる方法をまとめておきます。UNIX系OSのコマンドラインはかなり強力なので、使いこなすと便利です。

実際に実行されるコマンドを確認する

UNIX系OSと一口でいっても、インストールされているコマンドは様々な上に、コマンドパス指定やalias機能(別名機能)などのカスタマイズが可能なため、実際にどんなコマンドが起動されるか確認する必要があります。
これにはwhichというコマンドを使います。たとえばodコマンドの場合は、以下のようになります(実行結果は私のUbuntu環境の場合)。

$ which od
/usr/bin/od

さらに、この/usr/bin/odがどんなファイルかを確認したいときには、fileコマンドがあります。コマンドの実行結果をコマンドに利用する場合は、バッククォートで囲います。

$ file `which od`
/usr/bin/od: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=(略), stripped

ちなみに、whichコマンドの場合は下記のようにシンボリックリンクになっていたので、さらにその先を調べたらスクリプトでした。

$ file `which which`
/usr/bin/which: symbolic link to `/bin/which'
$ file `which /bin/which`
/bin/which: POSIX shell script, ASCII text executable

コマンドラインヘルプ

たいていのコマンドは、"--help"(マイナス・マイナス・ヘルプ)というオプションをつけて起動すると、そのコマンドの簡単な説明が表示されるようになっています。たとえば、odの場合、下記のように表示されます。

$ od --help
Usage: od [OPTION]... [FILE]...
  or:  od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]
  or:  od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]]

Write an unambiguous representation, octal bytes by default,
of FILE to standard output.  With more than one FILE argument,
concatenate them in the listed order to form the input.
With no FILE, or when FILE is -, read standard input.
(以下省略)

"--help"で表示されない場合は、-help, -h, -Hを試すと、たいていのコマンドで何かしら表示されるようになっています。

manページ

odの場合は、コマンドラインヘルプがかなりの情報量ですが、簡単な内容しか表示されないコマンドもあるので、次に見るのは「manページ」と呼ばれるテキストです。これは、manコマンドで表示できます。

$ man od

通常の環境では、該当するマニュアルが検索されて、lessなどのページャーを使って表示されます。コマンドラインの表示言語が日本語に設定されていると、日本語のmanページがなかったり、ページャーによっては文字化けするなどの問題が起こることがありますが、その場合は下記のように、一時的に英語にしてmanを起動するのが便利です。

$ env LANG=C man od

さて、manページを表示すると、コマンド名の後にカッコつきで数字が表示されています。

OD(1)                            User Commands                           OD(1)

odコマンドの場合、1ですが、これはセクションと呼ばれて、manページの分類です。man manでmanコマンドのヘルプを読むと分かりますが、1はユーザコマンド、2はシステムコール、8はシステム管理コマンド、などに分かれています。同一名称のマニュアルが、複数のセクションに存在している場合があるので、その場合はセクション番号を指定して呼び出します。

man 7 man

manページはfindなど結構長いものもありますが、意外と便利な機能もあったりするので、たまに読むことをおすすめします。見たことがなければ、uniqコマンドmanページはおすすめです。GNU uniqの場合、-cオプション(出現回数を表示する)や-dオプション(2件以上出現したもののみ表示する)などの便利なオプションがあります。

infoドキュメント

odのmanページの末尾に、下記のように書かれています。

SEE ALSO
       The  full  documentation  for od is maintained as a Texinfo manual.  If
       the info and od programs are properly installed at your site, the  com‐
       mand

              info coreutils 'od invocation'

       should give you access to the complete manual.

GNUのコマンド群の正式ドキュメントは、manページではなく、Texinfoというファイルで管理されています。ここに書かれている通り、コマンドラインで"info coreutils"などと指定すれば、見ることができます。
Texinfoというのは「古(いにしえ)のmarkdown記法」ぐらいに理解しておけばいいと思いますが、相互リンク可能で、印刷を含めた様々な出力形式に変換可能な記法です。
最近はHTMLへの変換もできるようなので、Web上で公開されているものを検索してしまった方が簡単かもしれません。たとえばodの場合は、下記にありました。
https://www.gnu.org/software/coreutils/manual/html_node/od-invocation.html#od-invocation