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