linux各发行版查询已安装软件包方法不同:debian/ubuntu用dpkg或apt list,rhel/centos/fedora用rpm、dnf或yum,arch linux用pacman,命令分别支持列名、带版本、筛选、排序及统计等功能。

如果您在Linux系统中需要确认已安装的软件包,不同发行版使用不同的包管理器,因此列出已安装程序的方法也存在差异。以下是针对主流Linux发行版的多种查询方式:
一、使用dpkg列出Debian/Ubuntu系已安装包
dpkg是Debian及其衍生发行版(如Ubuntu)的底层包管理工具,可直接读取本地数据库并输出所有已安装的.deb包信息。
1、打开终端,执行以下命令查看全部已安装软件包名称列表:
dpkg --get-selections | grep -v deinstall
2、如需同时显示版本号,运行:
dpkg -l | awk '$1 ~ /^ii$/ {print $2, $3}'
3、若仅需统计已安装包总数,使用:
dpkg -l | grep '^ii' | wc -l
二、使用apt list列出APT源安装的包
apt list命令可基于APT缓存检索已安装或可用的软件包,配合状态过滤器可精准定位已安装项。
1、列出所有已安装的软件包(含版本与架构):
apt list --installed
2、只显示包名(去除版本和架构后缀):
apt list --installed | cut -d'/' -f1 | tail -n +2
3、查找特定关键字相关的已安装包:
apt list --installed | grep nginx
三、使用rpm查询RHEL/CentOS/Fedora系已安装包
rpm是Red Hat系列发行版的原生命令行包管理器,无需网络连接即可从本地数据库提取完整安装记录。
1、列出所有已安装的RPM包名称及版本:
rpm -qa
2、按安装时间倒序排列(最新安装在前):
rpm -qa --last
3、筛选出包含指定字符串的已安装包:
rpm -qa | grep httpd
四、使用dnf或yum列出RHEL 8+/CentOS 8+已安装包
dnf是RHEL 8及后续版本默认的高级包管理器,兼容yum语法且支持更精确的状态过滤。
1、列出所有已安装软件包(不含源码包):
dnf list installed
2、仅显示包名(跳过标题行):
dnf list installed --q | sed '1d'
3、统计已安装包数量:
dnf list installed | tail -n +2 | wc -l
五、使用pacman列出Arch Linux及其衍生版已安装包
pacman是Arch Linux的官方包管理器,其查询功能简洁高效,可直接访问本地包数据库。
1、列出所有显式安装(非依赖自动安装)的软件包:
pacman -Qe
2、列出所有已安装包(含显式安装与依赖包):
pacman -Q
3、列出所有已安装但不再被任何包依赖的“孤儿包”:
pacman -Qdt










