Linux无统一查已安装软件包命令,需先运行dpkg、rpm、pacman等--version命令确认包管理器类型,再选用apt list --installed、dnf list installed、pacman -Q等对应命令;非包管理器安装的软件需用snap list、flatpak list、pip list或find手动查找。

Linux 没有统一命令能直接列出所有已安装软件,关键在于先确认系统用的是哪种包管理器,再用对应命令查——用错工具,结果为空或报错是常态。
先判断你的包管理器类型
别猜发行版,直接运行以下命令,看哪个有输出:
- `dpkg --version` 有响应 → Debian/Ubuntu 系(如 Ubuntu、Linux Mint)
- `rpm --version` 有响应 → RHEL/CentOS/Fedora/openSUSE
- `pacman --version` 有响应 → Arch/Manjaro
- `zypper --version` 有响应 → openSUSE
- `apk --version` 有响应 → Alpine Linux
按系统查已安装包(常用推荐命令)
确认包管理器后,用下面这些命令效率更高、信息更实用:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
-
Debian/Ubuntu:
`apt list --installed | grep -i nginx` —— 带源信息,适合排查版本来源;加
-i避免大小写漏判 -
RHEL/CentOS 8+/Fedora:
`dnf list installed | grep -i httpd` —— 显示仓库来源;若要最全结果,改用
rpm -qa | grep -i httpd - CentOS 7/RHEL 7: `yum list installed | grep -i java`
-
Arch/Manjaro:
`pacman -Qe | grep -i vim` —— 只列用户手动装的包(不含依赖);想查全部用
pacman -Q - openSUSE: `zypper search --installed-only | grep -i docker`
查不到?可能是非包管理器安装的
如果上述命令都无结果,但 which curl 或 command -v python3 能定位到程序,说明它不是系统包管理器装的:
-
Snap 应用:用
snap list | grep xxx -
Flatpak 应用:用
flatpak list | grep xxx -
Pip 用户安装:用
pip list | grep xxx(注意:--user安装不进系统级列表) -
源码编译安装:通常在
/usr/local/,包管理器完全不可见,可用find /usr/local -name "*xxx*"或查安装日志
查某个包装了哪些文件
确认包名存在后,想知道它具体释放了什么:
- Debian/Ubuntu:
dpkg -L nginx - RHEL/CentOS/Fedora:
rpm -ql httpd - Arch:
pacman -Ql vim

















