Finding a package (online):

apt-cache search $search_string

Finding available versions of a package:

apt-cache policy $package_name

Installing/pinning a specific version:

apt-get install --allow-downgrades $package_name=$package_version
apt-mark hold $package_name

Finding full details of a package:

apt-cache show $package_name

Dry-run installation:

apt-get install -s $package_name

Finding an installed package:

apt list --installed | grep $search_string

Listing installed kernel packages:

dpkg --list | egrep 'linux-image|linux-headers' | awk '/ii/{print $2}'

Finding what package a file came from:

dpkg -S /path/to/file

Finding what files a package provides:

dpkg -L $package_name

Find what a package depends on:

apt-cache depends $package_name

Find what depends on a package:

apt-cache rdepends $package_name

APT history:

cat /var/log/apt/history.log
zcat /var/log/apt/history.log.*.gz
zgrep "$package" /var/log/apt/history.log.*.gz

APT log (captures output of APT operations)

less /var/log/apt/term.log
zless /var/log/apt/term.log.*.gz