今天早上我刚刚经历了漫长的过程,试图识别一个正在运行的应用程序。这是为了今天早上报告一个错误,但我最终向 AskUbuntu 发布了一个关于它的问题。
这次我侥幸找到了答案。
我尝试启动gnome-system-monitor
(发布名称:“系统监视器”),但我无法确定我正在寻找的应用程序。
我尝试转到应用程序的菜单 > 关于,但没有显示应用程序的实际名称。这是 > About 的截图gnome-software
,它只显示了“Ubuntu Software”的发布名称。
我在网络上搜索了“ubuntu 软件”,看看是否有任何搜索结果显示了应用程序的名称。我找到了一个维基百科页面,上面写着“开发于 2015 年结束,在 Ubuntu 16.04 LTS 中它被 GNOME 软件取代”。我点击了GNOME Software的链接,但应用程序的名称也没有显示在那里。
因此我无法报告错误,所以我来到了 AskUbuntu。我搜索了“ubuntu 软件”,并在某处看到了“gnome-software”这个名称。
我打开了一个终端,使用了 command gnome-software
,并启动了正确的应用程序。
我最终在 AskUbuntu 中问了一个问题,而不是报告这个错误。但是,在过去 10 年左右的时间里,我多次遇到过同样的问题,我非常想一劳永逸地解决它。
是否有一种快速简便的方法来识别当前正在运行的应用程序的实际名称?
PS 这个问题被标记为重复“这个问题在这里已经有了答案:
如何确定应用程序的进程名称? 1 个答案”,它有效地回答了我的问题“是否有一种快速简便的方法来识别当前正在运行的应用程序的实际名称?”,但实际上我从@waltinator 收到的答案似乎提供了一种方法(通过xprop
命令)。
据我所知,没有默认方法可以做到这一点。
在命令行上,您可以使用
xprop
获取有关窗口的信息(光标会改变,您应该单击窗口)。输出通常有一行以
_NET_WM_PID
包含程序的 PID 开头,您可以使用例如找到程序的命令。
您可以将所有这些放在一个 shell 脚本中并
zenity
用于图形显示:将其保存为文件,使其可执行并为其分配热键。
我想在某些情况下它不起作用或显示错误的结果,但通常它至少应该有帮助。
从包装中使用
xwininfo
(参见man xwininfo
) 。x11-utils
为了演示,我xwininfo -all
在终端窗口中运行,并按照提示单击此窗口。它所说的第一部分是:还有
xlsclients
和xprop
(见man page
)可能有用。尝试
在此示例中,应用程序的“通用”名称是,而在类似is
Access Prompt
的输出中显示的名称。ps -o pid,ppid,stime,time,command -u $USER
gcr-prompter
这种方法有两个限制:
- 它只查找
/usr/share/applications
(因为这是大多数 .desktop 文件所在的位置)。但是一些 .desktop 文件可能只在~/.local/share/applications
.- 根据您定义“应用程序”的方式,某些应用程序可能没有 .desktop 文件。在这种情况下,应用程序的“通用”名称和实际名称将相同。