Поиск потерянных man-страниц
суббота, мая 05, 2007
Данный текст не является моим, а взят из книги Шредера “Linux. Сборник рецептов” с небольшими дополнениями.
Проблема
Вам не удается найти man-страницу для установленной программы, хотя уверены, что она должна находиться в системе.
Решение
Иногда база данных man-страниц повреждается из-за изменений, вносимых пользователями, или некорректной установки man-страниц. Для начала попробуйте провести поиск командой whereis -m:
$whereis -m cat
cat:/usr/man/manl/cat.1.gz /usr/share/man/manl/cat.1.gz
Страница обнаружена. Попробуйте прочитать ее командой man:
$man /usr/man/manl/cat.l.gz
Если не получится, попробуйте заново построить базу данных man командой mandb:
# mandb
Если и это не поможет, проверьте общесистемный поиск с использованием команд locate и grep:
$locate / cat. | egrep -w ‘cat\.[1-9][a-zA-Z]*[.gz]?’
Команда подойдет для любой man-страницы — достаточно заменить cat искомым именем.
Если ни одно из этих решений не помогло добраться до нужной страницы, попробуйте воспользоваться сценарием finddoc, написанном на Python. Если и сценарий не найдет страницу, значит, она отсутствует в вашей системе. Имя сценария может быть произвольным. Не забудьте разрешить его исполнение:
$chmod +x finddoc
В командной строке указывается только имя сценария и название программы, для которой ищется документация. Пример:
$ ./finddoc grep
/usr/share/doc/grep
/usr/share/doc/grep-dctrl
/usr/share/doc/grep-dctrl.changelog.gz
Выходные данные фильтруются другими командами или направляются в файл:
$ ./finddoc | grep -i examples |lpr
$ ./finddoc | grep -i faq
$ ./finddoc j grep -1 examples > python-examples.txt
Отсебятина.
Сам сценарий конечно приводится в книге, но по старой программерской памяти (было время когда программировал в Delphi под виндой) я книжным листингам не доверяю. Поэтому порывшись в интернете нашел этот скрипт и проверил на своей Ubuntu. Все работает.
Листинг со скриптом можно найти по этой ссылочке.
Успехов Вам и не теряйте свои man’ы.
Ярлыки: документация, linux