如何获取已安装的所有具有 GUI 的应用程序列表?

如何获取已安装的所有具有 GUI 的应用程序列表?

我想要一份已安装且具有 GUI 的应用程序列表。明确地说,至少列出显示应用程序

我尝试了几个命令,例如,,apt list --installed来获取所有已安装应用程序的列表,但最终都缺少一些应用程序(例如dpkg -lfind '*.desktop'Android Studio、b1freearchiver、pyCharm 等

有没有办法找到显示应用程序菜单以获取其中列出的所有应用程序。

我正在运行 Ubuntu 18.04 桌面。

答案1

尝试搜索所有 .desktop 文件,Gnome 的开发者网站称他们为“用户可以运行的一组已注册的应用程序”而且它们几乎都是 GUI 程序。

这个答案(我如何找到 *.desktop 文件?)表示你可以使用以下方式在任何地方搜索 .desktop 文件

find / -name '*.desktop'

或者他们可能只是在/usr/share/applications/~/.local/share/applications那些应该足够:

find /usr/share/applications ~/.local/share/applications -name '*.desktop'

如果你特别想排除终端程序(即使它们有一个终端图形用户界面比如 htop),你可以把这些命令附加到上面的搜索中:

...  -print0 |xargs -0 grep -i -l "Terminal=False"

答案2

作为对@Xen2050 回答*.desktop您可以使用以下命令确定包含文件的 deb 包的确切包名称(以便 APT 知道它们) :

dpkg --search '*.desktop' | awk '{print $1}' | sed "s/://" | sort --unique

在上面的命令中:

  • dpkg --search '*.desktop'将搜索包含*.desktop文件的包;
  • |是从前一个命令的输出重定向到下一个命令的输入;
  • awk '{print $1}'将打印搜索结果的第一列(通常以表格形式plank: /usr/share/applications/plank.desktop- 因此您将获得plank:);
  • sed "s/://":将从包名称中删除不必要的内容(您将plank在这里得到);
  • sort --unique将对结果进行排序并删除重复项。

在我的 Ubuntu 16.04.5 LTS 上,它返回大约 347 个唯一的包名称。


如果你已经在主文件夹中安装了某些软件 - 那么你可以使用下面的命令

find ~ -name '*.desktop'

或更精确

find ~/.local/share/applications/ '*.desktop'

找到他们的*.desktop文件。

答案3

一般来说,这很难确定。其他答案没有解决命令行应用程序也可能有 .desktop 文件或 GUI 应用程序可能不提供 .desktop 文件的问题。此外,无法保证 .desktop 文件中引用的应用程序仍然存在于系统中(您必须运行它才能知道或检查 Exec= 行是否存在现有路径)。因此,这是一个糟糕的标准。

但是,我们可以提出一个更好的问题。哪些应用程序依赖于 GUI ?可以使用 找到apt-cache rdepends 'package or lib'。例如,apt-cache rdepends libappindicator将显示具有该库作为依赖项并可能提供此类小程序的软件包。

但公平地说,终端应用程序也可以与 GUI 交互,而无需实际拥有 GUI 界面。如果您的目标是寻找具有 GUI 前端的应用程序,请寻找依赖于 Gtk 或 Qt 库的应用程序

当然,这也取决于软件包维护者是否正确提供了软件包的依赖项描述。对于标准 Ubuntu 存储库,这是可以的。对于外部 PPA,这取决于开发人员和维护者。

相关内容