Как читать использование Unix

16

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

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

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

ls -la

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

sixtyfootersdude
источник
POSIX действительно имеет определенное мнение о том, как должны быть отформатированы дисплеи использования / помощи, но помимо основных утилит (GNU), немногие следуют ему последовательно.
Тим Пост
@ Тим, у меня там ничего нет.
sixtyfootersdude
(пожалуйста, не воспринимайте это как пост RTFM, это скорее забавный комментарий), вы можете запустить man man и прокрутить вниз, чтобы найти рекомендации по синтаксису.
ThinkBonobo

Ответы:

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

frankc
источник
1
мужчина мужчина или мужчина 5 человек
mpez0
1
Там нет RFC, но есть спецификации POSIX , которые включают в себя Utility Conventions
Wildcard
6

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

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

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

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

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

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

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

Питер Мортенсен
источник
5

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

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

clahey
источник