是否有任何软件或命令可以让我调出外部命令列表

是否有任何软件或命令可以让我调出外部命令列表

我的标题可能令人困惑,但举个例子可能有助于理解我的问题。例如:

我从以下位置安装了名为 bpytop 的资源监视器https://github.com/aristocratos/bpytop。现在,如果我打开终端并输入命令,bpytop程序就会启动。很好吧?现在我继续安装 y-ppa-manager 以及我们在终端中输入以打开的其他程序。

现在几天/几周/几个月过去了,我记不起要调出的命令bpytop,或者我想查看所有可以在终端中输入的命令,这些命令将通过终端执行程序。

是否有任何程序或命令可以像这样保存所有外部终端命令?

答案1

与其他答案不同,我的答案非常简单。

我保留了一个方便的文本文档,其中包含代码片段、已安装应用程序的命令 - 或者至少是如何启动它们,以及诸如此类的东西。

然后,除此之外,我使用别名函数对于很多事情来说。我使用别名来使命令更容易记住,或者至少更容易猜到。

例如:

alias update="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt clean -y"

因此,当我想要更新时,我只需在终端中输入“更新”,它就会为我完成所有这些过程,无需任何额外的监督。

接下来,也可能是最重要的一点,我在多个安装中甚至在完全不同的操作系统中使用这些别名。如果我使用 zypper,那么我可以使用相同的命令,但通过别名使用不同的后端。我不必记住所有各种命令,因为我记得别名。

我还保存了方便使用的文本文档,方便地将linuxterminalnotes.txt其命名为“文件”,并与我拥有的其他计算机共享。它不需要高科技解决方案,只需要网络连接或 USB 拇指驱动器。

唯一需要做的就是更新它。如果我安装了需要神秘终端条目的新东西,我会将其保存到文件中。我会将此文件以及我的各种别名文件备份到多个设备和多个位置。我唯一需要的技术是一个简单的文本编辑器。

答案2

如果你能记住(或猜出)命令的前几个字母,那么你可以使用 bash shell 的compgen内置命令来生成可能的命令补全前任。

compgen -A command bp

如果您不记得有关该命令的任何信息,那么compgen -A command或等效地compgen -c会为您提供所有可用命令的详尽列表 - 但它可能太长而无用(您可以将结果传输到less以便更容易翻阅)。

请注意,command此上下文包括 shell 内置命令、别名、函数和关键字。您可以按如下方式排除这些内容:

comm -23 <(compgen -c | sort) <({ compgen -abk ; compgen -A function; } | sort) | less

答案3

没有列出所有外部可执行文件的命令。但是,该工具dmenu附带一个小脚本,用于收集列表中的所有可执行文件。它被称为dmenu_path并具有以下内容:

#!/bin/sh

cachedir="${XDG_CACHE_HOME:-"$HOME/.cache"}"
cache="$cachedir/dmenu_run"

[ ! -e "$cachedir" ] && mkdir -p "$cachedir"

IFS=:
if stest -dqr -n "$cache" $PATH; then
    stest -flx $PATH | sort -u | tee "$cache"
else
    cat "$cache"
fi

您可以安装dmenu该脚本,也可以在您自己的脚本中复制/修改该脚本,listexecs以便获得列出所有可执行文件的命令。

找到命令的最简单方法可能就是运行dmenu_run。这将在 dmenu 菜单系统中显示该列表。您可以键入几个字母来缩小列表范围,然后使用 dmenu 的搜索功能找到您要查找的命令的名称。esc完成后按 。Enter将运行该应用程序。

相关内容