Linux如何查看已安装的所有软件?常用命令与方法详解

Linux系统中,软件安装方式因发行版和包管理器的不同而存在差异,查看已安装软件的方法也因此多样化,无论是基于Debian/Ubuntu的APT系列、RedHat/CentOS的YUM/DNF系列,还是Arch Linux的Pacman系列,亦或是第三方包管理器如Snap、Flatpak,均有对应的查询命令,本文将详细介绍不同场景下查看已安装软件的方法,并辅以示例和表格对比,帮助用户快速定位所需信息。

linux如何查看安装了哪些软件

基于Debian/Ubuntu的APT系列查询方法

Debian及其衍生版(如Ubuntu)使用APT(Advanced Packaging Tool)作为包管理器,通过apt命令结合dpkg(底层包管理工具)可全面查询已安装软件信息。

apt list --installed:列出所有已安装软件

该命令会输出系统中所有已安装软件的列表,包含包名、版本、架构、描述及来源仓库。
用法

apt list --installed

示例输出

libnginx-mod-http-geoip2/1.18.0-0ubuntu1 amd64 [installed,local]
nginx/1.18.0-0ubuntu1 amd64 [installed,local]
python3-pip/20.0.2-5ubuntu1.10 all [installed,official]

技巧:结合grep可快速筛选特定软件,如apt list --installed | grep nginx仅显示与nginx相关的包。

apt search:搜索可用软件(含已安装和未安装)

若需查询某软件是否已安装或是否存在可用版本,可使用apt search
用法

apt search 关键词

示例输出

python3-pip/focal-updates,focal-security 20.0.2-5ubuntu1.10 all
  Python package installer
python3.8-pip/focal-updates 20.0.2-5ubuntu1.10 amd64
  Python package installer for Python 3.8

输出中[installed]标记表示已安装,无标记则表示未安装。

dpkg -l:列出所有已安装包(含未配置完成的包)

dpkg是APT的底层工具,dpkg -l会显示所有已安装包的状态,包括未正确配置的包。
用法

dpkg -l

状态列说明

  • ii:已安装并正确配置(Installed and configured)
  • rc:已卸载但配置文件保留(Removed but config files kept)
    示例输出

    ii  libnginx-mod-http-geoip2  1.18.0-0ubuntu1  amd64  nginx module for GeoIP2 database lookups
    ii  nginx                    1.18.0-0ubuntu1  amd64  high performance web server

APT系列常用查询命令对比

命令 用途 示例
apt list --installed 列出所有已安装软件 apt list --installed
apt search 搜索软件(含安装状态) apt search nginx
dpkg -l 列出所有已安装包(含状态) dpkg -l | grep nginx

基于RedHat/CentOS的YUM/DNF系列查询方法

RedHat、CentOS及Fedora使用RPM包管理系统,其中CentOS 7及以下版本用yum,CentOS 8+、Fedora等用dnf(yum的下一代替代品),二者命令语法基本一致。

yum list installed(CentOS 7及以下)

列出所有已安装的RPM包,包含包名、版本、仓库来源。
用法

yum list installed

示例输出

nginx.x86_64            1.18.0-1.el7.ngx     @nginx-stable
python3-pip.noarch      9.0.3-7.el7          @base

后缀表示安装来源(如@nginx-stable为第三方仓库,@base为基础仓库)。

dnf list installed(CentOS 8+、Fedora)

功能与yum list installed相同,但依赖更高效的libsolv库。
用法

dnf list installed

示例输出

linux如何查看安装了哪些软件

nginx-1:1.18.0-1.el8.ngx.x86_64   @nginx-stable
python3-pip-20.2.4-1.el8.noarch    @appstream

yum search/dnf search:搜索软件

搜索包含关键词的软件包,显示可用版本及仓库信息。
用法

yum search 关键词  # 或 dnf search 关键词

示例输出

nginx.x86_64 : High performance web server and reverse proxy server  
nginx-all-modules.x86_64 : Metapackage for all Nginx modules  

rpm -qa:列出所有已安装RPM包

rpm是RPM系统的底层工具,rpm -qa(query all)输出所有已安装包的完整名称(包名-版本-发布.架构)。
用法

rpm -qa | sort  # 排序后输出

示例输出

nginx-1.18.0-1.el7.ngx.x86_64
python3-pip-9.0.3-7.el7.noarch

YUM/DNF系列常用查询命令对比

命令 用途 示例
yum list installed 列出已安装RPM包(CentOS 7-) yum list installed
dnf list installed 列出已安装RPM包(CentOS 8+) dnf list installed
yum search/dnf search 搜索软件包 dnf search nginx
rpm -qa 列出所有已安装包(完整名称) rpm -qa | grep nginx

基于Arch Linux的Pacman系列查询方法

Arch Linux使用Pacman作为包管理器,其设计简洁高效,查询命令也更为直观。

pacman -Q:列出所有已安装包

pacman -Q(query)输出已安装包的名称和版本,格式为“包名 版本”。
用法

pacman -Q

示例输出

nginx 1.20.1-1
python-pip 20.3.1-1

pacman -Qs:搜索已安装包

在已安装包中搜索包含关键词的包,显示包名、版本及描述。
用法

pacman -Qs 关键词

示例输出

local/nginx 1.20.1-1 [installed]
    HTTP server and reverse proxy
local/python-pip 20.3.1-1 [installed]
    A tool to install Python packages

pacman -Qi:查看包详细信息

若需获取某包的详细信息(如依赖、大小、安装时间等),使用pacman -Qi(query info)。
用法

pacman -Qi 包名

示例输出

Name            : nginx
Version         : 1.20.1-1
Description     : HTTP server and reverse proxy
Architecture    : x86_64
URL             : http://nginx.org
Licenses        : BSD
Groups          : None
Provides        : None
Depends On      : glibc libpcre openssl zlib
Required By     : None
Optional Deps  : None
Conf Files      : /etc/nginx/*

Pacman系列常用查询命令对比

命令 用途 示例
pacman -Q 列出所有已安装包 pacman -Q
pacman -Qs 搜索已安装包 pacman -Qs nginx
pacman -Qi 查看包详细信息 pacman -Qi nginx

通用查询方法(跨发行版)

若需在不依赖特定发行版包管理器的情况下查询软件,可通过底层工具或文件路径定位。

dpkg -S(Debian/Ubuntu):查找文件所属包

通过文件路径反向查询该文件属于哪个已安装包,适用于忘记包名但知道文件路径的情况。
用法

dpkg -S 文件路径

示例

dpkg -S /usr/bin/python3
# 输出:python3-minimal: /usr/bin/python3

rpm -qf(RedHat/CentOS/Fedora):查找文件所属包

dpkg -S类似,用于RPM系统中查询文件所属包。
用法

linux如何查看安装了哪些软件

rpm -qf 文件路径

示例

rpm -qf /usr/bin/python3
# 输出:python3-3.6.8-18.el8.x86_64

查看软件安装目录

Linux软件通常安装到以下目录,可通过查看目录内容判断已安装软件:

  • /usr/bin/usr/local/bin:可执行文件(用户安装软件常在/usr/local/bin
  • /usr/lib/usr/local/lib:库文件
  • /opt:部分商业软件或大型软件(如IDE、浏览器)的安装目录
    示例

    ls /usr/local/bin | grep mysql  # 查看用户安装的MySQL相关可执行文件

第三方包管理器查询方法

除发行版自带包管理器外,Snap、Flatpak等第三方工具也广泛使用,需通过对应命令查询。

Snap:snap list

Snap是Canonical开发的跨发行版包管理器,软件安装为独立“快照”。
用法

snap list

示例输出

Name        Version        Rev    Tracking       Publisher   Notes
core        16-2.53        13700  latest/stable  canonical✓  base
nginx       1.21.0-1/1.21  136    latest/stable  nginx✓      -

Publisher列的表示官方维护的Snap包。

Flatpak:flatpak list

Flatpak是另一个跨发行版工具,支持用户级和系统级安装。
用法

flatpak list --user  # 查看用户安装的Flatpak应用
flatpak list --system # 查看系统安装的Flatpak应用

示例输出

Ref                          Options
org.mozilla.firefox          stable
org.libreoffice.LibreOffice  stable

图形化工具查询

对于不习惯命令行的用户,可通过图形化工具查询已安装软件:

  • Ubuntu:软件中心(Ubuntu Software),支持搜索、查看已安装软件及卸载。
  • CentOS:Add/Remove Software(yumex图形前端),需安装yumex包后使用。
  • Arch:Octopi(Pacman图形前端),需安装octopi包后使用。

Linux查看已安装软件的方法需结合包管理器和发行版选择:

  • Debian/Ubuntu:优先用apt list --installeddpkg -l,结合apt search搜索。
  • RedHat/CentOS:用yum list installed/dnf list installedrpm -qayum search/dnf search搜索。
  • Arch:用pacman -Qpacman -Qspacman -Qi查看详情。
  • 通用方法dpkg -S/rpm -qf反向查找文件所属包,或查看/usr/bin/opt等目录。
  • 第三方工具:Snap用snap list,Flatpak用flatpak list

根据实际场景选择合适命令,可快速定位已安装软件信息。

相关问答FAQs

Q1:如何查看某个已安装软件的详细信息(如版本、依赖、安装时间)?

A:根据包管理器选择对应命令:

  • APT(Debian/Ubuntu)apt show 包名(显示仓库信息)或dpkg -l 包名(显示安装状态)。
    示例:apt show nginx
  • YUM/DNF(RedHat/CentOS)yum info 包名dnf info 包名
    示例:dnf info nginx
  • Pacman(Arch)pacman -Qi 包名
    示例:pacman -Qi nginx
  • Snapsnap info 包名
    示例:snap info nginx
  • Flatpakflatpak info 包名
    示例:flatpak info org.mozilla.firefox

Q2:如何区分系统自带的软件和用户手动安装的软件?

A:可通过安装来源、路径及包管理器标记区分:

  1. APT/YUM/DNF
    • 系统自带软件通常来自baseupdates等官方基础仓库,用户安装的可能来自第三方仓库(如epelnginx-stable)或本地编译安装。
    • 示例:apt list --installed | grep "base"筛选基础仓库软件。
  2. dpkg/rpm
    • 查看安装时间:rpm -qa --last | head -n 10(RPM系统显示最近安装的包);ls -la /var/lib/dpkg/info/(Debian/Ubuntu查看包信息文件时间)。
  3. 路径区分
    • 系统自带软件通常在/usr/bin,用户手动编译安装的软件可能在/usr/local/bin/opt
    • 示例:which nginx若输出/usr/sbin/nginx多为系统自带,/usr/local/nginx/sbin/nginx则为用户安装。
  4. Snap/Flatpak
    • 用户安装的Flatpak应用可通过flatpak list --user查看,系统级通过--system查看;Snap默认均为系统级,但可通过snap install --user安装到用户目录。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15930.html

(0)
酷番叔酷番叔
上一篇 2025年8月24日 10:50
下一篇 2025年8月24日 11:03

相关推荐

  • Linux系统如何进入图形界面(GUI)的具体操作步骤是什么?

    在Linux系统中,图形用户界面(GUI)的进入方式取决于系统的安装配置、桌面环境(Desktop Environment, DE)以及显示管理器(Display Manager, DM)的设置,Linux GUI通常基于X11窗口系统或Wayland显示协议,搭配GNOME、KDE Plasma、XFCE等桌……

    2025年10月1日
    1000
  • 进程基础,你真的掌握了吗?

    在Linux系统中,进程管理是系统运维和开发的核心技能之一,无论是监控资源占用、优化性能还是排查故障,高效的进程管理都至关重要,以下内容基于Linux内核文档、IBM开发者社区及《Linux命令行大全》等权威资料整理,遵循E-A-T(专业性、权威性、可信度)原则,确保技术准确性,进程定义:运行中的程序实例,包含……

    2025年8月8日
    3800
  • Linux如何编译程序?具体步骤和所需命令有哪些?

    在Linux系统中编译程序是开发过程中的核心环节,无论是简单的脚本还是复杂的项目,都需要通过编译将源代码转换为可执行的二进制文件,本文将详细介绍Linux环境下编译程序的完整流程,从环境准备到最终执行,涵盖单文件、多文件编译,以及Makefile的使用、常用编译选项和常见错误处理等内容,编译环境准备编译程序前需……

    2025年9月24日
    1500
  • 如何在Ubuntu/Debian安装客户端?

    RDP协议(微软原生方案)原理:使用Windows内置的远程桌面协议(Remote Desktop Protocol),性能高效且加密传输,Windows端设置启用远程桌面:Win + R 输入 sysdm.cpl → 选择“远程”选项卡勾选“允许远程连接到此计算机”点击“选择用户”添加有密码的账户(必需设置登……

    2025年7月9日
    5500
  • 如何正确配置LVM?

    分区基础概念在红帽企业Linux 6(RHEL 6)安装过程中,磁盘分区是构建稳定系统环境的关键步骤,合理的分区方案能提升系统安全性、简化维护并优化性能,以下为详细操作指南:必需的分区/boot 分区作用:存放内核与启动文件大小:≥500MB(推荐1GB)格式:ext4注意:BIOS系统需置于MBR磁盘前2TB……

    2025年7月19日
    4100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信