12 Linux的Which命令、Whatis 命令、Whereis 命令示例

举报
Tiamo_T 发表于 2022/08/03 08:50:22 2022/08/03
【摘要】 本 Linux 教程将解释三个“W”命令。三个“W”分别是whatis、whereis和which命令。

本 Linux 教程将解释三个“W”命令。三个“W”分别是whatis、whereis和which命令。

您已经知道如何使用find 命令有效地查找文件。

现在,这三个 W 命令将帮助您从 Linux 命令行中查找更多内容。

一、Linux whatis 命令

Whatis 命令有助于获取有关 Linux 命令或功能的简要信息。Whatis 命令显示与作为命令行参数传递给 whatis 命令的字符串匹配的命令的手册页单行描述。Whatis 命令在其由 mandb 程序维护的索引数据库中搜索字符串。Whatis 命令选择与给出给 whatis 命令的输入相匹配的命令手册页的 NAME 部分的简短描述。

Whatis 提供了几个命令行选项来帮助用户根据他们的需要或兴趣获取特定 Linux 命令的简要信息。

句法:

$ whatis [-options]

例如,这里是 whatis 命令的输出,当它在没有任何选项的情况下运行时。

$ whatis write
write (1)            - send a message to another user
write (2)            - write to a file descriptor

它显示有关手册页中“写入”的简要信息。


1. 使用 -s 选项从手册页的特定部分获取信息

如果我们想从手册页的特定部分获取 Linux 命令信息,那么我们可以使用“-s 或 —sections 或 –section”选项提供部分列表。它将限制 whatis 命令仅显示来自指定手册页部分的简要信息。

$ whatis -s "1","2" open
open (1)             - start a program on a new virtual terminal (VT).
open (2)             - open and possibly create a file or device

它显示来自手册页第 1 节和第 2 节的打开命令和函数简要信息。

$ whatis -s "2" open
open (2)             - open and possibly create a file or device

它显示来自手册页第 2 节的打开功能简要信息。

2. 使用 -w 选项通过通配符搜索信息

如果我们想使用通配符搜索 Linux 命令或函数信息,那么 whatis 命令会给出“-w 或 –wildcard”选项。它将根据用户的需要使您的搜索具体化。

$ whatis -w 'ab*'
abort (3)            - cause abnormal process termination
abs (3)              - compute the absolute value of an integer

它显示以“ab”开头的 Linux 命令或函数的简要信息。

$ whatis -w 'ab?'
abs (3)              - compute the absolute value of an integer

它显示以“ab”开头并后跟任何单个字符的 Linux 命令或函数的简要信息。

3.使用-r选项通过正则表达式搜索信息

如果我们想使用正则表达式搜索 Linux 命令或函数信息,那么 whatis 命令会给出“-r 或 –regex”选项。它将灵活地自定义您在整个 Linux 系统中搜索 Linux 命令或功能。

$ whatis -r '^ab'
abort (3)            - cause abnormal process termination
abs (3)              - compute the absolute value of an integer

它显示以“ab”开头的 Linux 命令或函数的简要信息。

$ whatis -r 'ab$'
anacrontab (5)       - configuration file for anacron
baobab (1)           - A graphical tool to analyse disk usage
crontab (1)          - maintain crontab files for individual users (Vixie Cron)
crontab (5)          - tables for driving cron
fstab (5)            - static information about the filesystems
inittab (5)          - init daemon configuration
swab (3)             - swap adjacent bytes
tc-stab (8)          - Generic size table manipulations

它显示以“ab”结尾的 Linux 命令或函数的简要信息。

4. 使用 -l 选项禁用修剪输出

通常 whatis 命令会修剪 Linux 命令或函数信息的长输出,以避免在超出屏幕的终端上显示“不好”的输出。要允许 whatis 命令在屏幕上显示完整的输出,可以使用“-l 或 –long”选项。

$ whatis ssh-import-id
ssh-import-id (1)    - retrieve one or more public keys from a public keyserver (Launchpad.net by default) and append them to the current user's authorized_keys file (or some other specifie...

它显示 Linux 命令简要信息的修剪输出。

$ whatis -l ssh-import-id
ssh-import-id (1)    - retrieve one or more public keys from a public keyserver (Launchpad.net by default) and append them to the current user's authorized_keys file (or some other specified file)

它显示了 Linux 命令简要信息的完整输出。

5.使用-M选项限制搜索到指定路径

默认情况下,whatis 命令使用 $MANPATH 环境变量。但是 whatis 提供了“-M 或 –manpath”选项来限制搜索到手册页的指定路径。

$ whatis -M /usr/share/man hexdump
hexdump (1)          - ASCII, decimal, hexadecimal, octal dump

它显示来自路径 /usr/share/man 的手册页中 Linux hexdump 命令的简要信息。

