存储和列出命令的最佳方法是什么(尤其是对于 git 和 docker)(就像一张备忘单)

存储和列出命令的最佳方法是什么(尤其是对于 git 和 docker)(就像一张备忘单)

我现在确实经常需要一些 git 或 docker 命令
(例如docker system prune -adocker stop $(docker ps -a -q)

我想知道您如何处理这些部分较长的命令?有没有办法存储和列出它们,例如git config --global --list(但您看到的不仅仅是别名)?
“.zshrc”文件是保存命令/别名的标准方式吗?我如何列出它们?

使用别名很好,但我不想忘记原始命令 - 所以这就是我想要一个存储命令列表的原因。


更新:
现在我有了负责任的名字:我想要一个备忘单我可以在终端中调用它,$ git-cheat然后就会出现我存储的 git 命令列表(就像 git 中的别名一样)。

你能给出一些建议吗?

非常感谢。

答案1

以下是使用 shell 脚本的相当简单的解决方案:

  1. 每个要保存的命令都放在一个两行 shell 脚本中,如下所示:
/bin/bash #!/bin/bash
docker 系统 prune -a
  1. 所有这些脚本都放在一个目录中,如果您希望它们可以轻松访问,则可以将其添加到您的路径中。
  2. 假设它们都进入~/cheat-sheet/,以下脚本应该输出一个将文件名映射到它运行的命令的列表:
/bin/bash #!/bin/bash
命令=`ls ~/cheat-sheet/`
对于命令中的项目;执行
    cmd=`tail -n 1 ~/cheat-sheet/${item}`
    回显“${item}: ${cmd}”
完毕

请注意,这要求您为每个脚本提供合理的描述性名称才能使用,但这可能是不使用额外软件的最快选项之一。

答案2

如果您有兴趣,我现在已经实现了一个解决方案并将其发布在 github 上。(更多功能将于今天或明天推出)

https://github.com/m1well/cheatsheet/

问题

我现在经常使用
$ docker system prune -a或之类的命令$ git reset --soft HEAD^
,如果我需要它们,我不想在谷歌上搜索它们,而且现在还记不住它们。

别名很酷,但如果我开始只使用别名,有人问我“我如何重置我的提交?”——当然我不能告诉他我的别名。;)
shell 历史记录也很酷,但有点太长了(即使你 grep)。

解决方案

一个可以存储我使用的所有 shell 命令、列出它们、添加新命令以及删除命令的工具。

因此,如果我搜索例如停止所有 docker 容器的命令,我会在存储的命令中搜索:
$ sh script_cheatsheet.sh -l 'docker stop'
然后我会得到存储的输出的答案:
//-----------------------------//
//-------- cheatsheet --------//
list of greped commands:
docker stop $(docker ps -a -q)
//-----------------------------//

用法

您只需运行脚本然后...

...向你的备忘单添加一个命令:
$ sh script_cheatsheet.sh -a 'git commit --amend'
...显示你的备忘单中的所有命令:
$ sh script_cheatsheet.sh -l all
...显示你的备忘单中的特定命令:
$ sh script_cheatsheet.sh -l 'commit'
...从你的备忘单中删除一个命令:
$ sh script_cheatsheet.sh -r 'git commit --amend'
...从你的备忘单中删除所有命令:
$ sh script_cheatsheet.sh -r all

此外,您还可以...

...检查使用方法/帮助:
$ sh script_cheatsheet.sh -h
...检查版本:
$ sh script_cheatsheet.sh -v

暗示

为了更好地使用,最适合创建一个别名,
alias cheat="sh [path-to-script]/script_cheatsheet.sh"
以便您可以像这样运行该工具:
$ cheat -l all

相关内容