Ubuntu – How to list all applications installed in the system

aptcommand line

I know, I just can hit Super+A to see all installed apps in Ubuntu, but I need a command to list their names. The command

dpkg --get-selections | awk '{print $1}'

is also not an option because it shows all installed packages and it contains drivers, kernels and libraries.

Best Answer

I came up with this answer for people who wants to use bash in a good way. It's clear that the answer of the question is related to the listing of the files from /usr/share/applications, but the problem is that ls command shouldn't be parsed ever. In the past, I was doing the same mistake, but now I learned that the best way is to use a for loop to iterate over the files, even if I must use some more keys from my precious keyboard:

for app in /usr/share/applications/*.desktop; do echo "${app:24:-8}"; done

I also used in the previous command string manipulation operations: removed from app first 24 characters which are /usr/share/applications/ and last 8 characters which are .desktop.


Update:

Another place where you can find applications shown by the Dash is ~/.local/share/applications/*.desktop. So you need to run the following command as well:

for app in ~/.local/share/applications/*.desktop; do echo "${app:37:-8}"; done

To unify the previous two commands, you can use:

for app in /usr/share/applications/*.desktop ~/.local/share/applications/*.desktop; do app="${app##/*/}"; echo "${app::-8}"; done