问题描述
我想在终端中使用Unity Launcher上显示的一些应用程序,但我需要知道运行它们的相应命令。我怎样才能做到这一点?
最佳解决方法
大多数默认应用程序将具有位于/usr/share/applications
中的.desktop
文件。
要了解在启动其中一个应用程序时将运行的相应终端命令,请打开文件浏览器Nautilus,然后右键单击应用程序的图标以在上下文菜单中选择“属性”。这将为您提供所需的所有详细信息(此处显示将运行gnome-control-center -overview
的系统设置)
次佳解决方法
如果通过存储库或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过滤器中键入应用程序的名称:
它显示为第一个安装结果(小绿框),第一列中包含完整包名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
– 即可在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打印命令