Linux基本命令篇 —— whereis命令
whereis
是 Linux 系统中一个非常有用的命令,用于定位二进制程序、源代码文件和手册页的位置。与which
命令不同,whereis
不仅能找到可执行文件,还能找到相关的文档和源代码,它也是系统管理员和开发人员在查找命令相关文件时的有用工具,特别是在需要了解命令的完整安装位置时非常实用。
目录
一、基本语法
二、主要功能
三、常用选项
四、使用示例
五、whereis 与 which 的区别(重点)
六、注意事项
updatedb 的作用
一、基本语法
whereis [选项] 文件名
二、主要功能
whereis
命令会搜索以下类型的文件:
-
二进制文件(可执行程序)
-
源代码文件
-
手册页(man pages)
三、常用选项
选项 | 说明 |
---|---|
-b | 只搜索二进制文件 |
-m | 只搜索手册页文件 |
-s | 只搜索源代码文件 |
-u | 搜索不常见的文件(即没有文档、源代码或二进制文件的命令) |
-B | 指定二进制文件的搜索路径 |
-M | 指定手册页的搜索路径 |
-S | 指定源代码的搜索路径 |
-f | 终止前面的路径列表(与 -B , -M , -S 一起使用) |
四、使用示例
-
基本使用 - 查找命令的所有相关文件:
whereis ls
输出示例:
-
只查找二进制文件:
whereis -b gcc
输出示例:
-
只查找手册页:
whereis -m printf
输出示例:
-
只查找源代码:
whereis -s python
w
hereis
的默认行为:如果找不到匹配的文件,它只会返回命令名称后跟冒号:
,表示“未找到”。whereis -s
专门用于查找 源代码文件(source code),但 Python 的源代码通常不会默认安装在标准系统路径中,因此whereis
可能找不到。 -
查找不常见的命令(即没有文档、源代码或二进制文件的命令):
whereis -u *
-
指定搜索路径:
whereis -B /usr/local/bin -f python
-
whereis
:Linux 命令,用于查找二进制文件、手册页和源代码文件。 -
-B /usr/local/bin
:指定只搜索二进制文件,并且限定在/usr/local/bin
目录下查找。 -
-f
:表示终止-B
指定的路径列表,后面接要查找的命令名(这里是python
)。 -
python
:要查找的目标命令。
五、whereis 与 which 的区别(重点)
特性 | whereis | which |
---|---|---|
搜索范围 | 二进制文件、手册页、源代码 | 仅PATH中的可执行文件 |
显示结果 | 所有相关文件路径 | 第一个找到的可执行文件路径 |
搜索速度 | 较快(使用数据库) | 较慢(实时搜索) |
适用场景 | 查找命令的所有相关文件 | 确定执行的是哪个版本 |
六、注意事项
-
whereis
通常比which
更快,因为它搜索的是系统预先构建的数据库,而不是实时搜索文件系统。 -
在某些系统上,
whereis
可能不会找到所有文件,这取决于数据库的更新频率。 -
如果找不到预期的文件,可以尝试使用
updatedb
命令更新数据库(需要root权限):
再使用 updatedb
命令更新数据库:
updatedb
的作用
-
updatedb
是mlocate
包提供的工具,用于更新系统的文件索引数据库(/var/lib/mlocate/mlocate.db
)。 -
whereis
、locate
等命令依赖此数据库快速查找文件,而非实时扫描磁盘。 -
如果新安装了软件(如 Python 源码),但数据库未更新,
whereis
可能无法找到它。