whereis 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文件与目录命令族(见文件与目录命令族)。想一口气找到命令的二进制、源码、手册在哪,用它比 which(见which)更全。
whereis 一次性告诉你某个命令的:可执行文件在哪、源代码在哪、man 手册在哪。它基于一套预定义的标准目录(不是遍历整个 PATH),所以快,但范围受限于此。
一、基本用法
bash
whereis ls # 输出 ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
whereis -b git # 只找二进制(binary)
whereis -m python # 只找 man 手册默认输出三样:二进制路径、源码路径、手册路径(没找到的省略)。
-b/-m/-s分别只看二进制/手册/源码,缩小输出。比 which 多给了手册位置,查文档时方便。
二、查找范围与局限
bash
whereis mytool # 若 mytool 装在非标准目录,可能找不到
which mytool # 只要 PATH 里有就能找到
whereis只搜标准目录(由whereis内部数据库/硬编码路径决定),自定义安装到非标准路径的命令它可能漏报;而 which 严格按 PATH 找,反而不易漏。所以:找"系统自带命令的二进制+手册"用whereis快;找"我自己装的、PATH 里的"用 which 更稳。
三、实战:快速读手册路径
bash
whereis -m nginx # 拿到手册路径,顺手 man 它排查配置/参数时,
whereis -m直接给出 man 页位置,比先man再翻更利于写进脚本或批量处理。
一句话总结
whereis = 一次性找命令的二进制/源码/man 手册:-b/-m/-s 分别只看二进制/手册/源码;比 which(见which)多给手册和源码位置;但只搜标准目录,非标准路径装的命令可能漏报,那种情况用 which 更稳。