Эта часть отзыва уже была озвучена на канале.
Хочется сказать, что manpath в mandoc из OpenBSD настраивается не из переменной, а из конфига в /etc/man.conf mandoc можно использовать не только в OpenBSD, но и в voidlinux. По моему и в alpine, но я не уверен. В остальных дистрибутивах линукса используется программа manpath, у которой, мне кажется, есть способ показать доступные каталоги с манулами, которые тем не менее не включены в manpath. Ещё можно добавить, что систему именования каталогов манов из System V я ни в одном из линукс дистрибутивов не видел, а во фряхе и OpenBSD их нет по понятной причине — они никогда не воплощали дизайн sytem v.
Она такая старая, что сейчас вряд ли кто-то захочет её решать.
Суть когда вы набираете man history
вы не получите мануала по этой команде, потому что она встроена в шелл, а не является отдельной программой.
Но на самом деле у этого проблемы я вижу несколько путей решения.
Набрав man printf
и man sprintf
в OpenBSD вам откроется один и тот же мануал.
Всё дело в том, что для разных библиотечных функций можно использовать один и тот же мануал.
Ничто не мешает так делать и с командами. Ничто, кроме предположения, что кто-то захочет написать свою версию history
чтобы использовать вместо команды встроенной в шелл.
Но даже в таком случае, это не то чтобы сильно критично, потому что можно открывать несколько страниц манулов одним вызовом man
.
Есть мнение, что мануалы устарели и нужно просто в каждую программу вставлять возможность показать справку по --help
.
Мне это мнение не очень нравится, я с ним быть согласен на 100%.
Хотя, с другой стороны, было бы круто вставлять --help
после или перед остальными опциями командной строки в программе и показывать справку только по указанным опциям.
Возможно, можно даже написать библиотеку на си, которая линковалась бы с программой и можно было бы таким образом получить что-то вроде explainshell, но для каждой отдельной программы.
Ну и да, по этой же логике, можно парсить --help
у опция в shell,
как и другие опции.
Вообще, прочитав вышеупомянутую заметку, стало немножко грустненько на счёт того, что происходит в линуксе и юникс-лайк системах с документацией.
Хочется написать этот параграф, после вывода из предыдущего, а не из-за книги. Если раньше хотя бы можно было пожаловаться на плохое качество мануалов, то теперь можно говорить, что порой их именно, что не будет. А ещё произошла фрагментация:
- У нас есть самы мануалы.
- У нас есть GNU info.
- У нас есть краткие примеры с tldr.sh,которые можно было бы запихнуть в EXAMPLES секцию мануала.
- У нас есть
command --help
Нет, избыточность документации это, наверное, само по себе хорошо. Но тут не то что нет избыточности и какой-нибудь проблемы, типа неакутальности документации в одном из многих мест. Просто число мест, которые нужно обойти, чтобы что-то почитать по теме множится.
Есть в OpenBSD, есть ещё в паре систем как мануалы в девятом разделе мануалов.
Есть в линуксе как каталог doc/
в репозитории ядра.
По моим ощущением, в вопросе документации ядра и гайдов про то как писать драйверы для устройств сейчас дела обстоят как никогда хорошо.
На этом всё.