Linux apropos命令介绍
apropos命令是一个用来搜索man手册页中的关键词的工具。它的全称是appropriate,意思是合适的,恰当的。它可以帮助用户找到与某个主题相关的命令或文档,从而快速了解Linux系统的功能和用法。apropos命令的输出结果是一系列的条目,每个条目包含一个命令或文档的名称,以及一个简短的描述。apropos命令是man命令的一个辅助工具,它实际上是调用了man -k选项来执行搜索。
Linux apropos命令适用的Linux版本
apropos命令是一个通用的Linux命令,它适用于大多数的Linux发行版,包括Ubuntu, Debian, Fedora, CentOS, Red Hat, SUSE, Arch Linux等。如果某些Linux系统没有预装apropos命令,可以通过安装man-db软件包来获取。安装命令如下:
- 对于基于Debian的系统,如Ubuntu,使用apt-get命令:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install man-db
- 对于基于Red Hat的系统,如Fedora,CentOS,使用yum命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install man-db
- 对于基于Arch的系统,如Manjaro,使用pacman命令:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S man-db
Linux apropos命令的基本语法
apropos命令的基本语法格式如下:
apropos [选项] 关键词
其中,关键词可以是一个单词,也可以是一个正则表达式,用来匹配man手册页中的内容。如果关键词包含空格或特殊字符,需要用引号括起来。
Linux apropos命令的常用选项或参数说明
apropos命令的常用选项或参数如下表所示:
选项 | 参数 | 说明 |
---|---|---|
-a | 无 | 与逻辑,表示所有的关键词都必须匹配 |
-o | 无 | 或逻辑,表示任意一个关键词匹配即可 |
-e | 无 | 精确匹配,表示关键词必须完全匹配 |
-w | 无 | 通配符匹配,表示关键词可以包含通配符,如*,?等 |
-r | 无 | 正则表达式匹配,表示关键词可以是一个正则表达式 |
-s | 节 | 指定搜索的手册节,节可以是一个数字,也可以是一个列表,用逗号分隔 |
-m | 系统 | 指定搜索的手册系统,系统可以是一个名称,也可以是一个列表,用逗号分隔 |
-l | 无 | 仅显示匹配的手册页的名称,不显示描述 |
-L | 无 | 显示本地化的手册页,如果存在的话 |
-v | 无 | 显示详细的信息,包括手册页的位置,大小,修改时间等 |
-V | 无 | 显示版本信息 |
-h | 无 | 显示帮助信息 |
Linux apropos命令的实例
- 搜索与copy相关的命令或文档:
[linux@bashcommandnotfound.cn ~]$ apropos copy
bcopy (3) - copy byte sequence
cp (1) - copy files and directories
cpio (1) - copy files to and from archives
...
- 搜索与文件系统相关的命令或文档,使用与逻辑,表示两个关键词都必须匹配:
[linux@bashcommandnotfound.cn ~]$ apropos -a file system
chattr (1) - change file attributes on a Linux file system
debugfs (8) - ext2/ext3/ext4 file system debugger
df (1) - report file system disk space usage
...
- 搜索与网络相关的命令或文档,使用或逻辑,表示任意一个关键词匹配即可:
[linux@bashcommandnotfound.cn ~]$ apropos -o net network
arp (7) - Linux ARP kernel module.
arp (8) - manipulate the system ARP cache
arping (8) - send ARP REQUEST to a neighbour host
...
- 搜索与printf完全匹配的命令或文档,使用精确匹配选项:
[linux@bashcommandnotfound.cn ~]$ apropos -e printf
printf (1) - format and print data
printf (3) - formatted output conversion
- 搜索以s开头,以h结尾的命令或文档,使用通配符匹配选项:
[linux@bashcommandnotfound.cn ~]$ apropos -w s*h
sash (1) - stand-alone shell
sh (1) - command interpreter (shell)
ssh (1) - OpenSSH SSH client (remote login program)
...
- 搜索包含数字的命令或文档,使用正则表达式匹配选项:
[linux@bashcommandnotfound.cn ~]$ apropos -r '[0-9]'
2to3 (1) - Python2 to Python3 converter
2to3-2.7 (1) - Python2 to Python3 converter
2to3-3.6 (1) - Python2 to Python3 converter
...
- 搜索第1节和第8节的手册页,使用指定节选项:
[linux@bashcommandnotfound.cn ~]$ apropos -s 1,8 date
date (1) - print or set the system date and time
date (8) - set the system date and time
- 搜索GNU手册系统的手册页,使用指定系统选项:
[linux@bashcommandnotfound.cn ~]$ apropos -m gnu date
date (1) - print or set the system date and time
- 仅显示与zip相关的手册页的名称,不显示描述,使用仅显示名称选项:
[linux@bashcommandnotfound.cn ~]$ apropos -l zip
bunzip2
bzip2
funzip
gzip
unzip
zip
zipcloak
zipdetails
zipgrep
zipinfo
zipnote
zipsplit
- 显示本地化的手册页,如果存在的话,使用显示本地化选项:
[linux@bashcommandnotfound.cn ~]$ apropos -L date
date (1) - 打印或设置系统日期和时间
date (8) - 设置系统日期和时间
- 显示详细的信息,包括手册页的位置,大小,修改时间等,使用显示详细信息选项:
[linux@bashcommandnotfound.cn ~]$ apropos -v date
date (1) - /usr/share/man/man1/date.1.gz (1.5K, 2023-12-12 15:41:48)
date (8) - /usr/share/man/man8/date.8.gz (1.2K, 2023-12-12 15:41:48)
- 显示版本信息,使用显示版本信息选项:
[linux@bashcommandnotfound.cn ~]$ apropos -V
apropos from man-db 2.9.4
- 显示帮助信息,使用显示帮助信息选项:
[linux@bashcommandnotfound.cn ~]$ apropos -h
Linux apropos命令的注意事项
使用apropos命令时,需要注意以下几点:
- apropos命令依赖于man手册页的数据库,如果数据库没有建立或更新,可能会导致搜索结果不准确或不完整。因此,建议在使用apropos命令之前,先运行mandb命令来创建或更新数据库。
- apropos命令的搜索结果可能会包含很多不相关的条目,因为它会匹配手册页中的任何位置,而不仅仅是名称或标题。因此,建议使用更精确的关键词或选项来过滤搜索结果,或者使用管道符和grep命令来进一步筛选。
- apropos命令的输出结果是按照字母顺序排序的,而不是按照相关性排序的。因此,可能需要浏览一下输出结果,找到最合适的条目。
- 如果系统中没有安装apropos命令,可能会出现
bash: apropos: command not found
的错误提示。这时,可以通过安装man-db软件包来解决,安装命令见上文。
Linux apropos命令的快捷键
使用apropos命令时,可以使用一些快捷键来方便地操作输出结果,如下表所示:
快捷键 | 说明 |
---|---|
/ | 进入搜索模式,输入要搜索的字符串,按回车键确认 |
n | 跳转到下一个匹配的字符串 |
N | 跳转到上一个匹配的字符串 |
q | 退出apropos命令 |
评论区