如何判断哪个命令打开了应用程序?

如何判断哪个命令打开了应用程序?

我的系统中有时会安装一个应用程序,但我不知道如何从命令行运行该应用程序。

lsof为了找到答案,我通常在从 GUI 运行应用程序后Google 或搜索(并不总是成功)的输出。

必须有一种更简单的方法。它是什么?

答案1

可以从桌面环境启动的应用程序描述为.desktop文件,它们存储在/usr/share/applications~/.local/share/applications(严格来说,对应的XDG目录,但这些是默认设置)。给定应用程序名称(如桌面环境所示),您可以在这些文件中查找它并找到相应的Exec行。

为此,您可以使用 GUI 菜单编辑器,例如 GNOME 的 Alacarte 或自由菜单,或在命令行中搜索。

Alacarte(GNOME 中的“主菜单”)显示所有可用的应用程序,每个条目的属性显示相应的命令:

Alacarte 屏幕截图显示了“用户”启动器属性

在终端窗口中,可以使用以下命令找到此“用户”应用程序

grep -l Name.\*=Users {/usr,~/.local}/share/applications/*.desktop |
xargs -r grep Exec=

由此可见

Exec=gnome-control-center user-accounts

确实如此,

gnome-control-center user-accounts

在命令行上打开相应的面板。

对于数据库浏览器,您可以运行

grep -l "Name.*=DB Browser" {/usr,~/.local}/share/applications/*.desktop |
xargs -r grep Exec=

在某些情况下,该Exec行会有额外的参数,例如 %f;这些是参数(例如文件)的占位符。

相关内容