12 Linux的Which命令、Whatis 命令、Whereis 命令示例
本 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
- 点赞
- 收藏
- 关注作者
评论(0)