当前位置: 首页>>技术问答>>正文


如何找出应用程序的终端命令?

, ,

问题描述

我想在终端中使用Unity Launcher上显示的一些应用程序,但我需要知道运行它们的相应命令。我怎样才能做到这一点?

最佳解决方法

大多数默认应用程序将具有位于/usr/share/applications中的.desktop文件。

要了解在启动其中一个应用程序时将运行的相应终端命令,请打开文件浏览器Nautilus,然后右键单击应用程序的图标以在上下文菜单中选择“属性”。这将为您提供所需的所有详细信息(此处显示将运行gnome-control-center -overview的系统设置)

unity,command-line,ubuntu

次佳解决方法

如果通过存储库或dpkg安装了应用程序,则可以使用以下命令:

dpkg -l | grep "application name"

这将搜索所有已安装的应用程序,并搜索其描述;搜索描述是这里的重要部分,因为描述通常包含应用程序的名称,即使运行它的”command”不包含应用程序名称。

例:

在GNOME中,有一个名为Disk Usage Analyzer的应用程序。但是,从终端运行它的命令不是disk-usage-analyzer。要查找其命令,您可以运行:

dpkg -l | grep "disk usage"

输出应包含此条目:

alaa@aa-lu:~$ dpkg -l | grep "disk usage"
ii  baobab            3.6.4-0ubuntu1          i386         GNOME disk usage analyzer

看第二栏。实际运行磁盘使用率分析器的命令是baobab

第三种解决方法

你可以做的是使用xprop:它可以让你点击一个应用程序并显示信息。要获取名称,请输入终端:

xprop | grep WM_CLASS

如果WM_CLASS不起作用,请尝试使用WM_COMMAND

第四种方法

首先,通过在终端中运行synaptic来打开Synaptic。在快速筛选框中键入应用程序的名称。举个例子,我将使用LibreOffice Writer。在Synaptic过滤器中键入应用程序的名称:

unity,command-line,ubuntu

它显示为第一个安装结果(小绿框),第一列中包含完整包名libreoffice-writer

现在,尝试在终端中运行libreoffice-writer。有时包会运行,但在这种情况下它不起作用:

unity,command-line,ubuntu

现在,如果你回顾Synaptic,你会发现第一个结果是libreoffice包。您可以在终端中运行libreoffice,在这种情况下,您将获得此窗口:

unity,command-line,ubuntu

或者,您可以在终端中键入man libreoffice。如果你看看这两个截图:

unity,command-line,ubuntu

unity,command-line,ubuntu

您可以看到,要直接启动LibreOffice Writer,您可以使用以下两个命令之一:lowriterlibreoffice --writer。两者都同样有效。

第五种方法

某些程序或应用程序只是由二进制文件运行。通过应用程序的名称,可以找出二进制文件的位置。

whereis name-of-application

ergo小例子:

$ whereis gparted
gparted: /usr/sbin/gparted /usr/share/man/man8/gparted.8.gz

您只需接管/usr/sbin/gparted – 即可在icon或application-name(如cairo-dock)的条目中运行此应用程序。 (在这种情况下运行gparted root-password是必要的)。

第六种方法

xprop允许查找正在运行的窗口的PID,而ps允许查找与PID对应的命令。通过将两者结合在一起,我们可以找到对应于窗口的命令,如下所示:

ps --no-headers -p $(xprop | awk -F '=' '/_NET_WM_PID/{print $2}') -o cmd 

xprop将光标变为X,您可以使用它来点击窗口,它将返回PID,然后ps将使用该PID打印命令

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1326.html,未经允许,请勿转载。