whereis 命令用于查找命令的二进制文件、手册页和源代码文件路径,但源码需已安装在标准路径(如 /usr/src)或通过 -S 指定路径;默认不包含源码,需手动安装对应开发包。

whereis 命令本身不能直接查找“二进制命令的源文件”,因为源文件(source code)和二进制程序是两类独立存在的文件,且大多数 Linux 发行版默认不安装命令的源代码。它只能在预设路径(如 /usr/src)中搜索已安装的源码文件,而这类文件通常只存在于开发包(如 gcc-source、bash-src)中,并非随主程序一同安装。
确认目标命令是否有源码文件
运行以下命令检查是否已有对应源码:
-
whereis -s gcc—— 若输出为空或仅显示gcc:(冒号后无路径),说明系统未安装 GCC 源码 -
whereis -s bash—— 多数发行版也不自带 bash 源码,通常返回空
安装对应的源码包(以主流发行版为例)
只有先安装源码包,whereis 才能定位到它们:
-
Debian/Ubuntu:执行
sudo apt install bash-src或sudo apt build-dep bash(后者安装构建依赖并可下载源码) -
RHEL/CentOS/Fedora:运行
sudo dnf download --source bash,再用rpm2cpio和cpio解压获取源码 -
openEuler:使用
dnf install bash-devel或查询源码包名后下载
指定源码路径让 whereis 找得更准
如果源码解压到了非标准位置(比如 ~/src/bash-5.2),需用 -S 显式指定:
whereis -S ~/src/bash-5.2 -s bash- 注意:
-S后路径必须以/开头(即绝对路径),且-f要紧跟在路径参数后,例如:whereis -S /home/user/src/bash -f bash
替代方案:查源码更可靠的方式
whereis 对源码支持有限,实际工作中建议结合其他方法:
- 用
apt source bash(Debian系)直接下载并解压源码包 - 访问上游官网(如 https://www.php.cn/link/7cbabebc4ff57faf9cd22b4188243793)下载 tarball
- 用
dpkg -L bash或rpm -ql bash查看已安装文件,但通常不含源码


















