获得帮助
whatis <=> man -f
查询命令的简单说明,依靠数据库--mandb(手动生成数据库,系统会找空闲时间自动创建)
示例:
[root@localhost ~]# mandb
Purging old database entries in /usr/share/man...
mandb: warning: /usr/share/man/man8/fsck.fat.8.manpage-fix.gz: ignoring bogus filename
Processing manual pages under /usr/share/man...
Purging old database entries in /usr/share/man/hu...
Processing manual pages under /usr/share/man/hu...
Purging old database entries in /usr/share/man/ja...
Processing manual pages under /usr/share/man/ja...[root@localhost ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
[root@localhost ~]# whatis rm
rm (1) - remove files or directories
rm (1p) - remove directory entries
查看命令的帮助
内部命令:
1. help COMMAND
2. man bash
外部命令和软件:
1. CMD --help | -h
--help or -h
[root@localhost ~]# date --help
Usage: date [OPTION]... [+FORMAT]
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.Mandatory arguments to long options are mandatory for short options too.
-d, --date=STRING display time described by STRING, not 'now'
-f, --file=DATEFILE like --date once for each line of DATEFILE
-I[TIMESPEC], --iso-8601[=TIMESPEC] output date/time in ISO 8601 format.
[root@localhost ~]# cal -h
Usage:
cal [options] [[[day] month] year]Options:
-1, --one show only current month (default)
-3, --three show previous, current and next month
-s, --sunday Sunday as first day of week
man命令
man提供命令帮助的文件,手册存放在/usr/share/man的文件里,几乎所有命令都有man的页面.
在Linux系统中,man命令用于显示命令的手册页(manual pages),这些手册页提供了关于命令、系统调用、库函数等的详细信息和用法。man命令的类别章节(section)是对手册页进行分类的一种方式,以便用户能够更快地找到所需的信息。以下是man命令常见的类别章节及其简要说明:
用户命令(User Commands):章节号为1,包含普通用户常用的命令,如ls、cd、cp等。这些命令通常用于文件操作、系统管理等。
系统调用(System Calls):章节号为2,包含应用程序通过系统调用接口调用的底层函数,如open、write等。这些系统调用是操作系统提供给应用程序的接口,用于执行底层硬件操作或访问系统资源。
库函数(Library Functions):章节号为3,包含C语言的标准库函数,如printf、scanf等。这些函数为程序员提供了方便的接口,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。
设备和特殊文件(Devices and Special Files):章节号为4,包含与设备和特殊文件相关的命令和函数。这些文件通常位于/dev目录下,用于表示硬件设备或特殊的系统资源。
文件格式与约定(File Formats and Conventions):章节号为5,包含文件格式和约定的说明。这些说明描述了特定文件的结构和用途,如/etc/passwd文件就包含了用户账户的信息。
游戏与娱乐(Games and Amusements):章节号为6,包含一些游戏和娱乐软件的说明。这些章节通常不是系统管理的重点,但对于喜欢在Linux上玩游戏的用户来说可能很有用。
杂项(Miscellaneous):章节号为7,包含一些其他类型的手册页,这些手册页可能不属于上述任何一个类别,但仍然对系统管理和编程有用。
系统管理命令(System Administration Commands):章节号为8,包含系统管理用的命令,这些命令通常只能由root用户或具有相应权限的用户使用,如ifconfig、shutdown等。
内核开发者文档(Kernel Developer Documentation):章节号为9,包含内核开发相关的文档和说明。这些章节对于想要深入了解Linux内核或进行内核开发的用户来说非常有用。
需要注意的是,man命令的章节号并不是固定不变的,不同的Linux发行版或不同的手册页集合可能会有所不同。但是,上述章节号在大多数Linux系统中都是通用的。
当使用man命令时,可以通过指定章节号来查看特定类型的手册页。例如,要查看ls命令的手册页,可以使用命令man 1 ls;要查看open系统调用的手册页,可以使用命令man 2 open。如果不指定章节号,man命令会按照默认的搜索顺序(通常是1, 8, 2, 3, 4, 5, 6, 7, 9)来查找手册页。
man 命令在 Unix 和类 Unix 系统(如 Linux)中用于访问手册页(manual pages),这些手册页提供了对系统命令、库函数、编程接口等的详细说明。man 命令的基本语法很简单,但支持多个参数以定制其输出和行为。以下是一些常用的 man 命令参数详解:
无参数:
默认情况下,如果你直接输入 man [命令](例如 man ls),man 命令会显示指定命令的手册页。
-a:
显示所有匹配的手册页,而不仅仅是第一个找到的。这对于有多个版本或变体的手册页很有用。
-d:
检查是否有手册页更新,但不会显示任何内容。如果手册页自上次以来有更新,则 man 会返回一个非零退出状态。
-D:
指定一个替代的手册页目录来搜索手册页。这对于使用非标准安装的手册页很有用。
-f 或 --whatis:
类似于 whatis 命令,显示一个简短的手册页描述而不是完整的手册页。这对于快速查找某个命令或函数的功能描述很有用。
-k 或 --apropos:
搜索手册页描述中的关键字。这类似于使用 apropos 命令,但 man -k 实际上会调用 apropos。
-K:
与 -k 类似,但搜索更严格,可能会排除一些不相关的结果。
-l:
强制 man 命令将指定的参数视为手册页文件的路径,而不是手册页名称。这允许你直接查看一个特定的手册页文件,而不需要通过手册页系统查找它。
-M:
指定搜索手册页时使用的手册页目录树的搜索路径。可以指定多个目录,用冒号分隔。
-P:
指定用于查看手册页的程序的路径。默认情况下,man 命令使用 pager(通常是 less 或 more)来显示手册页。
-S:
指定要搜索的手册页部分。手册页被分为多个部分(如用户命令、系统调用、库函数等),每个部分都有一个字母代码(如 1 代表用户命令,2 代表系统调用等)。如果你知道你要找的手册页部分,这个选项可以节省时间。
--html 或 --formatter="html":
将手册页格式化为 HTML。这取决于你的系统上是否安装了支持此功能的 man 页面查看器(如 groff 的 man2html)。
--catman:
这个选项通常用于维护手册页系统,而不是日常用户查看手册页。它指示 man 命令更新手册页缓存。
案例:
[root@localhost ca]# ll /usr/share/man/
total 616
drwxr-xr-x. 4 root root 30 May 1 07:03 ca
drwxr-xr-x. 7 root root 66 May 1 07:04 cs
drwxr-xr-x. 5 root root 42 May 1 07:02 da
drwxr-xr-x. 6 root root 54 May 1 07:02 de
drwxr-xr-x. 7 root root 66 May 1 07:04 en[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# whatis ls
ls (1) - list directory contents
ls (1p) - list directory contents
[root@localhost ~]# man 5 passwd[root@localhost ~]# man 7 ascii