Почему на страницах руководства нет примеров?


52

Есть ли причина, по которой большинство man-страниц не содержат несколько распространенных примеров? Обычно они объясняют все возможные варианты, но для новичка становится еще труднее понять, как он «обычно» используется.


1
Я предполагаю, что они хотели сэкономить ценное дисковое пространство, например, избавившись от CR. Ср Беккет, Ватт , стр.8: «Много ценного пространства было сэкономлено [...] благодаря избеганию плеторического возвратного местоимения после слова ».
Питер - Восстановить Монику

3
Одним из попыток обойти эту проблему является tldr-pages.github.io , хотя я не понимаю, почему они облегчают загрузку всего заранее для автономного доступа.
Натан Лонг

man jqсодержит более 1000 строк примеров (в Ubuntu 16.04)
Motte001,

Ответы:


49

Это зависит от человека страниц ... Традиционно, они были включены в разделе с примерами - но по какой - то причине , что, как правило , отсутствуют в человеко - страницах под Linux (и я полагаю , другие с помощью GNU команды - которые наиболее в эти дни). В Solaris, с другой стороны, почти на каждой man-странице есть раздел Пример, часто с несколькими примерами.

Если предположить, FSF / GNU долгое время не поощрял использование manстраниц и предпочитал, чтобы пользователи использовали информацию для документации. infoстраницы , как правило, более всеобъемлющим , чем человек страниц, и , как правило , действительно включают в себя примеры. infoстраницы также являются более «актуальными» - т.е. связанные команды (например, команды для поиска файлов) часто можно найти вместе.

Другая причина может заключаться в том, что GNU и его manстраницы используются во многих различных операционных системах, которые могут отличаться друг от друга (в конце концов, между разными дистрибутивами Linux существует множество различий). Предполагалось, что издатель добавил примеры, относящиеся к конкретной ОС / дистрибутиву, что, очевидно, редко делается.

Я бы также добавил, что manстраницы никогда не предназначались для «обучения начинающих». UNIX был разработан компьютерными экспертами (старый термин «хакеры») и предназначен для компьютерных экспертов. Таким образом, справочные страницы были созданы не для того, чтобы обучать новичка, а для того, чтобы быстро помочь компьютерному специалисту, который нуждался в напоминании о каком-то непонятном варианте или странном формате файла - и это отражается в том, как раздел справочной страницы.

man-страницы, таким образом, предназначены как

  • Краткий справочник, чтобы освежить вашу память; показывая, как должна вызываться команда, и перечисляя доступные опции.
  • Глубокое и тщательное - и, как правило, очень техническое - описание всех аспектов команды. Это написано компьютерными экспертами, для коллег компьютерных экспертов.
  • Список переменных и файлов среды (т.е. файлов конфигурации), используемых командой.
  • Ссылки на другую документацию (например, книги) и другие manстраницы - например. для формата файлов конфигурации и связанных / похожих команд.

Тем не менее, я очень согласен с вами, что на manстраницах должны быть примеры, так как они могут лучше объяснить использование, чем простое изучение самой страницы руководства. Очень плохие примеры, как правило, не доступны на manстраницах Linux ...

Пример части примера справочной страницы Solaris - zfs (1M):

(...)
ПРИМЕРЫ
     Пример 1 Создание иерархии файловой системы ZFS

     Следующие команды создают файловую систему с именем pool / home
     и файловая система с именем pool / home / bob. Точка монтирования
     / export / home устанавливается для родительской файловой системы и является
     автоматически наследуется дочерней файловой системой.

       # zfs create pool / home
       # zfs set mountpoint = / export / home pool / home
       # zfs create pool / home / bob

     Пример 2 Создание снимка ZFS

     Следующая команда создает снимок с именем вчера.
     Этот снимок монтируется по требованию в .zfs / snapshot
     каталог в корне файловой системы pool / home / bob.

       # zfs снимок пула / home / bob @ вчера

     Пример 3 Создание и уничтожение нескольких снимков

     Следующая команда создает снимки, названные вчера
     pool / home и все его дочерние файловые системы. каждый
     снимок монтируется по требованию в каталог .zfs / snapshot
     в корне своей файловой системы. Вторая команда уничтожает
     недавно созданные снимки.

       # zfs снимок -r pool / home @ вчера
       # zfs destroy -r pool / home @ вчера

SunOS 5.11 Последнее изменение: 23 июля 2012 г. 51

Команды системного администрирования zfs (1M)

     Пример 4. Отключение и включение сжатия файловой системы.

     Следующая команда отключает свойство сжатия для
(...)

Эта конкретная справочная страница содержит 16 (!) Таких примеров ... Слава Solaris!
(И я признаю, что сам следовал этим примерам вместо того, чтобы читать всю справочную страницу для этой команды ...)


2
Последнее предложение подчеркивает проблему с наличием примеров в руководствах. Возьмем примеры, которые лучше всего соответствуют вашим потребностям, без полного понимания последствий конкретного применения инструмента. А позже можно просто сказать: «Я сделал это так», но не совсем, почему или что это значило.
Кусалананда

6
@Kusalananda В свою защиту я прочитал о различных опциях и о подкомандах, которые мне действительно нужны - но не все (пока). Это просто не подходит для моего использования ... Несмотря на опасность неправильного использования, примеры действительно служат цели - и если все, что вам нужно, это просто самое простое использование команды, читать обо всех наворотах вряд ли нужно.
Баард Копперуд

@Kusalananda Это также может зависеть от команд. Я знаю, что большинство утилит Unix и GNU хорошо документированы, но вам нужна документация, чтобы сделать что-нибудь разумное. Более новые команды Solaris (особенно zfs) разработаны довольно естественно. Например, zfs destroy pool/filesystemбазовое использование и штраф для 90% случаев использования. Короткие варианты, такие как -rfor recursive, более специфичны и требуют консультации перед использованием, потому что они могут иметь непреднамеренные побочные эффекты.
user121391

26

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


7

По-разному:

  • Большинство программ, которые вы считаете интересными, разрабатываются в течение определенного периода времени, сначала для решения проблемы, а затем для улучшения решения. Разработчики программ объясняют, что, по их мнению, было важно знать (и документация не была проблемой, которую они решали).
  • для некоторых программ разработчики предпочитают предоставлять примеры программ или сценариев, которые показывают, как использовать данную программу (или библиотеку). Опять же, это сделано для решения проблемы: облегчить тестирование программы.

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

  • в некоторых случаях вы найдете документацию, предоставленную другими, не вовлеченными в процесс разработки. То есть разработчики не участвовали, за исключением просмотра документации. Такого рода усилия могут быть проигнорированы.

5
«Такого рода усилия могут быть проигнорированы». Я не уверен, что это значит.
Фахим Митха

Документация не дает ничего полезного, если она не основана на опыте.
Томас Дики

Фактически, документация, не основанная на опыте, может внести отрицательный вклад - то есть это просто неправильно.
alephzero

Конечно, я упомянул об этом, потому что некоторые из примеров, которые OP, несомненно, имеет в виду, попадают в эту категорию (я воздержусь от предоставления списка на этом форуме).
Томас Дики

2
@ThomasDickey. Я полностью не согласен с этой оценкой. Возможность написания утилиты не обязательно дает возможность объяснить API конечному пользователю. T
Chiggsy

6

Если вы ищете альтернативу man-страницам, вы всегда можете попробовать братские страницы , которые показывают только различные примеры для команды, и затем вы можете проголосовать среди списка примеров, представленных сообществом. Например, команда bro tarвыдаст вам:введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.