В командной строке я часто использую «простые» команды, такие как
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 и как называть каждую часть, например, этой «команды» выше.
Было бы замечательно узнать также о других вещах, которые являются уникальными / удивительными, которые я не включил сюда.
command-line
command
parameter
terminology
theonlygusti
источник
источник
man
страницахgit
иfind
, в частности, в разделе синопсис?git
илиfind
скорее общую терминологию для Linux.A | B
,A | B
является трубопроводом ,A
иB
являются командами (это прискорбно , что это имеет такое же имя , как только первый мир в команде). Я мог бы назвать первый аргумент исполняемым, но не могу найти источник, который согласен со мной.git checkout ...
,checkout
является подкомандой , а в контекстеsh -c ...
,-c
является опцией .Ответы:
Общие названия для каждой части следующие:
Имя команды (первое слово или токен командной строки, который не является перенаправлением или назначением переменной и после расширения псевдонимов).
Токен, слово или аргумент команды. От человека Баш:
Вообще: Аргументы
Объединение двух простых команд с a
|
представляет собой последовательность каналов или конвейер:Помните, что есть перенаправление и присвоение переменных:
Где (кроме чисел сверху):
Это не исчерпывающий список всех элементов, которые может иметь командная строка. Такой список слишком сложен для этого короткого ответа.
источник
!
к отрицанию его статуса). pipe скорее будет ссылаться на механизм IPC, используемый большинством оболочек для реализации конвейеров (конвейеры не должны использовать трубы, например, ksh93 использует пары сокетов в некоторых системах). Некоторые оболочки имеют больше ключевых слов, напримерtime
,noglob
которые можно использовать вместо или в дополнение к этому!
.cat $file
здесь, я бы сказал$file
, это токен, но значение файла является аргументом.argv
Ответ @ Исаака выше кажется хорошим.
Я хочу расширить это с некоторыми источниками.
Я предполагаю, что стандарт POSIX можно в некотором смысле считать каноническим . Другие источники могут быть
man bash
иman proc
.POSIX предполагает, что:
man proc
использует командную строку )Он также имеет терминологию для многих более сложных команд.
Я думаю, что команда довольно двусмысленна, поэтому, возможно, термин имя команды и командная строка хороши для ясности.
источник
proc
- это файловая система специального назначения (коллекция файлов), которая предоставляет информацию о внутреннем состоянии ядра. Я считаю, что это означает процессы (см. Также sysfs, который предоставляет информацию о вещах, отличных от процессов). Причина, по которой это важно, написана разработчиками ядра , поэтому вполне может отразить используемый ими язык, который может быть немного более формальным.