Эта команда перечисляет отсортированные имена всех записей в данном разделе:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//'| sort -u
Если вы хотите увидеть пути, используйте:
man -aWS 1 \* | sed 's/\.[^.]*$//'| sort
Это говорит manискать в разделе все команды, используя шаблон с подстановочными знаками *(обратная косая черта заключена в кавычки, чтобы оболочка не интерпретировала его). -aнаходит все совпадения, -Wпечатает пути вместо отображения страниц и -S 1указывает первый раздел. Измените на 1любой раздел, который вы хотите найти.
Команда sedудаляет расширения имени файла; удалите его, если хотите увидеть полные имена файлов. sortсортирует результаты ( -uудаляет дубликаты).
Для удобства повторного использования это определяет функцию оболочки Bash:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//'| sort -u;}
Например, вы можете вызвать его так, mansect 3чтобы увидеть записи в третьем разделе.
Хорошо - спасибо. Я получаю несколько дубликатов (например, пути в /Applications/Xcode.app и «Ускорение» в разделе 7), но ничего, что помещается uniqв конвейер, не исправляет.
xyz
@xyz: я обновил команду сортировки, sort -uчтобы удалить дубликаты.
Крис Пейдж
24
Чтобы вывести список всех установленных man-страниц из определенного раздела, вы можете использовать apropos :
apropos -s 2.# use an regex for apropos . means anything
apropos -s 2-w '*'# use unix globbing for apropos
@MichaelMrozek какую систему вы используете? Это работает для меня, например: вывод apropos -s 2 -w '*'
Ульрих Дангел
Спасибо. Опция -s отсутствует в Mac OS X по поводу, предположительно, из BSD.
xyz
@ f100 А, ладно, может быть, попробуюman -a -s 2 '*'
Ульрих Дангел
Это больше похоже на это, но вместо того, чтобы перечислять их, он фактически вызывает зрителя для каждого из них по очереди. Я взломал функцию для создания списка, который я разместил в другом комментарии. Скорее всего, есть проблемы, но мне этого достаточно :)
xyz
20
Manpages обычно размещаются /usr/share/man, но проверяются $MANPATHи организованы в такие разделы:
Итак, чтобы вывести список всех установленных разделов 2, выполните:
ls /usr/share/man/man2/
Или более полный:
find $(echo $MANPATH | tr ':'' ')-path '*/man2/*'
У последнего будут проблемы, если у вас есть каталоги $MANPATHс пробелами в их именах.
В большинстве дистрибутивов вы также можете проверить доступные справочные страницы с помощью инструмента пакета, например, в дистрибутивах, производных от Debian, которые вы можете использовать apt-fileследующим образом:
Спасибо - это было начало, в котором я нуждался. Я сделал функцию оболочки, которая запускается, например, lman 2и перечисляет неукрашенное имя для каждой страницы в новой строке и выводит их на страницу. Тело функции:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
xyz
1
В Mac OS X единственное, что я могу получить, - man -k . | grep -F '(3)'это перечислить все в разделе 3.
Я знаю, что это очень старый вопрос, однако ответы, приведенные здесь, не сработали для меня. Поэтому я придумал следующую однострочную версию, которая работает на Ubuntu 18.04 и macOS Mojave, 10.14.6:
find $(man --path | tr ':'' ')-type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//'| sort
Быстрый бег вниз:
ответ от Thors: $(man --path | tr ':' ' ')получить текущие пути к страницам руководства
find <man paths> -type f -path '*man2*' -exec basename {} \; получает имена всех обычных файлов в путях человека
Ответы:
Эта команда перечисляет отсортированные имена всех записей в данном разделе:
Если вы хотите увидеть пути, используйте:
Это говорит
man
искать в разделе все команды, используя шаблон с подстановочными знаками*
(обратная косая черта заключена в кавычки, чтобы оболочка не интерпретировала его).-a
находит все совпадения,-W
печатает пути вместо отображения страниц и-S 1
указывает первый раздел. Измените на1
любой раздел, который вы хотите найти.Команда
sed
удаляет расширения имени файла; удалите его, если хотите увидеть полные имена файлов.sort
сортирует результаты (-u
удаляет дубликаты).Для удобства повторного использования это определяет функцию оболочки Bash:
Например, вы можете вызвать его так,
mansect 3
чтобы увидеть записи в третьем разделе.[Проверено на macOS.]
источник
uniq
в конвейер, не исправляет.sort -u
чтобы удалить дубликаты.Чтобы вывести список всех установленных man-страниц из определенного раздела, вы можете использовать apropos :
источник
man -a -s 2 '*'
Manpages обычно размещаются
/usr/share/man
, но проверяются$MANPATH
и организованы в такие разделы:Итак, чтобы вывести список всех установленных разделов 2, выполните:
Или более полный:
У последнего будут проблемы, если у вас есть каталоги
$MANPATH
с пробелами в их именах.В большинстве дистрибутивов вы также можете проверить доступные справочные страницы с помощью инструмента пакета, например, в дистрибутивах, производных от Debian, которые вы можете использовать
apt-file
следующим образом:источник
lman 2
и перечисляет неукрашенное имя для каждой страницы в новой строке и выводит их на страницу. Тело функции:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
В Mac OS X единственное, что я могу получить, -
man -k . | grep -F '(3)'
это перечислить все в разделе 3.источник
Я знаю, что это очень старый вопрос, однако ответы, приведенные здесь, не сработали для меня. Поэтому я придумал следующую однострочную версию, которая работает на Ubuntu 18.04 и macOS Mojave, 10.14.6:
Быстрый бег вниз:
$(man --path | tr ':' ' ')
получить текущие пути к страницам руководстваfind <man paths> -type f -path '*man2*' -exec basename {} \;
получает имена всех обычных файлов в путях человекаsed
избавляется от расширения файлаsort
в алфавитном порядке.источник