我刚刚了解到,如果你在 Mac 终端上按住ESC,几秒钟后就会出现一个提示,显示系统上可用的每个命令,包括别名、内置命令和 PATH 上的可执行文件。
来源:http://www.mactricksandtips.com/2008/05/list-all-possible-terminal-commands.html
但是,输出是通过more
过滤器显示的,我无法grep
将其通过管道传输到另一个命令。
有人知道这个神奇的输出是如何生成的吗?它只是由终端动态生成的吗?是否有可以在命令行上显式调用并获得相同结果的 bash 命令?
这主要是出于好奇,但我希望能够将结果以文本形式获取,以便进行后期处理,而不仅仅是在屏幕上浏览。
答案1
正如 Ignacio Vazquez-Abrams 所评论的那样,此功能来自狂欢完成功能。康普根内置命令提供对该功能的访问。
您可以像这样访问命令完成:
# all commands
compgen -c
# command starting with "ls"
compgen -c ls