引数とオプションについて詳しく、オプションとは、オプションのガイドライン、マニュアルで使い方を知る
引数とオプションについて詳しく
今回は前回触りだけ説明した引数とオプションについてしっかり見ていきたいと思います。これが出来れば「黒い画面」用のフリーソフトを使う準備完了です。
引数はコマンドに渡す文字列です。コマンドの後にスペースを一個いれて文字を打ち込むんでした。
$ echo hello
実は引数は複数渡すことができます。スペースで区切って3つ引数を渡してみましょう
$ echo hello my friend
hello my friend
はたから見ると単語を4つ書いているだけに見えますが、実際はechoコマンドに3つの引数を渡しているだけだということが分かると思います。
引数をどう処理してくれるのかはコマンドによって違います。echoは引数をスペースでつなげて表示します。(そういう風にechoの作者が作っただけ)
オプションとは
lsは-aという引数を渡すとドットファイルも表示するんでした。lsはファイルやディレクトリのパスを渡すことでその一覧を見ることができます。
$ ls /bin
-aとパスの両方を渡すこともできます。
$ ls -a /bin
引数の中で特に-(ハイフン)から始まっているものをオプションといいます。引数やオプションにはこうあるべきというガイドラインはありますが、必ずそれに従わないといけないわけではありません。ガイドラインが出来る前の古いコマンドは従っていませんし、無視しているフリーダムなコマンドもあります。
オプションのガイドライン
「-(ハイフン)」のあとアルファベット一文字がオプションです。オプションは複数指定できます。
$ command -a -b -c foo
オプションに文字を渡すことが出来るものがあります。(ファイルを指定する-fオプションがあった場合)
$ command -f /tmp/foo
アルファベット一文字だと覚えにくいので、「–(ハイフン二つ)」から始まる同じ機能を持つオプションがある場合があります。ハイフン一つのものをショートネームオプション(short name option)、ハイフン二つのものをロングネームオプション(long name option)と呼びます。
$ command --name
ロングネームオプションに文字を渡すことが出来るものがあります。ロングネームオプションに文字を渡す場合=(イコール)を付けます。下記の2行は同じ動作をします。
$ command -f /tmp/foo
$ command --file=/tmp/foo
ショートネームオプションとロングネームオプションは混在させることができます。
$ command -a --file=/tmp/foo bar
-hもしくは–helpでそのコマンドの使い方が表示されます。Usageは利用法という意味です。
$ command --help
Usage: command [options] [arguments]
-a append mode
-f target file
-v もしくは –version でそのコマンドのバージョン番号が表示されます。
$ command --version
command 1.2.3
lsやcd、echoなどは歴史の古いコマンドなのであまりこのガイドラインに従っていません。新しいコマンドを見つけた時はとりあえず-hか–helpで使い方を調べましょう。
マニュアルで使い方を知る
-hなどで表示されるヘルプは簡易的なものなので、もっと詳しく知りたい場合はmanコマンドを使いましょう。manはmanualの略でそのままの意味です。コマンド名を渡すと、そのコマンドのマニュアルが存在する場合はマニュアルを表示してくれます。
$ man ls
英語ですね…。日本語の man もありますが、ググった方が早いかもしれません。manual は矢印キーでスクロールし、qキーで終了できます。SYNOPSIS は概要、DESCRIPTION は説明です。
マニュアル読め
コンピューターコミュニティには古くから自分で調べる努力をせず簡単に人に聞く人に対して、RTFM(READ THE F**ING MANUAL!) 「マニュアル読め××野郎!」という厳しい言葉があります。今風に言えば「ググレカス」ですね。