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

7168
sixtyfootersdude

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

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

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

ls -la 

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

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

3 ответа на вопрос

34
frankc

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

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

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

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

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

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

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

мужчина мужчина или мужчина 5 человек mpez0 14 лет назад 1
RFC не существует, но есть [спецификации POSIX] (http://pubs.opengroup.org/onlinepubs/9699919799/), которые включают [Соглашения об утилитах] (http://pubs.opengroup.org/onlinepubs/9699919799/ basedefs / V1_chap12.html) Wildcard 8 лет назад 1
6
Peter Mortensen

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

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

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

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

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

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

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

5
clahey

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

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

Похожие вопросы