列出应用程序的可用手册页部分

列出应用程序的可用手册页部分

我正在考虑手册页部分1 = 用户命令,2 = 系统调用ETC。

man 1 gedit有没有一种方法,一个命令可以告诉我除了运行、man 2 gedit等内容之外还可以阅读哪些部分man 3 gedit

答案1

man至少来自man-db

$ man -f open
open (2)             - open and possibly create a file
open (1)             - start a program on a new virtual terminal (VT).
open (3tcl)          - Open a file-based or command pipeline channel
open (3perl)         - perl pragma to set default PerlIO layers for input and output

与...一样:

$ whatis open
open (2)             - open and possibly create a file
open (1)             - start a program on a new virtual terminal (VT).
open (3tcl)          - Open a file-based or command pipeline channel
open (3perl)         - perl pragma to set default PerlIO layers for input and output

或者获取手册页的路径:

$ man -wa open
/usr/share/man/man1/openvt.1.gz
/usr/share/man/man3/open.3tcl.gz
/usr/share/man/man2/open.2.gz
/usr/share/man/man3/open.3perl.gz

阅读给定主题的所有手册页man -a是很常见的。

但请注意,某些实现为每个手册页运行一个分页器实例(您需要退出分页器才能到达下一个手册页,并且不会返回),而其他实现则将手册页作为单独的参数传递给单个分页器调用(例如:n,您可以使用寻呼机来浏览页面)。:pless

答案2

一种选择:

apropos fork

限制为确切的单词:

apropos -e fork

或者,作为恰到好处用途正则表达式默认情况下:

apropos "^fork$"

或者使用man -k代替apropos.

查看手册页恰到好处男人更多细节。

答案3

如果您man来自“man-db”包,则可以调用它来查看手册每个部分的“介绍”页面:

man -a intro

如果您知道页面数据库的位置man,这将列出所有节目录(man1、man2、man3 等):

(cd /usr/share/man; ls -d man*)

另外,如果manman-db包中使用,您可以通过调用查看手册页数据库的位置man -w(此选项也存在于 FreeBSD 上man,但我没有安装它,所以我不知道它是否给出相同的输出)。例如,在 Debian 8 (jessie) 上:

$ man -w
/usr/local/man:/usr/local/share/man:/usr/share/man

使用man -w,列出所有 man 数据库目录中可用的所有节号的简单脚本将是:

#!/bin/sh
IFS=":$IFS"
for i in $(man -w)
do
    (
        cd "$i"
        for j in man*
        do
            if [ -d "$j" ]
            then
                echo "${j#man}"
            fi
        done
    )
done | sort -u

答案4

以下命令应列出给定命令的所有可用手册页部分:

find /usr/share/man -name "<command>.*.gz" | egrep -o '[0-9]' | sort -u

相关内容