Иногда вы чувствуете себя подавленным, вы хотите «поднять настроение» - как я могу добавить эту ручную запись в unix?

44
Cris-Mac-Book-2:src cris$ man up
No manual entry for up

Как я могу исправить эту ситуацию?

Я хочу добавить «изобретенную» ручную запись для несуществующей команды, upчтобы я мог печатать man upпри необходимости. Предложения материалов для включения приветствуются в инструкции по добавлению вручную.

Кроме того, в случае, если моя рабочая станция когда-либо получит пользователей женского пола, я обязательно буду lnженщиной:

Cris-Mac-Book-2:src cris$ sudo link /usr/bin/man /usr/bin/woman
Cris-Mac-Book-2:src cris$ woman
What manual page do you want?
Cris-Mac-Book-2:src cris$ 

Хотя я, вероятно, должен изменить это на Which womanual page do you want?- это будет связано с перекомпиляцией или есть патч?

Крис Стрингфеллоу
источник
4
Слишком интересно пропустить
канадец Люк
3
Вам также следует использовать символическую ссылку, lawyerчтобы вы могли оказаться в опасной ситуации lawyer up.
Джастин ᚅᚔᚈᚄᚒᚔ
5
Да, мудрый! И хотя я попробовал nice lawyer upэто все-таки хотел использовать все системные ресурсы.
Крис Стрингфеллоу
1
И это горячий вопрос!
Канадский Люк

Ответы:

31

Вот хорошие инструкции для добавления новой страницы руководства:

Как: Linux / UNIX Создать страницу управления

Короче говоря, man-страница - это просто текстовый файл с дополнительной информацией о форматировании для troff

Обычно в формате

.\" Manpage for up.
.\" Contact cheer_up@havesomechocolate.com to correct errors or typos.
.TH man 8 "06 May 2010" "1.0" "name man page"
.SH NAME
up \- into a higher position or level
.SH SYNOPSIS
up [anything you like]
.SH DESCRIPTION
up is a pretty good place to be
.SH OPTIONS
up does not take any options, though you can choose the speed of your acent 
.SH SEE ALSO
yes(1), time cat (2) cal 3() 
.SH BUGS
No known bugs. Gravity is not a bug, "Its a feature"
.SH AUTHOR
Chris Stringfellow (cheer_up@havesomechocolate.com)

Сохранить это как up

Затем вы можете просмотреть man ./upсправочную страницу из того же каталога

/usr/local/man/man8/Справочные страницы обычно находятся под Gzip-файлами

Вы можете скопировать вашу man-страницу с помощью cp up /usr/local/man/man8/up.1gzipgzip /usr/local/man/man8/name.1

Затем вы можете проверить это с человеком - который должен вывести что-то вроде этого

Kride
источник
4
Кроме того, если написание разметки raw * roff не является вашей чашкой чая, вы можете, например, написать страницу в POD и использовать pod2man, чтобы преобразовать ее в справочную страницу.
Илмари Каронен
8

Хотя я, вероятно, должен изменить это на Which womanual page do you want?- это будет связано с перекомпиляцией или есть патч?

Перекомпиляция дает лучшие результаты, но это должно сделать в то же время:

#!/bin/bash

ARG=${1/woman/man}

man $ARG > /dev/null 2>&1

if [ $? -eq 0 ]; then
    man $ARG 2> /dev/null \
        | sed \
            -e 's/\(m[ae]n\)/wo\1/g' \
            -e 's/\(M[AE]N\)/WO\1/g' \
            -e 's/M\([ae]n\)/Wom\1/g' \
            -e 's/    //' \
            -e 's/\([^ ]\)  /\1 /g' \
        | less
else
    man $ARG 2>&1 | sed -e 's/\(m[ae]n\)/wo\1/'
fi

Сохранить как /usr/sbin/woman, установить разрешения на выполнение и начать тестирование:

woman
woman down
woman woman
Деннис
источник
2
Однако я обнаружил ошибку в моей новой женщине. Она продолжает говорить No wo0ual entry for down- что я сказал не так?
Крис Стрингфеллоу
woman sedупоминается только \1через \9for s/regexp/replacewoment/, поэтому \0может быть доступно не во всех вариантах и ​​версиях sed. Я отредактировал свой ответ.
Деннис
2
Я обязательно проверю в woman sedследующий раз - они обычно правы! ;) Кстати, это работает сейчас. No womanual entry for sexэто классика. Sed womanPage - это классика тупика:A single comwomand may be specified as the first arguwoment to sed.
Крис Стрингфеллоу