我想要一份已安装且具有 GUI 的应用程序列表。明确地说,至少列出显示应用程序。
我尝试了几个命令,例如,,apt list --installed
来获取所有已安装应用程序的列表,但最终都缺少一些应用程序(例如dpkg -l
find '*.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,这取决于开发人员和维护者。