コマンドラインでは、次のような「単純な」コマンドをよく使用します。
mv foo/bar baz/bar
しかし、私はこれのすべての部分を何と呼ぶべきか分かりません:
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
私(と思います)1はコマンドであり、2は引数であり、おそらく引数リスト(あれは正しいですか?)。
しかし、何を呼び出すかわかりません4。
より複雑な「コマンド」はどのようにラベル付けされますか?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
1、2、3、4と呼ぶものと、各部分を何と呼ぶかを分類した答えをいただければ幸いです。上記の「コマンド」。
私がここに含めなかったユニークで驚くべき他のことについても学ぶのは素晴らしいことです。
各パーツの一般的な名前は次のとおりです。
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
コマンド名(リダイレクトまたは変数の割り当てではなく、エイリアスが展開された後の最初のWordまたはコマンドラインのトークン)。
コマンドのトークン、ワード、または引数。 man bashから:
ワード:シェルによって単一のユニットと見なされる一連の文字。トークンとも呼ばれます。
一般的に:引数
two|
を使用した単純なコマンドの連結は、パイプシーケンスまたはパイプラインです。
┌─1┐ ┌──────2──────┐ ┌─2─┐ ┌──2──┐ ┌──1───┐ ┌2┐┌2┐┌2┐┌────2─────┐ ┌2┐ ┌2┐
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
│ └────────────3──────────────┘ └────────────3──────────────┘
└───────────────────────────────────4─────────────────────────────────────┘
リダイレクトと変数の割り当てもあることに注意してください。
┌──5──┐ ┌1┐ ┌─2─┐ ┌─2─┐ ┌───6──┐ ┌1┐ ┌─5─┐
<infile tee file1 file2 | LC_ALL=C cat >file
└─────────7───────────┘ └───────7────────┘
└─────────────────────4────────────────────┘
場所(上記の番号の横):
これは、コマンドラインに含めることができるすべての要素のリストではありません。そのようなリストは、この短い答えには複雑すぎます。
上記の@isaacの答えは良いようです。
これをいくつかのソースで拡張したいと思います。
POSIX標準 はある意味で canonical と見なされるかもしれません。他のソースはman bash
およびman proc
。
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
POSIXは次のことを提案しています。
man proc
はコマンドラインを使用します)また、より複雑な多くのコマンドの用語もあります。
コマンドはかなり曖昧だと思うので、コマンド名とコマンドラインclarity.jに適しています