which 命令

which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置。它一般用来确认系统中是否安装了指定的软件。

(1)命令格式

which  可执行文件名称

(2)常用范例

例一:确认是否安装了 gcc,可以使用如下命令:

which gcc



whereis 命令

whereis 命令主要用于定位可执行文件、源代码文件、帮助文件在文件系统中的位置。whereis 命令还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。

whereis 命令查找速度非常快,这是因为它根本不是在磁盘中漫无目的乱找,而是在一个数据库中(/var/lib/mlocate/)查询。这个数据库是 Linux 系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行 updatedb 命令更新一次。也正是因为这个数据库要每天才更新一次,就会使得 whereis 命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到。

(1)命令格式

whereis [选项] 文件

(2)常用参数

参数 描述
-b 定位可执行文件
-m 定位帮助文件
-s 定位源代码文件
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
-B 指定搜索可执行文件的路径
-M 指定搜索帮助文件的路径
-S 指定搜索源代码文件的路径

(3)常用范例

例一:搜索 gcc 可执行文件的路径,可以使用如下命令:

whereis -b gcc

例二:搜索 gcc 帮助文件的路径,可以使用如下命令:

whereis -m gcc



locate 命令

locate 命令跟 whereis 命令类似,且它们使用的是相同的数据库。但 whereis 命令只能搜索可执行文件、联机帮助文件和源代码文件,如果要获得更全面的搜索结果,可以使用 locate 命令。

locate 命令使用了十分复杂的匹配语法,可以使用特殊字元(如’*’和’?’)来指定需要查找的样本。

(1)命令格式

locate [选项] [搜索字符串]

(2)常用参数

参数 描述
-q 安静模式,不会显示任何错误讯息
-n 至多显示 n 个输出
-r 使用正规表达式做寻找的条件
-V 显示版本讯息

(3)常用范例

例一:搜索 etc 目录下所有以 sh 开头的文件,可以使用如下命令:

locate php.ini

注意执行这个命令会报错:locate 无法执行 stat() ‘/var/lib/mlocate/mlocate.db’:没有那个文件或目录。


解决办法是执行sudo updatedb命令。