按部分名称查找命令

按部分名称查找命令

有没有办法获取与特定(不区分大小写)模式匹配的所有命令的列表?例如,我知道命令(可能是别名)我正在寻找包含“diag”或“Diag”但我不确定实际的命令。

我目前在 Ubuntu 上使用 Bash,但我在这个网站上专门询问,因为我很想了解一种可在各种发行版上使用的方法(例如,稍后我在 CentOS 和 Manjaro 上也需要这项技能)。

我尝试过man iag希望它能像 Powershell 一样工作,help iag但这是行不通的。

我已经尝试过我的谷歌-fu但这似乎只能解释如何通过文件内文本的部分名称查找文件。

我尝试过以各种方式搜索这个 SE 网站(例如1,2)但没有找到我的问题的重复项。

如果您只记得命令的一部分,如何找到命令的确切名称?

答案1

用于compgen -c获取所有命令的列表,您也可以像这样使用它:

compgen -c dif

获取以“dif”开头的所有命令的列表。

将其与以下内容结合起来grep即可得到您正在寻找的内容:

compgen -c | grep -i diag

它查找任何包含“diag”的命令。使用正则表达式进行更灵活的搜索:

compgen -c | grep -i ^diag   # started with diag
compgen -c | grep -i diag$   # ended to diag

您还可以使用apropos查找命令,它搜索手册页名称和说明。

相关内容