Ubuntu 26.04 查看已安装软件包完整教程

运维 Ubuntu 服务器、桌面、虚拟机时,经常需要查看系统已安装软件包:系统迁移、清理无用依赖、排查故障、备份软件清单、审计安装记录都离不开相关命令。

Ubuntu 软件分为三类:APT 管理的 deb 包、Snap 预装应用、Flatpak 第三方应用,三类工具查询命令完全独立,本文统一整理全套实操命令,兼容 Ubuntu22.04/24.04/26.04 所有 LTS 版本,新手运维可直接复制使用。

一、快速选型对照表(运维快速查表)

需求场景推荐命令适用场景说明
人机快速浏览包名、版本apt list --installed日常快速查看,输出直观,不适合脚本自动化
查看软件安装状态(完整 / 残留配置)LC_ALL=C dpkg --list识别 ii 正常安装、rc 残留配置文件等状态标记
脚本导出标准化清单、自定义字段dpkg-query --show --showformat输出无多余警告,适合批量导出、对比快照
查看单个软件详情、包含文件路径dpkg-query –status / dpkg-query –listfiles排查软件配置、查找文件归属
区分手动安装软件与自动依赖apt-mark showmanual / apt-mark showauto清理无用依赖、系统迁移必备
查看 Snap 商店应用snap listUbuntu 桌面预装 Snap,APT 无法读取
查看 Flatpak 第三方应用flatpak list –app自行安装 Flathub 软件专用
查看近期软件安装 / 卸载记录zgrep ” install ” /var/log/dpkg.log*追溯软件变更时间、版本

二、apt list 快速查看已安装包(新手首选)

1. 列出所有 APT 已安装软件

apt list --installed

输出包含软件仓库、版本、架构、自动 / 手动安装标记,阅读友好。

2. 过滤指定软件(查找 nginx、linux 内核、python 等)

屏蔽 APT 脚本警告,只保留过滤结果:

apt list --installed 2>/dev/null | grep -i nginx
# 查看所有内核镜像
apt list --installed 2>/dev/null | grep "^linux-image"

注意缺点

apt 输出存在不稳定 CLI 警告,不适合写入自动化脚本,批量导出清单优先用 dpkg-query。

三、dpkg /dpkg-query 底层包查询(脚本 / 审计推荐)

dpkg 是 Ubuntu 底层包管理工具,输出格式稳定无多余提示,适合批量导出、日志对比。

1. 查看全量软件状态(ASCII 无乱码)

Ubuntu26.04 默认本地化输出会出现方框乱码,强制 C 语言环境:

LC_ALL=C dpkg --list

状态标识说明:

  • ii:完整正常安装
  • rc:软件已卸载,但配置文件残留

2. dpkg-query 标准化输出(导出清单核心)

仅筛选完全安装(ii)的软件,输出包名 + 版本,无多余表头:

LC_ALL=C dpkg-query --show --showformat='${db:Status-Abbrev}\t${binary:Package}\t${Version}\n' | grep '^ii'

3. 导出软件清单到本地文件(系统迁移备份)

# 导出完整清单
LC_ALL=C dpkg-query --show --showformat='${binary:Package}\t${Version}\n' | grep '^ii' | cut -f2- | sort > ~/ubuntu_install_packages.txt
# 统计已安装软件总数
LC_ALL=C dpkg-query --show --showformat='${db:Status-Abbrev}\n' | grep -c '^ii'

4. 单个软件详情、文件路径查询

# 查看软件元信息(版本、架构、状态)
dpkg-query --status bash
# 查看软件所有安装文件
dpkg-query --listfiles bash
# 反向查询:某个文件属于哪个软件包
dpkg-query --search /etc/bash.bashrc

四、apt-mark 区分手动安装包与自动依赖包

系统迁移、清理冗余软件必备:手动包是管理员主动安装,自动包是依赖自动拉取,清理时仅保留手动包即可。

1. 查看所有手动安装软件

apt-mark showmanual
# 备份手动安装清单(新系统一键重装)
apt-mark showmanual | sort > ~/manual_packages.txt

2. 查看自动安装依赖包

apt-mark showauto

实操技巧

重装系统时,直接读取 manual_packages.txt 批量安装,APT 会自动补齐所有依赖,无需手动记录全部软件。

五、非 APT 软件:Snap / Flatpak 应用查询

APT、dpkg 仅管理 deb 包,桌面版 Ubuntu 自带 Snap,安装 Flathub 后有 Flatpak,需单独查询。

1. 查看 Snap 应用(兼容无 snap 环境)

if command -v snap >/dev/null 2>&1; then snap list; else echo "未安装Snap"; fi

2. 查看 Flatpak 应用(仅展示软件,不包含运行库)

if command -v flatpak >/dev/null 2>&1; then flatpak list --app --columns=application,name,version; else echo "未安装Flatpak"; fi

六、查看软件安装历史日志(追溯操作记录)

dpkg 日志记录所有安装、卸载、升级行为,可排查近期软件变更:

# 查看近期20条安装记录
grep " install " /var/log/dpkg.log | tail -n 20
# 读取压缩归档日志,查看更早记录
zgrep -h " install " /var/log/dpkg.log* 2>/dev/null | tail -n 40

七、常见问题

  1. apt list 脚本警告 脚本自动化不要使用 apt list,替换为 dpkg-query 标准化输出,消除警告干扰。
  2. dpkg –list 乱码 执行前添加LC_ALL=C强制 ASCII 输出,适配 Ubuntu26.04 新版本地化界面。
  3. rc 状态软件占用空间 rc 代表仅残留配置,可执行sudo apt autoremove --purge清理无用配置。
  4. Snap/Flatpak 软件不在 dpkg 列表 属于独立包管理器,必须单独用 snap list、flatpak list 查询。

总结:

  1. 日常快速查看:apt list --installed
  2. 脚本、备份、系统迁移:dpkg-query 导出清单;
  3. 清理依赖、重装系统:apt-mark 区分手动安装包;
  4. 桌面应用完整盘点:同时查询 Snap+Flatpak;
  5. 故障追溯安装记录:读取 /var/log/dpkg.log 日志。 全套命令覆盖 Ubuntu22.04/24.04/26.04 所有版本,是服务器运维、桌面系统维护高频工具集,建议收藏作为速查手册。
本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress