我正在考虑手册页部分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
,您可以使用寻呼机来浏览页面)。:p
less
答案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*)
另外,如果man
从man-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