如何找出应用程序的终端命令?
我想在终端中使用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,您可以使用以下两个命令之一: lowriter
或libreoffice --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来打印命令