如何确定已安装的 Debian 包提供的可调用命令?

如何确定已安装的 Debian 包提供的可调用命令?

我是一个相对较新的 Linux 用户,所以今天我遇到了一个问题。我从发行版的 apt 存储库安装了一个模拟器前端(“visualboyadvance-gtk”),但安装完成后,我无法弄清楚该程序的终端命令是什么。通常,终端命令和包名称非常接近,所以我以前从未遇到过这个问题。(在这种情况下,命令最终是“gvba”;与存储库中的包名称完全不同。)

所以,我的问题是:是否有一种快速简便的方法来确定我已安装的任何包的终端命令?我查看了该软件包的“apt-cache show”信息,但其中没有实际的终端命令。我猜一定有办法用 APT 或 dpkg 或类似的东西找到这类信息。

答案1

我通常会

  dpkg -L packagename | grep -E '/s?bin/'

获取该包提供的所有内容的“可调用”列表。

规则很简单:按照Debian 政策(以及跳频)所有可由普通用户(非管理员)调用的程序必须将其二进制文件(或指向它们的链接,通常是符号)放在/bin/usr/bin1下,以及系统管理员可调用的所有程序必须将它们的二进制文件(或指向它们的链接)放在/sbin/usr/sbin1下。

任何本地程序(不是从软件包安装的,因此不属于“系统”的一部分)都必须将其可调用二进制文件放在/usr/local/bin或下/usr/local/sbin- 这些地方是“你的”,并且保证没有从官方存储库安装的软件包会将二进制文件放置/链接在那里。

如果你跑

echo $PATH

在普通用户的终端中,您将看到/bin和列出/usr/bin/usr/local/bin目录 — shell 会在此查找您要求其运行的非内置命令。超级用户也会sbin列出这些目录的“ ”版本。

最后还有一点小提示:您无法仅通过查看软件包提供的程序列表来确定哪些是命令行(“可在终端中调用”)或 GUI(需要连接 X 服务器),因为这两种程序都位于同一目录层次结构中。另一方面,那些希望集成到桌面环境中的 GUI 应用程序(例如 GNOME、KDE、XFCE、LXDE 等)通常会提供所谓的“桌面文件”(以扩展名结尾.desktop),这些文件为其程序提供了描述性标题、其用途的描述以及应用程序的调用方式。这些文件由桌面环境扫描并显示在其“应用程序菜单”中(或以类似的方式使用)。因此,如果您正在寻找这种程序,您可能会看到forgrep的输出。dpkg -L.desktop


1/usr和等级制度之间的区别/很微妙,现在 有争议的在以 Linux 为中心的社区中,所以我们不要离题讨论它。

答案2

您遇到的问题是,软件包可能包含许多命令,或者(如库的情况)根本不包含任何命令。

您可以使用 查看包的内容dpkg -L packagename。包中安装的所有内容/usr/bin都可从命令行运行,尽管并非所有命令都会给出非常合理的结果。

您还可以尝试搜索手册页——man -k visualboyadvance可能会给您提供一些有用的东西。

答案3

搜索在这里你的包裹

然后打开文件列表

下面的所有内容/usr/bin/都是您可以从终端使用的可执行文件。

仅针对你的情况地理信息系统

相关内容