如何有效的管理较少使用的 shell command

2020-02-14 02:14:52 +08:00
 AntiGameZ
平时有一些 shell 命令(比如用 curl 请求某个地址获取一个状态)。使用频率不高,可能几周才会用到一次。原本都是自己起个名字存为 alias。但是实际操作来看,虽然用 alias 命令是短了很多,但是因为用得少,忘的依旧快。

现在土办法直接 local 存了一个文本文件去管理这些 shell 命令,统计了一下,大概有 300 来个不同的命令。

如果 shell 里也有类似 Postman 一样的请求管理就好了,可以按照 collection 对不同的命令进行分类管理,要用的时候打开运行一下就行。目前我是 iTerm2 + zsh

不知道大佬们有什么经验可以指教一下,谢谢。
5052 次点击
所在节点    程序员
46 条回复
msg7086
2020-02-14 02:26:09 +08:00
不如写成脚本?然后可以分目录存放了,还能扔进源代码管理。
AntiGameZ
2020-02-14 02:48:40 +08:00
@msg7086 是有这么做,但是最终问题变成一样的了。

之前我是这么做的:
* 一行的命令我给起个 alias
* 复杂的命令,我给写成一个脚本保存为一个文件,再弄一个 alias 去调用他
然后我就得到了一堆 alias。然后某天我想做某事的时候,只记得自己有这么一个 alias,但是具体是哪个还得查记事本。

后来尝试把 alias 的名字按照下划线分割进行归类,比如 service_action_description 这种方式。这样做的好处就是搜历史记录以及联想的时候效率高一些,但是也还是没有解决根本问题。
fuermosi777
2020-02-14 02:57:29 +08:00
要是有一个轻型的运行在 menubar 的 command manager 软件就好了。需要运行时直接快速搜索回车复制或者 call terminal run。要是有时间我就自己写一个。但是没时间。
charlie21
2020-02-14 03:13:35 +08:00
sqlite
msg7086
2020-02-14 03:23:33 +08:00
我没听明白,为啥你都有脚本了还要写 alias ?
AntiGameZ
2020-02-14 03:37:22 +08:00
@msg7086 可能我没说明白

curl 请求一个地址是一条命令
运行一个脚本也是一条命令

我的目的是在想调用我想运行的命令 /脚本,并且尽可能有个树形结构可以方便的让我去浏览我有哪些脚本,而不是靠记忆或者查一个记事本,大概这样的一个需求。
AntiGameZ
2020-02-14 03:38:07 +08:00
@fuermosi777 应该是有的,我之前用过一段时间 Paste,但是随着命令变得多了(比如我现在有 300 来个),就不是很好管理了,还不如记事本
wzxlovesy
2020-02-14 04:34:52 +08:00
navi
wzxlovesy
2020-02-14 04:35:33 +08:00
Livid
2020-02-14 05:16:02 +08:00
可以用一个 CLI framework 写一个入口:

https://docs.builtoncement.com/
AntiGameZ
2020-02-14 05:31:14 +08:00
@wzxlovesy 谢谢

@Livid 简单看了一下 Cement 的文档,感觉可行, 谢谢。
wweir
2020-02-14 06:01:29 +08:00
subcommand prefix search
reverse search
Livid
2020-02-14 06:32:42 +08:00
@AntiGameZ 用这样的框架包了之后,就可以用这种方式来找你想要的指令:

--help|grep
mrytsr
2020-02-14 06:51:25 +08:00
ctrl-r
rayhy
2020-02-14 07:05:09 +08:00
单行命令就一行行保存到一个文件里,用的时候用 fzf 搜一下并执行?
conn4575
2020-02-14 07:25:08 +08:00
我都是把这种语言自己写的一些小函数都放在一个 toolkit 的仓库里,要用的时候去复制黏贴
Sainnhepark
2020-02-14 07:41:25 +08:00
我的解决方法是一个自己写的 tmux 插件,用 fzf 来管理 tmux. 有个 feature 就是自定义一堆命令,然后用 fzf 去选。

https://github.com/sainnhe/tmux-fzf
wupher
2020-02-14 08:22:52 +08:00
TextExpander 你可以就用 alias,然后分组,标签,说明,应该足够管理了吧。

也可以用 gist 做 snippet 管理
oneisall8955
2020-02-14 09:02:42 +08:00
对于这种可以复制粘贴的,我都记录到 ditto 里面分组及备注关键字,设置禁止自动移出。有点问题的是这个同步略麻烦
mcfog
2020-02-14 09:04:11 +08:00
fzf 直接搜索 history 不就可以了( c-r )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/644435

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX