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.