我现在确实经常需要一些 git 或 docker 命令
(例如docker system prune -a
或docker stop $(docker ps -a -q)
。
我想知道您如何处理这些部分较长的命令?有没有办法存储和列出它们,例如git config --global --list
(但您看到的不仅仅是别名)?
“.zshrc”文件是保存命令/别名的标准方式吗?我如何列出它们?
使用别名很好,但我不想忘记原始命令 - 所以这就是我想要一个存储命令列表的原因。
更新:
现在我有了负责任的名字:我想要一个备忘单我可以在终端中调用它,$ git-cheat
然后就会出现我存储的 git 命令列表(就像 git 中的别名一样)。
你能给出一些建议吗?
非常感谢。
答案1
以下是使用 shell 脚本的相当简单的解决方案:
- 每个要保存的命令都放在一个两行 shell 脚本中,如下所示:
/bin/bash #!/bin/bash docker 系统 prune -a
- 所有这些脚本都放在一个目录中,如果您希望它们可以轻松访问,则可以将其添加到您的路径中。
- 假设它们都进入
~/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