Is there a command that outputs ONLY the packages explicitly installed by the user? (ubuntu/debian)
aptitude search '~i!~M!~E!~prequired!~pimportant'
will list all the packages which have been installed without being marked as automatically installed, excluding essential and required packages, which is pretty much what you're looking for.
~i lists packages which are installed,
!~M filters packages which are marked as automatically installed,
!~E filters essential packages,
!~pimportant filter required and important packages. The latter three filters will catch quite a few packages installed by default.
On Ubuntu, you can add
!~Rubuntu-desktop!~Rrecomends:ubuntu-desktop to filter out all the packages which
ubuntu-desktop depends on or recommends, and which are installed by default:
aptitude search '~i!~M!~E!~prequired!~pimportant!~Rubuntu-desktop!~Rrecommends:ubuntu-desktop'
comm -23 <(apt-mark showmanual | sort -u) \ <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
This gets the correct list of user-installed packages, to a better approximation than the answer from @Stephen Kitt.