pet 命令行片段管理器使用教程

pet 命令行片段管理器使用教程

【免费下载链接】pet Simple command-line snippet manager, written in Go. 【免费下载链接】pet 项目地址: https://gitcode.com/gh_mirrors/pe/pet

还在为记不住复杂命令而烦恼?每次都要翻历史记录找那个很少用但很重要的命令?pet 就是你的救星!这是一款用 Go 语言编写的简单而强大的命令行片段管理器,让你轻松保存、搜索和执行常用命令。

通过本教程,你将学会:

  • ✅ 快速安装和配置 pet
  • ✅ 创建和管理命令片段
  • ✅ 使用参数和默认值
  • ✅ 高效搜索和执行片段
  • ✅ 同步片段到云端
  • ✅ 集成到 shell 环境

什么是 pet?

pet 是一个命令行片段管理器,专门为解决开发者记忆复杂命令的痛点而生。它支持:

  • 🎯 轻松注册命令片段
  • 🔍 交互式搜索片段
  • ⚡ 直接执行保存的命令
  • 🏷️ 标签分类管理
  • ☁️ 云端同步备份
  • 🔧 变量参数支持

快速安装

二进制安装(推荐)

前往发布页面,下载对应系统的二进制文件,解压后放入 PATH 路径即可。

# 示例:下载 Linux 64位版本
wget https://github.com/knqyf263/pet/releases/download/v0.4.0/pet_0.4.0_linux_amd64.tar.gz
tar zxvf pet_0.4.0_linux_amd64.tar.gz
sudo mv pet /usr/local/bin/

包管理器安装

# macOS (Homebrew)
brew install knqyf263/pet/pet

# Ubuntu/Debian
wget https://github.com/knqyf263/pet/releases/download/v0.4.0/pet_0.4.0_linux_amd64.deb
sudo dpkg -i pet_0.4.0_linux_amd64.deb

# Arch Linux
yay -S pet-bin

源码编译

git clone https://github.com/knqyf263/pet.git
cd pet
make install

基础使用指南

创建第一个片段

$ pet new
Command> docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Description> 显示所有容器状态
Tag> docker monitoring

查看所有片段

$ pet list
Command: docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Description: 显示所有容器状态
     Tag: [docker monitoring]

搜索片段

$ pet search
[显示所有容器状态]: docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" #docker #monitoring

执行片段

$ pet exec
# 选择要执行的片段后直接运行

高级功能详解

参数化片段

pet 支持在片段中使用参数,极大提高了命令的灵活性:

# 创建带参数的片段
$ pet new
Command> curl -s https://api.github.com/repos/<owner>/<repo> | jq '.stargazers_count'
Description> 获取 GitHub 仓库星标数
Tag> github api

# 使用时输入参数值
$ pet exec
# 系统会提示输入 owner 和 repo 参数

默认值支持

# 带默认值的参数
Command> ping <host=8.8.8.8> -c 4
Description> Ping 测试
Tag> network

# 多选默认值
Command> git checkout <branch=|_main_||_develop_||_feature/new-feature_|>
Description> 切换 Git 分支
Tag> git

多行命令

$ pet new --multiline
Command> #!/bin/bash
.......> echo "系统信息:"
.......> echo "主机名: $(hostname)"
.......> echo "内存使用: $(free -h | awk '/Mem:/{print $3\"/\"$2}')"
.......> echo "磁盘使用: $(df -h / | awk 'NR==2{print $5}')"
Description> 显示系统状态信息
Tag> system info bash

配置详解

运行 pet configure 编辑配置文件:

[General]
snippetfile = "~/.config/pet/snippet.toml"  # 片段文件路径
editor = "vim"                              # 默认编辑器
column = 40                                 # 列表显示列宽
selectcmd = "fzf"                           # 选择器命令 (fzf 或 peco)
backend = "gist"                            # 同步后端
sortby = "description"                      # 排序方式

[Gist]
file_name = "pet-snippet.toml"              # Gist 文件名
access_token = "your_token_here"            # GitHub 访问令牌
gist_id = ""                                # Gist ID
public = false                              # 是否公开
auto_sync = false                           # 自动同步

多目录配置

[General]
snippetdirs = ["~/.config/pet/work/", "~/.config/pet/personal/"]

Shell 集成

Bash 集成

~/.bashrc 中添加:

# 快速添加上一条命令到 pet
function prev() {
  PREV=$(echo `history | tail -n2 | head -n1` | sed 's/[0-9]* //')
  sh -c "pet new `printf %q "$PREV"`"
}

