Command-Line

命令行術語:命令的這些部分叫什麼?

  • January 14, 2018

在命令行中,我經常使用“簡單”命令,例如

mv foo/bar baz/bar

但我不知道該怎麼稱呼這一切:

┌1┐ ┌──2───┐
git checkout master
│   └──────3──────┘
└───────4─────────┘

我(想我)知道1是命令,2是參數,我可能會稱3為參數列表(對嗎?)。

但是,我不知道該怎麼稱呼4

如何標記更複雜的“命令”?

find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}

我很感激一個答案,它分解了呼叫 1、2、3、4 以及呼叫每個部分的內容,例如上面的這個“命令”。

還可以了解我未在此處包含的其他獨特/令人驚訝的事物。

每個部分的通用名稱如下:

┌1┐ ┌──2───┐
git checkout master
│   └──────3──────┘
└───────4─────────┘
  1. 命令名稱(不是重定向或變數分配且別名已擴展的命令行的第一個單詞或標記)。
  2. 命令的標記、單詞或參數。來自 man bash:

word:被shell視為一個單元的字元序列。也稱為令牌。

  1. 一般:參數
  2. 命令行。

兩個簡單命令與 a的連接|是管道序列或管道:

┌─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────────────────────┘

哪裡(除了上面的數字):

  1. 重定向。
  2. 變數賦值。
  3. 簡單的命令。

這不是命令行可能具有的所有元素的詳盡列表。對於這個簡短的答案,這樣的列表太複雜了。

引用自:https://unix.stackexchange.com/questions/416945