linux无统一查已安装软件命令,需先用dpkg、rpm、pacman或zypper --version判断发行版及包管理器;debian/ubuntu用apt list --installed | grep或dpkg -s,rhel系用rpm -qa | grep或dnf list installed,arch系用pacman -qe,源码安装软件则无法通过包管理命令识别。

Linux 没有统一的“查看已安装软件包”命令,必须先确认你用的是哪种发行版和包管理器——选错命令,要么报错,要么查不到东西。
怎么快速判断自己用的是哪个包管理器
别猜,直接运行这几个命令看哪个有输出:
-
dpkg --version有输出 → Debian/Ubuntu 系统,走apt或dpkg路线 -
rpm --version有输出 → RHEL/CentOS/Fedora/SUSE 系统,走rpm/dnf/yum路线 -
pacman --version有输出 → Arch/Manjaro 系统,走pacman路线 -
zypper --version有输出 → openSUSE 系统,走zypper路线
注意:which apt 或 which dnf 不可靠——有些系统会预装多个包管理器但不默认启用;cat /etc/os-release 是更稳妥的辅助手段,但不如直接试命令快。
Debian/Ubuntu 查已安装包:别只用 apt list --installed
apt list --installed 看起来最直观,但它默认列出所有包(含自动安装的依赖),数量动辄上千,实际很难扫一眼定位目标。更实用的组合是:
- 查某个具体软件是否装了:
apt list --installed | grep -i nginx(加-i避免大小写干扰) - 只看用户手动装的包(排除依赖):
apt list --installed --manual-installed(Ubuntu 20.04+ / Debian 11+ 支持) - 想看包的详细状态(比如是否配置失败):
dpkg -s curl比apt list更底层、更准确 - 查某个二进制属于哪个包:
dpkg -S /usr/bin/python3(注意路径要写全)
常见坑:apt list --installed 不显示源码编译安装或 pip install --user 的软件;它也查不到 Snap 或 Flatpak 安装的应用。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
RHEL/CentOS/Fedora 查已安装包:rpm -qa 和 dnf list installed 用途不同
rpm -qa 是最底层、最全的查询,能列出所有 RPM 包(包括系统自带、第三方 repo 安装、甚至被强制安装的破损包);而 dnf list installed 只显示当前启用 repo 中记录的包,更干净但可能漏掉手动 rpm -ivh 装的包。
- 快速筛选:
rpm -qa | grep httpd比dnf list installed | grep httpd更可靠 - 查包详情(版本、安装时间、签名):
rpm -qi httpd(i表示 info) - 查文件归属:
rpm -qf /etc/nginx/nginx.conf(注意路径必须存在) - CentOS 7 用户请用
yum list installed,不是dnf;RHEL 8+ 默认禁用yum别名,硬切dnf
注意:rpm -qa 输出无排序,加 | sort 会慢一点但可读性提升明显;dnf list installed 默认按字母排好序。
Arch/Manjaro 查已安装包:pacman -Q 是基础,但得知道后缀含义
pacman -Q 本身只列“显式安装”的包(即你亲手敲过 pacman -S 的),不包含依赖。很多人误以为它等于“全部已装包”,其实不是。
- 查全部已装包(含依赖):
pacman -Qq(q表示 quiet,只输出包名) - 只看手动装的:
pacman -Qe(e= explicitly installed) - 查某个包是否存在且版本:
pacman -Q firefox(有输出说明已装,没输出就是没装或名字不对) - 查孤立依赖(可安全卸载):
pacman -Qdt(dt= dependency or target)
关键提醒:pacman -Q 查不到 AUR 包(如用 yay 或 paru 装的),那些得单独用对应 AUR helper 查;源码编译安装的程序,pacman 根本看不到。
真正容易被忽略的一点:所有这些命令都只管“包管理器安装”的软件。如果你用 ./configure && make && sudo make install 装的、或者直接下载二进制丢进 /usr/local/bin 的,它们不会出现在任何 dpkg/rpm/pacman 列表里——这时候只能靠 which、find /usr/local -name xxx 或 ps aux | grep xxx 反推。










