16

Я провел поиск, но не могу найти документацию о том, как работает Unix . Я знаю кое-что (в основном методом проб и ошибок), но, например, откуда мне это знать

/usr/bin/ls  [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...

означает, что вы можете включить более одного варианта? То есть,

ls -la

Где некоторая документация о том, что такое синтаксис использования?

3 ответа3

34

Это правда, что нет RFC или чего-то еще, но вы не слишком далеко ушли от базы, если будете придерживаться следующих рекомендаций:

  1. Все в угловых скобках < > означает, что опция обязательна:
    <foo>

  2. Все в квадратных скобках [ ] означает, что опция не обязательна:
    [bar]

  3. Параметры, разделенные трубкой | означает, что это допустимые значения:
    --baz=one|two|three

  4. Однобуквенные варианты начинаются с одной черты:
    -a

  5. Варианты с несколькими буквами начинаются с двух тире:
    --foo-bar

  6. (на основе # 4) Одна черта с несколькими буквами обычно означает объединение этих отдельных однобуквенных опций, а не многобуквенных. Не все команды поддерживают такой тип объединения. Пример:
    -aAbBcC совпадает с -a -A -b -B -c -C

6

Не существует строгой структуры для man-страниц, но нижеследующее охватывает большинство команд.

Из РУЧНЫХ СТРАНИЦ (5), Руководства по форматам файлов BSD, раздел "СИНТАКСИС РУЧНОЙ СТРАНИЦЫ":

В синтаксисе справочной страницы все, что написано обычным шрифтом, является обязательным текстом Все, что выделено жирным шрифтом, является флагом или подкомандой. Все, что подчеркнуто, является указанным пользователем аргументом, таким как имя файла.

Любой аргумент, заключенный в квадратные скобки, считается необязательным. Например, [имя файла] будет указывать необязательный аргумент имени файла.

Флаги, аргументы или подкоманды, разделенные вертикальным разделителем (|), являются взаимоисключающими. Например, если -a включает параметр, а -b отключает параметр, синтаксис этой команды может быть -a | -b.

В некоторых случаях вы можете даже увидеть целые группы аргументов, заключенные в квадратные скобки и разделенные вертикальным разделителем. Это один из способов показать, что команда имеет более одного допустимого синтаксиса. На других страницах руководства это выражается в наличии нескольких строк в синопсисе, каждая из которых начинается с имени команды. Разделенный формат более распространен (и более читабелен), но не всегда возможен для команд с особенно сложным синтаксисом.

Наконец, наиболее важным условным обозначением является использование многоточия (...). Это указывает на то, что на этом этапе могут быть добавлены дополнительные аргументы.

5

Линии использования не соответствуют ничему непротиворечивому.

Вы должны использовать man ls или info ls для получения более согласованного уровня информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .