列出 Ubuntu 和 Debian 上已安装的软件包

如果你经常用 apt 命令,你可能觉得会有个命令像 apt 一样可以列出已安装的软件包。不算全错。

apt-get 命令 没有类似列出已安装软件包的简单的选项,但是 apt 有一个这样的命令:

apt list --installed

这个会显示使用 apt 命令安装的所有的软件包。同时也会包含由于依赖而被安装的软件包。也就是说不仅会包含你曾经安装的程序,而且会包含大量库文件和间接安装的软件包。

用 atp 命令列出显示已安装的软件包

由于列出出来的已安装的软件包太多,用 grep 过滤特定的软件包是一个比较好的办法。

apt list --installed | grep program_name

如上命令也可以检索出使用 .deb 软件包文件安装的软件。是不是很酷?

如果你阅读过 apt 与 apt-get 对比的文章,你可能已经知道 apt 和 apt-get 命令都是基于 dpkg。也就是说用 dpkg 命令可以列出 Debian 系统的所有已经安装的软件包。

dpkg-query -l

你可以用 grep 命令检索指定的软件包。

用 dpkg 命令列出显示已经安装的软件包

现在你可以搞定列出 Debian 的软件包管理器安装的应用了。那 Snap 和 Flatpak 这个两种应用呢?如何列出它们?因为它们不能被 apt 和 dpkg 访问。

显示系统里所有已经安装的 Snap 软件包,可以这个命令:

snap list

Snap 可以用绿色勾号标出哪个应用来自经过认证的发布者。

列出已经安装的 Snap 软件包

显示系统里所有已安装的 Flatpak 软件包,可以用这个命令:

flatpak list

让我来个汇总:

用 apt 命令显示已安装软件包:

apt list –installed

用 dpkg 命令显示已安装软件包:

dpkg-query -l

列出系统里 Snap 已安装软件包:

snap list

列出系统里 Flatpak 已安装软件包:

flatpak list

显示最近安装的软件包

现在你已经看过以字母顺序列出的已经安装软件包了。如何显示最近已经安装的软件包?

幸运的是,Linux 系统保存了所有发生事件的日志。你可以参考最近安装软件包的日志。

有两个方法可以来做。用 dpkg 命令的日志或者 apt 命令的日志。

你仅仅需要用 grep 命令过滤已经安装的软件包日志。

grep " install " /var/log/dpkg.log

这会显示所有的软件安装包,其中包括最近安装的过程中所依赖的软件包。

2019-02-12 12:41:42 install ubuntu-make:all 16.11.1ubuntu1
2019-02-13 21:03:02 install xdg-desktop-portal:amd64 0.11-1
2019-02-13 21:03:02 install libostree-1-1:amd64 2018.8-0ubuntu0.1
2019-02-13 21:03:02 install flatpak:amd64 1.0.6-0ubuntu0.1
2019-02-13 21:03:02 install xdg-desktop-portal-gtk:amd64 0.11-1
2019-02-14 11:49:10 install qml-module-qtquick-window2:amd64 5.9.5-0ubuntu1.1
2019-02-14 11:49:10 install qml-module-qtquick2:amd64 5.9.5-0ubuntu1.1
2019-02-14 11:49:10 install qml-module-qtgraphicaleffects:amd64 5.9.5-0ubuntu1

你也可以查看 apt 历史命令日志。这个仅会显示用 apt 命令安装的的程序。但不会显示被依赖安装的软件包,详细的日志在日志里可以看到。有时你只是想看看对吧?

grep " install " /var/log/apt/history.log

具体的显示如下:

Commandline: apt install pinta
Commandline: apt install pinta
Commandline: apt install tmux
Commandline: apt install terminator
Commandline: apt install moreutils
Commandline: apt install ubuntu-make
Commandline: apt install flatpak
Commandline: apt install cool-retro-term
Commandline: apt install ubuntu-software

显示最近已安装的软件包

apt 的历史日志非常有用。因为他显示了什么时候执行了 apt 命令,哪个用户执行的命令以及安装的软件包名。

小技巧:在软件中心显示已安装的程序包名

如果你觉得终端和命令行交互不友好,还有一个方法可以查看系统的程序名。

可以打开软件中心,然后点击已安装标签。你可以看到系统上已经安装的程序包名

在软件中心显示已安装的软件包

这个不会显示库和其他命令行的东西,有可能你也不想看到它们,因为你的大量交互都是在 GUI。此外,你也可以用 Synaptic 软件包管理器。

结束语

我希望这个简易的教程可以帮你查看 Ubuntu 和基于 Debian 的发行版的已安装软件包。

如果你对本文有什么问题或建议,请在下面留言。

 

列出 Ubuntu 和 Debian 上已安装的软件包的更多相关文章

  1. Linux之Ubuntu下如何查看已安装的软件/库文件【摘抄】

    本文属于实用性质,且属于摘抄别处,出自:[Ubuntu 下如何查看已安装的软件](http://blog.csdn.net/m1205979825/article/details/40855583) ...

  2. Linux下VirtualBox启动物理硬盘上已安装的Window 8系统

    创建虚拟机 1.创建一个没有硬盘的windows虚拟机,与已安装在物理硬盘上的系统一致.2.通过命令行在创建的虚拟机目录下创建一个指向物理硬盘的虚拟硬盘 VBoxManage internalcomm ...

  3. 在已有 Ubuntu 的基础上硬盘安装 Win7 实现双系统

    . . . . . LZ 的笔记本电脑一直安装的是 Ubuntu 系统,最近由于工作需要,要安装一个 Win7 系统.大家都知道,Linux 和 Windows 装双系统的时候要先装 Win 再装 L ...

  4. 在 Ubuntu 12.04 上通过安装源安装 Open vSwitch (OVS)

    先把Ubuntu 12.04更新一下 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade 删除 Ebtables包 s ...

  5. 在Ubuntu 16.04 上编译安装OpenCV3.2.0(Cmake + python3 + OpenCV3)(转)

    1 安装CMAKE sudo apt-get install cmake 2 安装python及其所依赖的软件包 sudo apt-get install build-essential sudo a ...

  6. Ubuntu 下如何查看已安装的软件

    1.查看安装的所有软件 dpkg -l 例如:dpkg -l | grep ftp <span style="font-size:18px;">:~$ dpkg -l ...

  7. Ubuntu dpkg 查询已安装的软件包

    要检查特定的包,比如firefox是否安装了,使用这个命令: dpkg -s firefox 要列出你系统中安装的所有包,输入下面的命令: dpkg --get-selections 你同样可以通过g ...

  8. Hadoop 3.1.0 在 Ubuntu 16.04 上的安装过程

    安装过程主要参考官方文档: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster. ...

  9. 关于电脑上已安装SqlServer2005再安装SqlServer23008r2的处理情况

    安装SqlServer2008r2可参考这个回答,带图很详细  https://xinzhi.wenda.so.com/a/1518683577611182 1.先修改2005注册表.win+R打开运 ...

随机推荐

  1. java面试-CountDownLatch、CyclicBarrier、Semaphore谈谈你的理解

    一.CountDownLatch 主要用来解决一个线程等待多个线程的场景,计数器不能循环利用 public class CountDownLatchDemo { public static void ...

  2. 【软件推荐】使用Cmder替换Windows自带的控制台

    安装地址 进入cmder官网,下载相应版本. 如果本地已经安装了git,可以选择mini版本. 将 λ 替换为 $ 当前cmder默认的提示符是λ,看上去总是有点不习惯. 打开cmder目录下的ven ...

  3. 简单模拟实现javascript中的call、apply、bind方法

    目录 引子 隐式丢失 硬绑定 实现及原理分析 总体实现(纯净版/没有注释) 写在最后 引子 读完<你不知道的JavaScript--上卷>中关于this的介绍和深入的章节后,对于this的 ...

  4. springboot项目整合mybatis

    记录创建springboot项目并配置mybatis中间件: 资源准备及版本说明 编程工具:IDEA JDK版本:1.8 Maven版本:Apache Maven 3.6.3 springboot版本 ...

  5. Css预编语言以及区别

    一.是什么 Css 作为一门标记性语言,语法相对简单,对使用者的要求较低,但同时也带来一些问题 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺 ...

  6. [Abp vNext 源码分析] - 18. 单元测试

    简介 ABP vNext 框架使用 xUnit 作为单元测试组件,官方的所有模块都编写了大量的 单元/集成测试 确保功能正常.由于 ABP vNext 模块化系统的原因,开发人员在建立单元测试项目的时 ...

  7. 网关Ocelot功能演示完结,久等了~~~

    前言 关于网关(Ocelot)的分享,还遗留一些功能没演示呢,接着来聊聊:这次重点针对网关Ocelot使用缓存.集成Polly做服务治理.集成IdentityServer4做认证授权来详细说说:如果对 ...

  8. windows下使用tail -f 命令查看实时日志

    经常在linux后台进行日志分析的同学对tail -f 这个命令肯定不陌生了,监控实时系统日志简直不要太方便.但是作为一个自动化测试工程师,我们的代码实际上在本地跑就够了,不需要部署,但是window ...

  9. C/C++ 实现VA与FOA之间的转换

    PE结构中的地址互转,这次再来系统的复习一下关于PE结构中各种地址的转换方式,最终通过编程来实现自动解析计算,最后将这个功能集成到我的迷你解析器中,本章中使用的工具是上次讲解PE结构文章中制作的CMD ...

  10. 病毒木马查杀实战第013篇:一个基于.NET的“敲竹杠”病毒研究

    前言 恶意程序发展至今,其功能已经从最初的单纯破坏,不断发展为隐私的窥探,信息的盗取,乃至如今非常流行的"敲竹杠"病毒,用于勒索.可见随着时代的发展,病毒的作者们往往也是想利用自己 ...