如何查询我今天安装的软件包?

如何查询我今天安装的软件包?

如何查询今天或者昨天安装的软件包?

答案1

下面的 awk oneliner 命令将显示今天或昨天安装的所有软件包,

awk -v foo=$(date '+%Y-%m-%d') -v bar=$(date -d "yesterday" '+%Y-%m-%d') '($1==foo || $1==bar) && $3~/^install$/ { print $4 }' /var/log/dpkg.log

解释:

  1. -v-> 分配给 awk 变量的值是通过-v参数完成的。语法是,-v variable=value。awk 会将此变量用于其他目的。

  2. foo=$(date '+%Y-%m-%d') -v bar=$(date -d "yesterday" '+%Y-%m-%d')

    • date '+%Y-%m-%d',打印当前日期。此命令的输出被赋值给变量foo

    • date -d "yesterday" '+%Y-%m-%d',打印昨天的日期。它的输出再次作为值存储到变量中var

  3. '($1==foo || $1==bar) && $3~/^install$/ { print $4 }'

    • ||->逻辑或运算符,&&->逻辑与运算符。

    • ($1==foo || $1==bar) && $3~/^install$/-> 检查列号 1 中的值是否与变量的值匹配foo包含当前日期或者bar列号 1 与(的值匹配包含昨天的日期install第 3 列中必须有一个字符串。如果满足这些条件,awk 将打印第 4 列的值 (包裹名字)。

  4. /var/log/dpkg.log-> 输入文件。

答案2

您可以在您最喜欢的文本查看器中打开 apt 日志,它们位于/var/log/apt/history.log

答案3

您可以使用以下命令查询特定日期已安装的包:

$ grep install /var/log/dpkg.log.1 | grep <yyyy-mm-dd> //specify date that you want to check.

e.g

$grep install /var/log/dpkg.log.1 | grep "2014-04-22"

答案4

使用这个脚本:

#!/bin/bash
today=$(date '+%Y-%m-%d')
yesterday=$(date -d "yesterday" '+%Y-%m-%d')
echo 'today : '$today
grep $today < /var/log/apt/history.log -A2 | grep Install | cut -d':' -f2
echo 'yesterday : '$yesterday
grep $yesterday < /var/log/apt/history.log -A2 | grep Install | cut -d':' -f2

相关内容