如何列出系统中安装的所有应用程序?

Dan*_*ela 23 command-line apt

我知道,我只能点击Super+A来查看 Ubuntu 中所有已安装的应用程序,但我需要一个命令来列出它们的名称。命令

dpkg --get-selections | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

也不是一个选项,因为它显示了所有已安装的软件包,并且包含驱动程序、内核和库。

Rad*_*anu 18

我为想要以良好方式使用 bash 的人提出了这个答案。很明显,问题的答案与来自 的文件列表有关/usr/share/applications,但问题是ls永远不应该解析命令。过去,我犯了同样的错误,但现在我了解到最好的方法是使用for循环来迭代文件,即使我必须使用我宝贵的键盘上的更多键:

for app in /usr/share/applications/*.desktop; do echo "${app:24:-8}"; done
Run Code Online (Sandbox Code Playgroud)

我还用在前面的命令字符串操作的操作:从除去app前24个字符,其是/usr/share/applications/和最后8个字符构成.desktop


更新:

另一个可以找到 Dash 显示的应用程序的地方是~/.local/share/applications/*.desktop. 因此,您还需要运行以下命令:

for app in ~/.local/share/applications/*.desktop; do echo "${app:37:-8}"; done
Run Code Online (Sandbox Code Playgroud)

要统一前两个命令,可以使用:

for app in /usr/share/applications/*.desktop ~/.local/share/applications/*.desktop; do app="${app##/*/}"; echo "${app::-8}"; done
Run Code Online (Sandbox Code Playgroud)


Bra*_*iam 7

要获取所有已安装应用程序及其名称的列表,最简单的方法是:

sudo apt-get install aptitude
aptitude -F' * %p -> %d ' --no-gui --disable-columns search '?and(~i,!?section(libs), !?section(kernel), !?section(devel))'
Run Code Online (Sandbox Code Playgroud)

它会给你一个很好的列表,列出所有安装的包,这些包不是库,不是内核,不是像这样的开发包:

* zip -> Archiver for .zip files 
* zlib1g -> compression library - runtime 
* zlib1g-dev -> compression library - development 
* zsh -> shell with lots of features 
* zsh-common -> architecture independent files for Zsh 
Run Code Online (Sandbox Code Playgroud)

它更完整,因为它还列出了不会出现在.desktop文件中的非 GUI 应用程序