如何使用Whereis查找Linux命令和程序

你有没有试过找到一个命令,程序或应用程序的位置,但不知道在哪里看?

当然,您可以使用find命令来尝试找到它,如下所示:

找到/ -name firefox

这将返回潜在结果列表,通常您可以通过这种方式找到程序的位置。

您可以使用的另一个命令是locate命令。 例如:

找到Firefox

但是,查找程序的最佳方法是whereis命令。

根据手册页

whereis定位指定命令名称的二进制文件,源文件和手动文件。 提供的名称首先被剥离了前导路径名组件和表单.ext的任何(单个)尾随扩展名(例如:.c)s的前缀。 源代码控制的使用所产生的结果也被处理。 然后,Whereis尝试在标准Linux位置以及$ PATH和$ MANPATH指定的地方找到指定的所需程序。

因此,本质上,whereis命令可以找到源代码,手册和程序的位置。

让我们用Firefox试试吧:

其中firefox

上述命令的输出如下所示:

firefox:/ usr / bin / firefox / usr / lib64 / firefox /usr/share/man/man1/firefox.1.gz

如果你只是想找到程序的位置,你可以使用开关-b,如下所示:

其中-b firefox

这将返回以下结果:

firefox:/ usr / bin / firefox / usr / lib64 / firefox

或者,如果您只想知道手册的位置,则可以使用-m开关。

其中-m firefox

上述命令的结果如下所示:

firefox:/usr/share/man/man1/firefox.1.gz

最后,您可以使用-s开关将搜索范围限制为源代码。

还有其他交换机可用于whereis命令,包括用于查找不寻常文件的-u。

手册中提到了关于-u开关的以下内容:

如果一个命令不具有每个明确请求类型的一个条目,就会被认为是不寻常的。 因此,'whereis -m -u *'会询问当前目录中没有文档文件或多个文件的文件。

基本上,如果您的系统上安装了多个手册,或者您正在运行的程序出现在多个位置,它将被退回。

如果您对程序或命令的位置有一个模糊的概念,并且您想要搜索特定的一组目录,则可以使用-B开关在指定列表中搜索二进制文件。

例如:

whereis -b -B / usr / bin -f firefox

上面的命令有几个部分。 首先是-b开关,这意味着我们只在寻找二进制文件(程序本身)。 -B开关用于提供搜索二进制文件的位置列表,文件夹列表由-f开关终止。 因此,在上面的命令中,唯一搜索的目录是/ usr / bin。 最后,-f后面的firefox告诉它它在找什么。

-B开关的另一种选择是-M,它在特定的文件夹集中搜索手册。

-M开关的命令行如下所示:

其中-m -M / usr / share / man / man1 -f firefox

-M的逻辑与-B的逻辑相同。 -m告诉whereis查找手册,-M告诉whereis应该查找手册的文件夹列表即将到来。 -f终止文件列表,firefox是whereis命令要查找手册的程序。

最后,-S开关可用于列出一组文件夹以搜索源代码。