使用最新 CLI 工具的 help 子命令

使用最新 CLI 工具的 help 子命令

我不太确定这是否已成为一个普遍问题,或者是否只是我最近在 OpenStack 上进行了大量工作。无论如何,我注意到一些命令,例如整套 OpenStack 命令 和git,使用子命令提供有关其子模块的信息help,例如

  • neutron help security-group-rule-create
  • git help clone

这并不是很好的工作方式,因为每次我对某些事情感到不确定甚至遇到错误时,我都必须

  1. 向左滚动,
  2. 添加“帮助”,
  3. 按回车键,
  4. 阅读帮助,
  5. 按向上箭头,
  6. 一直向左滚动,
  7. 删除“帮助”,
  8. 按回车键

我知道 git 有可用的手册页,我只是想添加 OpenStack 命令之外的另一个示例。

我更愿意有一些组合键,甚至是一个简短的命令来修改最后一个命令(我可以通过按向上箭头键来调用该命令)并插入“help”作为第二个单词或删除第二个单词,如果是“帮助”的话。

我正在使用 Bash,所以我正在考虑使用fc和别名,但我根本无法完成这项工作。我认为 fc 的模式仅限于字符串替换,无法处理诸如“第二个单词”之类的复杂事物。

最棒的解决方案是“enter”的修饰符,这样我就可以使用向上箭头键或 ctrl+r 来搜索命令,当我找到所需的命令时,我按 ctrl+enter 来执行它,但是在执行之前,“help”会自动插入为命令的第二个字。或者,当我按 alt+enter 执行所需的命令时,“help”将在执行前作为命令的第二个单词被删除。然而,我不知道该怎么做。

答案1

我们可以作弊并创建一个名为 的简单命令h,并将其放在您的路径中:

例如

#!/bin/sh

cmd="$1"
shift

echo Running $cmd help "$@"
$cmd help "$@"

现在您可以简单地h !!插入help消息,例如

$ git foo bar baz
....
$ h !!
h git foo bar baz
Running git help foo bar baz
...

您的h命令可以根据需要变得复杂;例如,对任何命令的特殊解析可能需要的不仅仅是放在help前面。

阅读帮助后,您只需按up-arrow两次即可返回真正的命令。

相关内容