在centos/rhel系统中,使用 yum provides 加命令名查找对应软件包,如 yum provides ifconfig 会显示 net-tools 包;2. 在debian/ubuntu系统中,先通过 which 或 command -v 找到命令完整路径,再用 dpkg -s 查找,如 dpkg -s /sbin/ifconfig 返回 net-tools;3. 注意不同系统机制差异:yum provides 可查未安装包,dpkg -s 仅能查已安装包,且路径错误会导致查询失败。

有时候你想知道某个Linux命令是哪个软件包安装的,特别是在系统上找不到命令或者想确认功能来源的时候。这时候可以用 yum provides(适用于CentOS/RHEL)或 dpkg -S(适用于Debian/Ubuntu)来查找。

yum provides 查找命令对应的RPM包在基于Red Hat的系统中,比如 CentOS 或 RHEL,如果你不知道某个命令属于哪个软件包,可以使用 yum provides 命令加命令名来查找。

例如:
yum provides ifconfig
执行后会列出包含 ifconfig 的软件包名称,通常是 net-tools 包。

注意点:
yum provides */ifconfig。dpkg -S 查找命令对应的Debian包在基于Debian的系统中,比如 Ubuntu,可以使用 dpkg -S 加上命令路径来查找。
但问题来了:你怎么知道命令的完整路径?比如 ifconfig 可能在 /sbin/ifconfig,而 /sbin 通常不在普通用户的 PATH 中。
所以你可以先用 which 或 command -v 找到命令的完整路径:
which ifconfig # 或者 command -v ifconfig
假设返回的是 /sbin/ifconfig,那么就可以这样查:
dpkg -S /sbin/ifconfig
输出结果类似:
net-tools: /sbin/ifconfig
说明这个命令来自 net-tools 软件包。
小技巧:
/usr/bin, /bin, /sbin。cd、echo,这些不会对应到具体软件包。虽然 yum provides 和 dpkg -S 都能解决问题,但它们背后依赖的数据结构不同:
yum provides 实际上是在查询 RPM 数据库中的文件映射关系。dpkg -S 是直接搜索已安装包的文件列表。这意味着:
dpkg -S 就查不到。yum provides 查到。此外,有些现代发行版已经用 dnf 替代了 yum,但 yum provides 命令仍然可用。
基本上就这些方法了。遇到不认识的命令时,先找到它的路径,再用对应系统的工具查就行了。不复杂但容易忽略的一点是:路径写不对,查什么都白搭。
以上就是如何查询Linux命令所属软件包 yum provides和dpkg -S查找的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号