![如何判断哪个命令打开了应用程序?](https://linux22.com/image/12276/%E5%A6%82%E4%BD%95%E5%88%A4%E6%96%AD%E5%93%AA%E4%B8%AA%E5%91%BD%E4%BB%A4%E6%89%93%E5%BC%80%E4%BA%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我的系统中有时会安装一个应用程序,但我不知道如何从命令行运行该应用程序。
lsof
为了找到答案,我通常在从 GUI 运行应用程序后Google 或搜索(并不总是成功)的输出。
必须有一种更简单的方法。它是什么?
答案1
可以从桌面环境启动的应用程序描述为.desktop
文件,它们存储在/usr/share/applications
和~/.local/share/applications
(严格来说,对应的XDG目录,但这些是默认设置)。给定应用程序名称(如桌面环境所示),您可以在这些文件中查找它并找到相应的Exec
行。
为此,您可以使用 GUI 菜单编辑器,例如 GNOME 的 Alacarte 或自由菜单,或在命令行中搜索。
Alacarte(GNOME 中的“主菜单”)显示所有可用的应用程序,每个条目的属性显示相应的命令:
在终端窗口中,可以使用以下命令找到此“用户”应用程序
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
;这些是参数(例如文件)的占位符。