侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux apropos命令教程:如何搜索man手册页中的关键词(附实例详解和注意事项)

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命令
0

评论区