跳到主要内容

Linux中whereis命令的使用

· 阅读需 4 分钟

whereis是一个用来查找给定命令的二进制文件,源代码文件,man手册文件的命令。

如何使用whereis命令

whereis命令的基本语法如下:

whereis [OPTIONS] FILE_NAME...

当不带有任何参数时,whereis将搜索相关命令的二进制文件,源代码及man手册文件。

默认,whereis是在环境变量中定义的路径和目录中搜索命令文件。使用-l选项可以看到whereis命令搜索的目录都有哪些。

whereis -l

想要获取有关bash命令的信息,可以使用如下命令:

whereis bash

输出:

bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz

输出内容中,/bin/bash是二进制文件的路径,/etc/bash.bashrc是源代码文件, /usr/share/man/man1/bash.1.gz是手册文件的位置。

当搜索的命令不存在时,whereis将只打印命令名称。

which命令一样,可以指定多个参数。

whereis netcat uptime

下面是输出内容

netcat: /bin/netcat /usr/share/man/man1/netcat.1.gz
uptime: /usr/bin/uptime /usr/share/man/man1/uptime.1.gz

要只想搜索命令的二进制文件,可以用*-p选项。 例如,要查找ping*命令的位置,可使用如下命令:

whereis -b ping

输出:

ping: /bin/ping

只想查特定命令的二进制文件的位置时,建议使用whichtype命令。

如果只想查看命令的源代码文件时,可使用*-s*选项。

whereis -s command

当源代码文件存在时,将打印出其路径。

使用*-m选项时,只会查man*文件位置。

whereis -m command

想要限制whereis命令要查找的目录时,二进制文件用*-B选项,手册文件用-M选项,源代码文件用-S*选项。每个选项都是,接收以空格分隔的目录的绝对路径列表。而且目录列表必须以-f选项终止。

whereis -b -B /bin -f cp

输出:

cp: /bin/cp

-u选项是用来搜索异常条目的,如果一个命令对应的请求类型(二进制文件,源代码,手册)数量不是1个的时候(没有或有多个),被看作为异常条目。

例如,想要搜索*/bin*目录中没有文档或具有多个文档的所有二进制文件,可执行:

cd /bin
whereis -m -u *

当通配符(*)在*-f选项后面时,表示当前工作目录中(/bin*)的所有文件。

以上介绍了用whereis命令查找二进制文件,源代码,手册的方法。