$ whatis -M /usr/man hexdump
hexdump: nothing appropriate.

它无法从指定路径/​​usr/man 中找到Linux hexdump 命令的简要信息。

二、Linux whereis 命令

whereis 命令有助于在 Linux 系统中查找命令的二进制、源代码和手册页。它是一个非常简单的实用程序,并提供了几个选项,下面通过示例给出了这些选项。

句法:

$ whereis [-options]

例如, whereis 命令在没有任何选项的情况下运行。

$ whereis open 
open: /bin/open /usr/share/man/man1/open.1.gz /usr/share/man/man2/open.2.gz

它定位“open”命令的二进制、源代码和手册页,并在此处显示系统中可用的二进制、打开命令手册页的路径。

6. 使用 -b 选项定位二进制文​​件

如果我们想定位 Linux 命令的二进制文件,请使用“-b”选项。

$ whereis -b whereis 
whereis: /usr/bin/whereis /usr/bin/X11/whereis

它定位“whereis”命令的二进制文件并显示系统中命令二进制文件可用的路径。

7. 使用 -m 选项查找命令的手册页

如果我们想找到 Linux 命令的手册页,请使用“-m”选项。

$ whereis -m whereis 
whereis: /usr/share/man/man1/whereis.1.gz

它定位“whereis”命令的手册页,并显示系统中可用命令手册页的路径。

8. 使用 -s 选项定位命令源

如果我们想找到 Linux 命令的来源,请使用“-s”选项。

$ whereis -s whereis 
whereis:

定位到“whereis”命令的来源,但系统中不存在“whereis”命令的来源,所以没有显示系统中命令来源的路径。

9. 使用 -u 选项查找异常条目

此选项与搜索不寻常条目的方式不同。这些条目是根据与“-u”一起指定的选项“[-bms]”在系统中不存在源、二进制或手册页的命令。

$ whereis -m -u wcgrep 
wcgrep:

它检查系统中是否不存在指定的命令(即 wcgrep)手册页。带有选项“-m 和 -u”的 whereis 命令用于查找系统中不存在手册页的命令。

$ whereis -m -u grep 
$

此处,具有相同选项的 whereis 命令应用于系统中存在手册页的“grep”命令,因此 whereis 没有返回任何内容并正常退出。

10. 使用 -B 选项在指定路径中定位二进制文​​件

如果用户想要搜索二进制并且想要将 whereis 命令的搜索范围限制在指定的路径,那么使用“-B”选项。

$ whereis -B /bin -f for_loop 
for_loop: /bin/for_loop

它从路径“/bin”定位“for_loop”用户程序的二进制文件。

$ whereis -B /usr -f 打开
打开:/usr/share/man/man1/open.1.gz /usr/share/man/man2/open.2.gz

如果在指定路径没有找到 open 命令的二进制文件,则不显示,但 whereis 命令默认搜索指定命令的其他类型(即手册页和源代码)(即 open)并在找到时显示它们。

11. 使用 -M 选项定位范围有限的手册页

如果用户想要搜索手册页并希望将 whereis 命令的搜索范围限制在指定路径,则使用“-M”选项。

$ whereis -M /usr/share/man/man1 -f open
open: /bin/open /usr/share/man/man1/open.1.gz
$ whereis -M /usr/share/man/man2 -f open
open: /bin/open /usr/share/man/man2/open.2.gz
$ whereis -M /usr/share/man/man3 -f open
open: /bin/open

在这里,可以观察到 whereis 命令正在显示“open”命令的手册页,该命令仅在指定路径中可用。但是,whereis 命令默认搜索指定命令(即打开)的其他类型(即二进制和源代码)并在找到时显示它们。

三、Linux which 命令

which命令是在系统中定位可执行文件的非常小且简单的命令。它允许用户传递几个命令名称作为参数来获取它们在系统中的路径。“which”命令在 $PATH环境变量中设置的系统路径中搜索可执行文件的路径。

句法:

$ which [-option]

例如,

$ which ls gdb open grep 
/bin/ls 
/usr/bin/gdb 
/bin/open 
/bin/grep

它定位命令名称——“ls”、“gdb”、“open”和“grep”,指定为“which”命令的参数,并显示系统中每个可执行文件的路径。

12. 使用 -a 选项显示所有路径

“which”命令提供选项“-a”,显示与参数匹配的所有可执行文件路径。

$ which echo 
/usr/sbin/echo

上面将搜索显示 $PATH 环境变量中设置的所有路径中的可执行“echo”,并显示找到 echo 可执行文件的第一个路径。可执行文件也可能被放置在 $PATH 环境变量的其他路径中。要获取系统中存在可执行文件的所有路径,可以使用“-a”选项。

$ which -a echo 
/usr/sbin/echo 
/bin/echo
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。