# 交互式搜索片段(类似 Ctrl+R)
function pet-select() {
  BUFFER=$(pet search --query "$READLINE_LINE")
  READLINE_LINE=$BUFFER
  READLINE_POINT=${#BUFFER}
}
bind -x '"\C-x\C-r": pet-select'

Zsh 集成

~/.zshrc 中添加:

function prev() {
  PREV=$(fc -lrn | head -n 1)
  sh -c "pet new `printf %q "$PREV"`"
}

function pet-select() {
  BUFFER=$(pet search --query "$LBUFFER")
  CURSOR=$#BUFFER
  zle redisplay
}
zle -N pet-select
stty -ixon
bindkey '^s' pet-select

Fish 集成

安装 fish-pet 插件。

云端同步

GitHub Gist 同步

  1. 创建 GitHub 访问令牌(只需要 gist 权限)
  2. 配置访问令牌:
export PET_GITHUB_ACCESS_TOKEN="your_token_here"
# 或者直接在配置文件中设置
  1. 同步片段:
$ pet sync
Gist ID: 1cedddf4e06d1170bf0c5612fb31a758
Upload success

GitLab Snippets 同步

[General]
backend = "gitlab"

[GitLab]
file_name = "pet-snippet.toml"
access_token = "your_gitlab_token"
url = "https://gitlab.com"
id = ""
visibility = "private"
auto_sync = false

实用技巧和最佳实践

分类标签系统

# 按功能分类
pet new -t
Command> kubectl get pods -n <namespace>
Description> 查看 Kubernetes Pod
Tag> kubernetes monitoring

# 按项目分类  
pet new -t
Command> docker-compose -f docker-compose.prod.yml up -d
Description> 启动生产环境容器
Tag> project-x production

搜索过滤

# 按标签搜索
pet search -t kubernetes

# 组合搜索
pet search --query "docker" -t production

输出片段

除了保存命令,还可以保存命令输出:

[[snippets]]
command = "echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -dates -noout"
description = "显示 SSL 证书过期时间"
output = """
notBefore=Nov  3 00:00:00 2015 GMT
notAfter=Nov 28 12:00:00 2018 GMT"""

故障排除

常见问题

  1. 片段文件不存在

    pet configure  # 设置正确的片段文件路径
    
  2. 选择器命令未安装

    # 安装 fzf
    git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
    ~/.fzf/install
    
  3. 同步失败

    # 检查访问令牌权限
    export PET_GITHUB_ACCESS_TOKEN="new_token_here"
    

性能优化

对于大量片段,建议:

  • 使用 fzf 作为选择器(性能更好)
  • 定期清理不再使用的片段
  • 使用标签进行有效分类

进阶用法

自定义输出格式

[General]
format = "[$description]: $command $tags"

支持变量:

  • $description - 片段描述
  • $command - 命令内容
  • $tags - 标签列表
  • $output - 输出内容

自动同步

启用自动同步后,每次编辑都会自动同步到云端:

[Gist]
auto_sync = true

多环境配置

创建不同的配置文件:

# 工作环境
PET_CONFIG=~/.config/pet/work.toml pet new

# 个人环境
PET_CONFIG=~/.config/pet/personal.toml pet list

总结对比

下表总结了 pet 的主要特性:

特性描述优势
片段管理保存、搜索、执行命令交互式界面,支持标签
参数支持使用 <param><param=default>命令模板化,灵活复用
多行命令支持复杂脚本保存完整保存复杂操作流程
云端同步Gist/GitLab 同步多设备间片段共享
Shell 集成快捷键绑定无缝融入工作流程

实践案例

DevOps 工程师的日常

# 保存常用部署命令
pet new -t
Command> kubectl apply -f deployment.yaml && kubectl rollout status deployment/<app>
Description> 部署应用到 Kubernetes
Tag> kubernetes deployment

# 监控命令
pet new -t  
Command> watch -n 2 'kubectl top pods | grep -E "(NAME|<app>)"'
Description> 实时监控应用资源使用
Tag> monitoring kubernetes

# 日志查询
pet new --multiline
Command> kubectl logs -f deployment/<app> \
.......> --tail=100 \
.......> --since=10m \
.......> | grep -i error
Description> 跟踪应用错误日志
Tag> logging troubleshooting

开发者的工具箱

# Git 快捷操作
pet new -t
Command> git log --oneline --graph --decorate --all -10
Description> 图形化显示 Git 历史
Tag> git visualization

# 数据库操作
pet new -t
Command> psql -h <host> -U <user> -d <database> -c "<query>"
Description> 执行 PostgreSQL 查询
Tag> database postgresql

# 代码质量检查
pet new --multiline
Command> #!/bin/bash
.......> echo "Running code quality checks..."
.......> flake8 .
.......> black --check .
.......> mypy .
Description> 代码质量自动化检查
Tag> python quality

扩展生态

相关工具集成

mermaid

社区资源

结语

pet 不仅仅是一个命令片段管理器,更是提高开发效率的利器。通过合理的分类、标签系统和云端同步,你可以构建属于自己的命令知识库,让重复性工作变得简单高效。

开始使用 pet,告别命令记忆烦恼,专注于更有价值的创造性工作!

下一步行动:

  1. 立即安装 pet
  2. 保存你的第一个命令片段
  3. 配置 shell 集成快捷键
  4. 探索高级功能和云端同步

让你的命令行体验从此不同!

【免费下载链接】pet Simple command-line snippet manager, written in Go. 【免费下载链接】pet 项目地址: https://gitcode.com/gh_mirrors/pe/pet

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值