我为 Terminal 构建了一个 Command Manager(你也可能需要它)

发布: (2026年3月16日 GMT+8 14:36)
4 分钟阅读
原文: Dev.to

Source: Dev.to

终端命令管理器的封面图片 (我构建了一个终端命令管理器,你可能也需要它)

GitHub:

问题

作为开发者,我们经常使用终端,但我们的命令工作流却很混乱:

  • Shell 历史 难以导航且持久性差。
  • 别名 只在会话期间有效,且无法处理复杂脚本。
  • 文档 容易过时或散落在随机文件中。
  • 脚本 分散在不同目录下。

我们需要一种更好的方式来管理我们的命令工具集。

介绍 Pock

Pock 是一个命令管理器,像终端的书签一样工作。使用简单的名称保存任何命令,立即运行,并保留完整的执行历史。

快速开始

# 安装 (macOS)
brew install pock  # (即将推出)
# 或从发布页面下载

# 保存命令
pock add deploy "git push origin main"

# 运行它
pock run deploy

# 查看所有已保存的命令
pock list

核心特性

1. 保存命令和脚本

# 保存内联命令
pock add sync-db "pg_dump production | psql development"

# 保存脚本文件(内容会被存储)
pock add release ./scripts/release.sh -d "Production release"

2. 执行历史

每次运行的命令都会记录:

  • 时间戳
  • 退出码
  • 完整的 stdout/stderr 输出
  • 执行时长
pock history deploy --output

3. 导入 / 导出

与团队共享命令库:

# 导出你的命令
pock export my-commands.json

# 团队成员导入
pock import my-commands.json

为什么选择它?

  • 单一二进制分发(无依赖)
  • 出色的 CLI 工具链(Cobra、Viper)
  • 跨平台编译
  • 启动速度快
  • 安装简便

技术架构

pock/
├── cmd/           # Cobra 命令
├── internal/
│   ├── storage/   # SQLite 数据库层
│   └── helpers/    # 配置和工具函数
└── pkg/           # 公共包
  • 存储: 使用 SQLite(通过 bbolt/bolt)保存本地数据
  • CLI 框架: Cobra + Viper
  • 输出捕获: 自定义 exec 包装器

实际使用案例

# 开发工作流
pock add dev "docker-compose up -d && npm run dev"
pock add test "npm run lint && npm test && npm build"

# 数据库任务
pock add db-backup "./scripts/backup-db.sh"
pock add db-reset "dropdb myapp && createdb myapp && npm run migrate"

# 部署
pock add deploy-staging "./deploy.sh staging"
pock add deploy-prod "./deploy.sh production"

接下来有什么计划?

  • 社区市场,用于共享命令
  • 命令调度 / cron 集成
  • 团队协作功能
  • VS Code 扩展
  • 用于命令管理的 Web UI

试一试!

安装

# macOS
curl -L https://github.com/ddev94/pock/releases/download/v1.0.1/pock-1.0.1.pkg -o pock-1.0.1.pkg
open pock-1.0.1.pkg

# Linux
wget https://github.com/ddev94/pock/releases/download/v1.0.1/pock-1.0.1-1.x86_64.tar.gz
tar -xzf pock-1.0.1-1.x86_64.tar.gz
sudo cp pock-1.0.1/usr/local/bin/pock /usr/local/bin/

GitHub:

欢迎反馈!

我很想了解:

  • 你会首先保存哪些命令?
  • 缺少哪些功能?
  • 你遇到的任何 bug 或问题

在 GitHub 上留下评论或打开 issue 吧! ⭐

使用 Go 构建。开源(ISC 许可证)。注重隐私。

0 浏览
Back to Blog

相关文章

阅读更多 »

tmux 入门指南

介绍 tmux 介绍,一种终端复用器。 会话管理 - 启动 tmux:bash tmux 或 tmux new-session - 在会话中创建新会话 …

终端技巧 🤩 fcopy, fcut, fpaste

简介 如果你和我一样热爱终端,开始使用 fcopy、fcut、fpaste。无需通过文件资源管理器复制,你可以这样做: bash fcopy some…

一键保护会议期间的屏幕

屏幕共享的焦虑 我们都知道在会议中共享屏幕时,突然需要切换标签页的焦虑。那一瞬间的犹豫——……

精确编辑关键时使用的 Vim 命令

解决实际使用摩擦的 Vim 小技巧 每个 Vim 用户都会随着时间积累个人工具箱。下面的命令是我不断碰到的——而不是教程中出现的……