It is possible that you have used the commands which, whereis, and whatis multiple times on Linux.。这三个命令都用于查找关于其他 Linux 命令的信息。这些命令看起来相似,但它们确实有一些区别。

以下是对 Linux 上 which、whereis 和 whatis 命令的详细比较。

which 命令

某些命令在不同的目录中具有多个可执行文件。Shell会在PATH环境变量所指定的文件夹中查找可执行文件,以运行相应的命令。

要查找 PATH 环境变量中包含的目录,请在 Linux 终端中运行以下命令:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ echo $PATH
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

小贴士:您还可以手动将目录添加到您的PATH环境变量中。

一旦在Linux中找到了第一个可执行的路径,shell将立即执行该路径。使用 which 命令,您可以确定该可执行文件的路径。

这种情况下会很有用:当您的系统上安装了两个具有不同版本的同一程序时,或者安装了两个具有相同名称但不同程序的软件时。使用 which 命令,您可以找出哪个将首先被执行。

以下是 which 命令的语法:

which [选项] [命令]
登录后复制

例如,要检查 tar 命令的实际路径,您可以输入:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ which tar
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

这个命令会展示tar命令在PATH中的第一个可执行路径,即位于/usr/bin。每次运行 tar 命令时,都会由 shell 执行位于 /usr/bin 目录中的二进制文件,这就是其意义。

要显示命令的所有可用可执行路径,请使用 which 命令加上 -a 选项:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ which -a tar
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

您还可以同时显示多个命令的可执行路径,如下所示:

which [命令1] [命令2] [命令3]
登录后复制

whereis 命令

whereis命令能够展示与指定命令相关的可执行文件、源代码文件和手册页面文件的路径。与 which 命令不同,它不仅在 $PATH 中搜索可执行文件,还在 $MANPATH 和其他预定义位置进行搜索。

如果没有任何命令行选项,whereis 命令会显示命令的二进制文件、源文件和手册页面文件:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ whereis tar
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

要仅显示二进制文件路径,请使用 -b 选项:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ whereis -b tar
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

要仅显示源文件,请使用-s标志:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ whereis -s tar
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

要仅显示手册页面,请使用 -m 选项:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ whereis -m tar
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

whatis 命令

whatis 命令提供了给定 Linux 命令的一行描述。它从命令的 man 页面中获取这些信息。

例如,要查找 tar 命令的功能,请运行:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ whatis tar
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

您还可以同时查找多个命令的信息,例如:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]└─$ whatis ls cp mkdir cat head
登录后复制

Linux 神秘对决:which vs. whereis vs. whatis-LMLPHP

which、whereis 和 whatis 之间的区别是什么?

若您需要查找 shell 中命令的可执行文件路径,请尝试使用 which 命令。使用 whereis 命令可查找命令的源文件、二进制文件和 man 页面。

whereis 命令列出所有的二进制可执行文件,而 which 命令仅显示在 shell 中输入该命令时执行的第一个可执行文件。

which 命令在 PATH 变量中进行搜索,而 whereis 命令在标准的Linux目录中进行搜索,包括 $PATH 和 $MANPATH。

最后,whatis 命令会从命令的 man 页面中提取出一行简短的描述。

查找Linux命令的信息

which、whereis 和 whatis 命令可以帮助您找到其他 Linux 命令的信息,如可执行文件的完整路径、二进制文件、源文件、手册页面以及命令的功能。

除了 whatis 命令,您还可以使用其他命令,如 apropos、man、info 和 help,以获得关于 Linux 命令及其功能的详细信息和更好的理解。

以上就是Linux 神秘对决:which vs. whereis vs. whatis的详细内容,更多请关注Work网其它相关文章!

09-02 10:08