How can I know which commands were installed with a package?

Short answer:

dpkg -L packagename | grep 'bin/'

Long answer:

To get a list of all files installed in a package (say moreutils), run this command:

dpkg -L moreutils

Now, all we need to do is filter out the ones that are executable files in the path. In general, commands are installed to /bin, /sbin, /usr/bin and /usr/sbin, so we can simply match those patterns:

dpkg -L moreutils | grep -e '^/bin/' -e '^/sbin/' -e '^/usr/bin/' -e '^/usr/sbin/'

If you want something that's easier to memorise, but not completely accurate, just filter out lines with bin/ instead:

$ dpkg -L moreutils | grep 'bin/'
/usr/bin/isutf8
/usr/bin/pee
/usr/bin/errno
/usr/bin/vidir
/usr/bin/zrun
/usr/bin/lckdo
/usr/bin/ifne
/usr/bin/mispipe
/usr/bin/parallel
/usr/bin/sponge
/usr/bin/ts
/usr/bin/ifdata
/usr/bin/vipe
/usr/bin/chronic
/usr/bin/combine

So, in this example, I have discovered these commands: isutf8, pee, errno, etc.


Some packages don't install commands into the path, but do install an icon for the GUI app. If you want to find the command that launches the application, you will need to find the installed .desktop file, and look at the line beginning with Exec=. For example:

$ dpkg -L worldofgoo | grep '\.desktop$'
/usr/share/applications/WorldOfGoo.desktop

$ grep '^Exec=' /usr/share/applications/WorldOfGoo.desktop 
Exec=/opt/WorldOfGoo/WorldOfGoo

So in this example, I have discovered that I should run /opt/WorldOfGoo/WorldOfGoo to launch World Of Goo from the terminal.