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

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

大多数默认应用程序都有一个位于/usr/share/applications.desktop文件。

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

应用程序启动器属性视图

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

 dpkg -l | grep "application name" 

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

例:

在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 。 在Synapticfilter中键入应用程序的名称: 在此处输入图像描述

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

现在,尝试在终端中运行libreoffice-writer 。 有时包会运行,但在这种情况下它不起作用: 在此处输入图像描述

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

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

您可以看到,要直接启动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 – 来运行这个应用程序gparted in icon of item或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来打印命令