コマンド構文を表示するために使用されるシンボルの一般的な意味は何ですか?

コマンド構文を表示するために使用されるシンボルの一般的な意味は何ですか?

Microsoftのドキュメントに似たGNU / Linuxのコマンドラインツールの一種の「構文キー」を探しています。

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/command-line-syntax-key

たとえば、Microsoft コマンドライン構文ドキュメントでは、角かっこ内のテキストを使用してオプションのエントリを表します。角かっこ内の内容は必須入力として必ず選択してください。など。

コマンドライン構文を表すためにGNU / Linuxで使用されるシンボルは何ですか?各記号はどういう意味ですか?

答え1

man 7 man-pages以下は、マニュアルページセクションの一般的な意味を説明する抜粋です。

   SYNOPSIS      A brief summary of the command or function's interface.

                 For commands, this shows the syntax of  the  command  and
                 its  arguments  (including options); boldface is used for
                 as-is text and italics are used to  indicate  replaceable
                 arguments.   Brackets  ([])  surround optional arguments,
                 vertical bars (|) separate choices,  and  ellipses  (...)
                 can  be  repeated.

ターミナルに「太字」と「イタリック体」が実際にどのように現れるかは別の質問だと付け加えたいです。私の端末では、太字は文字通りのテキストを意味し、下線付きのテキストは置換可能な引数を意味し、一部の端末ではそのような形式がまったく適用されない場合があります。

トーンは次のとおりです

  • 選択項目は角かっこ内に表示されます。
  • 個別に選択された垂直線
  • 省略記号は、項目または要素を繰り返すことができることを示します。

全体として、これらの規則は実際に引用したマイクロソフトのドキュメントと非常によく似ています。

以下は、マニュアルページの概要例ですgit diff

SYNOPSIS
       git diff [options] [<commit>] [--] [<path>...]
       git diff [options] --cached [<commit>] [--] [<path>...]
       git diff [options] <commit> <commit> [--] [<path>...]
       git diff [options] <blob> <blob>
       git diff [options] [--no-index] [--] <path> <path>

可能なオプションが多すぎるため、マニュアルページの作成者は要約にすべてのオプションをリストしません[options]

概要に複数の行がある理由は、この特定のコマンドを使用する可能性がある(相互排他的)方法がいくつかあるためです。

角かっこ内のすべての内容はオプションであり、山かっこ内のすべての内容はプレースホルダーです。

(注:コミットとblobはGitに保存できるオブジェクトの種類です。blobはファイルの内容を表し、コミットはGitが追跡するファイルセット全体の状態を表します。質問には関係ありませんが、言及します。混乱を防ぐためです。)

別の例である command の概要は、grep別の規則を示しています。すべて大文字の単語は、時々プレースホルダを表示するために使用されます(上記のgitのマニュアルページにある山かっこなど)。

SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] -e PATTERN ... [FILE...]
       grep [OPTIONS] -f FILE ... [FILE...]

このコマンドを呼び出すには3つの方法がありますgrep。上記の内容を読むと、次のことがわかります。

grep apple orange pear

...これはappleパターンorangeであり、pearどちらもファイル名であることを意味します。

もう一度次からこれを確認できます。

grep -e apple -e orange pear grapefruit

...appleそしてorange両方ともパターンであり、両方ともpearファイルですgrapefruit

それが何であるかについて方法コマンドの意味を見るとするモードとファイルが与えられたら、概要よりも多くのマニュアルページを読む必要があります。ただし、プロファイルを使用すると、指定したコマンドがさまざまなパラメータを解釈する方法を決定できます。

しかし、スキーム表記には絶対的な規則はありません。要約は次のとおりですsed

SYNOPSIS
       sed [OPTION]... {script-only-if-no-other-script} [input-file]...

これを完全に理解するには、次の内容を見つけることができるマニュアルページをさらに読む必要があります。

   If no -e, --expression, -f, or --file option is given, then  the  first
   non-option  argument  is  taken  as  the  sed script to interpret.  All
   remaining arguments are names of input files; if  no  input  files  are
   specified, then the standard input is read.

答え2

man manマニュアルのマニュアルページを表示します。以下は、使用された規則を説明する抜粋です。

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.

   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.

   Exact rendering may vary depending on the output device.  For instance,
   man will usually not be able to render italics when running in a termi‐
   nal, and will typically use underlined or coloured text instead.

   The command or function illustration is a pattern that should match all
   possible invocations.  In some cases it is advisable to illustrate sev‐
   eral exclusive invocations as is shown in the SYNOPSIS section of  this
   manual page.

答え3

まさにあなたが欲しいものが何であるかよくわかりません。あなたが正しいことを証明するために3つの例を挙げてみましょう。

 Pipelines
       A pipeline is a sequence of one or more commands separated by 
       one of thwe control operators | or |&. The format for a pipeline is:
       [time [-p]] [ ! ] command [ [|||&] command2 ... ]

(Bash マニュアルで;man bashシェルを入力してください)

存在するbash.pdfGNUにはいくつかの変更があります:

The format for a pipeline is
[time [-p]] [!]command1[ | or |&command2] ...

そしてPOSIX仕様:

The format for a pipeline is:
    [!] command1 [ | command2 ...]

シェルだけではあまりにも多くの特殊文字を使用するため、一貫したメタ構文は実用的ではありません。しかし、彼らはすべて同じ一般的な容疑者を使用します。

「Shell」は「コマンドライン」ではなく、GNU/LinuxはMSではないため、違いが加わります。まず、いくつかの基本情報が必要な場合があります。使用一般的なLinuxシェルとUnix - もちろん、あなたの状況に関する情報はオンラインです。 GNU / Linuxは、Windowsとの基本または違いを説明する責任を負いません。

findコマンド/ユーティリティを使用する別の例

man findGNU/Linux シェルでは、bash は以下を提供します:

  find  [-H]  [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [ex-
   pression]

Men's Pagerに入ると/EXPR(または読み続けてスクロールすると)、次のページに到達します。

EXPRESSION
       The  part  of the command line after the list of starting points is the
       expression.  This is a kind of query specification ...[cut]

これで次に移動します。

 OPERATORS
       Listed in order of decreasing precedence:

       ( expr )
              Force  precedence.   Since parentheses are special to the shell,
              you will normally need to quote them.  Many of the  examples  in
              this manual page use backslashes for this purpose: `\(...\)' in-
              stead of `(...)'.

これらすべては、次のように慎重に作られた小さな「クエリ」につながる可能性があります。

find -L /students/projects/myname \
    -type d '(' -name '.aaa' -o -name '*rc*' ')' -prune -o \
    -path '*/*/class_project/*/*/pikachu/*/*/bambi/b‌​ambi.txt' -print

これにより、すべての「bambi.txt」が検索されます。確認するサブフォルダ、スキップその他一部のサブフォルダ... ()「フォルダで名前が.aaaまたはrcを含む場合は、トリム(スキップ)」という表現が必要です。

次に、一重引用符またはバックスラッシュを使用して、括弧がシェルで解釈されないように保護する必要があります。ほとんど-oの時間ORとデフォルト値-aAND十分なので、GNU / Linuxで使用できます。

関連情報