rpm -qa列出所有已安装包,rpm -q查询指定包状态;如rpm -qa|grep httpd查是否安装httpd,rpm -q openssh-server查ssh服务安装状态,结合-i、-l、-c、-d、-f等选项可获取包的详细信息、文件列表、配置文件、文档及所属包。

在Linux系统中,RPM(Red Hat Package Manager)是用于管理软件包的核心工具之一,常用于基于Red Hat的系统(如CentOS、RHEL、Fedora)。rpm -qa 和 rpm -q 是两个常用的查询命令,用途不同但密切相关。
rpm -qa:列出系统中所有已安装的软件包
该命令用于查询(query)系统中所有已安装的RPM软件包。
语法:rpm -qa
示例:显示全部已安装包:
rpm -qa
结合管道过滤查找特定软件包,比如查看是否安装了httpd:
rpm -qa | grep httpd
也可以排序输出结果:
rpm -qa | sort
rpm -q:查询指定软件包的安装状态
该命令用于查询某个具体软件包是否已安装,以及获取其详细信息。
语法:rpm -q package_name
示例:检查系统是否安装了bash:
rpm -q bash
如果已安装,输出类似:
bash-4.4.19-10.el8.x86_64
如果未安装,则显示:
package bash is not installed
rpm -q 的扩展用法(常用选项)
除了基本查询,rpm -q 还支持多种选项来获取更详细的信息。
- rpm -qi package_name:查看包的详细信息(名称、版本、描述、安装时间等)
- rpm -ql package_name:列出该包安装的所有文件路径
- rpm -qc package_name:仅列出该包的配置文件
- rpm -qd package_name:仅列出该包的文档文件
- rpm -qf /path/to/file:查询某个文件是由哪个RPM包安装的
查看ssh服务是否安装:
rpm -q openssh-server
查看该包安装了哪些文件:
rpm -ql openssh-server
通过文件反查所属包:
rpm -qf /etc/passwd
基本上就这些。掌握 rpm -qa 和 rpm -q 及其常用选项,能快速了解系统软件状态,排查问题或审计环境时非常实用。不复杂但容易忽略细节。










