1. 命令概述
- 命令名称:
whereis - 核心功能:查找命令的二进制文件、源码文件和帮助文档
- 主要用途:快速定位命令的所有相关文件
2. 语法格式
whereis [选项] 命令名...
3. 常用选项
| 选项 | 说明 |
|---|---|
-b | 只查找二进制文件 |
-m | 只查找帮助文档 |
-s | 只查找源码文件 |
-u | 查找不常见的文件 |
-B | 指定二进制文件搜索目录 |
-M | 指定帮助文档搜索目录 |
-S | 指定源码文件搜索目录 |
-f | 终止目录列表 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
4. 常用实例详解
(1) 基本用法
# 查找 ls 命令的所有相关文件
whereis ls
# 输出:ls: /bin/ls /usr/share/man/man1/ls.1.gz
# 查找多个命令
whereis ls cp mv
# 输出:
# ls: /bin/ls /usr/share/man/man1/ls.1.gz
# cp: /bin/cp /usr/share/man/man1/cp.1.gz
# mv: /bin/mv /usr/share/man/man1/mv.1.gz
# 查找 python 命令
whereis python
# 输出:python: /usr/bin/python /usr/lib/python2.7 /usr/bin/python2.7 /usr/share/man/man1/python.1.gz
(2) 指定查找类型
# 只查找二进制文件
whereis -b ls
# 输出:ls: /bin/ls
# 只查找帮助文档
whereis -m ls
# 输出:ls: /usr/share/man/man1/ls.1.gz
# 只查找源码文件
whereis -s ls
# 输出:ls: (无输出,表示没有源码文件)
(3) 指定搜索目录
# 在指定目录查找二进制文件
whereis -B /usr/bin -f ls
# 在指定目录查找帮助文档
whereis -M /usr/share/man -f ls
# 在多个目录查找
whereis -B /usr/bin:/usr/local/bin -f python
(4) 查找不常见文件
# 查找不常见的文件类型
whereis -u ls
# 查找没有帮助文档的命令
whereis -u -m ls
5. 实际应用场景
场景一:快速定位命令文件
# 查找常用命令的位置
whereis bash
whereis vim
whereis git
whereis docker
# 查找系统工具
whereis systemctl
whereis journalctl
whereis apt-get
场景二:查找帮助文档
# 查找命令的帮助文档
whereis -m ls
whereis -m cp
whereis -m mv
# 查看帮助文档路径
man -w ls
(3) 查找源码文件
# 查找命令的源码文件
whereis -s bash
whereis -s vim
whereis -s python
# 如果找到源码,可以查看源码目录
ls -la $(whereis -s bash | cut -d' ' -f2)
(4) 检查命令完整性
# 检查命令是否完整安装
whereis nginx
# 输出:nginx: /usr/sbin/nginx /etc/nginx /usr/lib/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
# 检查是否缺少帮助文档
whereis -m nginx
6. 与其他命令的区别
| 命令 | 特点 | 适用场景 |
|---|---|---|
whereis | 查找二进制、源码、帮助文档 | 快速定位命令所有相关文件 |
which | 查找可执行文件路径 | 确定命令执行位置 |
locate | 通过数据库快速查找文件 | 快速查找任何文件 |
find | 实时查找文件 | 精确查找、条件查找 |
7. 注意事项
- 搜索目录:
whereis只在标准目录中查找(如/bin、/usr/bin、/usr/share/man) - 数据库依赖:
whereis使用预构建的数据库,可能找不到新安装的命令 - 更新数据库:使用
updatedb命令更新数据库 - 源码文件:不是所有命令都提供源码文件
- 返回值:找到文件返回 0,未找到返回 1
8. 常见问题解决
(1) 命令未找到
# 更新数据库
sudo updatedb
# 再次查找
whereis new_command
# 检查命令是否安装
which new_command
(2) 缺少帮助文档
# 安装帮助文档
sudo apt-get install manpages
sudo apt-get install manpages-dev
# 再次查找
whereis -m ls
(3) 源码文件缺失
# 安装源码包
sudo apt-get source package_name
# 查找源码文件
whereis -s command_name
(4) 自定义目录查找
# 在自定义目录查找
whereis -B /usr/local/bin -f custom_command
# 在多个目录查找
whereis -B /usr/bin:/usr/local/bin:/opt/bin -f command
核心要点总结:
whereis用于查找命令的二进制文件、源码文件和帮助文档- 常用选项:
-b(二进制)、-m(帮助文档)、-s(源码)、-B(指定目录) - 查找范围:只在标准系统目录中查找
- 实际应用:快速定位命令文件、查找帮助文档、检查命令完整性
- 数据库依赖:需要定期更新数据库(
updatedb) - 性能优势:比
find命令更快,因为使用预构建数据库
whereis 命令是系统管理和开发调试的实用工具,可以快速定位命令的所有相关文件。