
Pet CLI代码片段管理器
Pet应用的介绍
是用Go编写简单的命令行摘要管理器。
Pet应用的安装
Window系统
choco install pet
Ubuntu
wget -q https://github.com/knqyf263/pet/releases/download/v0.3.6/pet_0.3.6_linux_amd64.deb && apt -qq install ./pet_0.3.6_linux_amd64.deb
Centos
wget https://github.com/knqyf263/pet/releases/download/v0.3.6/pet_0.3.6_linux_amd64.rpm
rpm -i pet_0.3.6_linux_amd64.rpm
验证是否安装成功
# pet version && pet --help
pet version 0.3.6
pet - Simple command-line snippet manager.
尝试列表功能
pet list
# 由于尚未将片段添加到库中,因此列表为空。
尝试搜索功能
# pet search test
sh: fzf: command not found
# 我们发现这里抛出了一个错误。
Pet列出了摘要库,并允许您从列出的摘要项中进行交互选择。Pet并未内置此列表和项目选择功能,并且此交互性取决于另一个称为选择器的CLI工具。Pet可以很容易地检测到名为fzf或peco的选择器工具的存在。这些选择器工具提供列表,提供项目选择功能以及其他参数提示。片段管理器以及选择器对于从库中创建,编辑,列出,搜索和挑选片段很有用。
安装fzf
Window系统
# 下载 https://github.com/junegunn/fzf/releases/download/0.26.0/fzf-0.26.0-windows_amd64.zip
Ubuntu
wget -q http://archive.ubuntu.com/ubuntu/pool/universe/f/fzf/fzf_0.20.0-1build1_amd64.deb && apt -qq install ./fzf_0.20.0-1build1_amd64.deb
Centos
wget https://github.com/junegunn/fzf/releases/download/0.26.0/fzf-0.26.0-linux_amd64.tar.gz
tar zxvf fzf-0.26.0-linux_amd64.tar.gz
mv fzf /usr/local/bin/
Git
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
验证是否安装成功
fzf --version
# 再次运行搜索功能
pet search test
# 提示将变为>并显示0/0。
Pet的基本运用
让我们遍历核心命令来创建和管理一些简单的代码片段。
Kubernetes集群中的列表上下文
运行kubectl命令列出集群上当前的所有ConfigMap和Secrets
kubectl get cm,secrets --all-namespaces
在不运行其他命令的情况下,将最后一个命令添加到您的代码段库中(Description可以描述该命令):
# pet new "!!"
pet new "kubectl get cm,secrets --all-namespaces"
Command> kubectl get cm,secrets --all-namespaces
Description> get cm,secrets
您现在有了一个新的代码段
pet list
参考代码段并运行它:
pet exec
修改存储过的命令
pet edit
Pet会找到与您的终端关联的常用编辑器。对于此片假名,共有四位编辑。选择nano或任何您喜欢的编辑器。
创建代码片段时,还有一个额外的—tag标记将代码与代码片段相关联。出现提示时,添加一些描述文字并添加标签
tag
pet new "kubectl get pods -n kube-system" --tag
要快速搜索并运行此代码段,请输入:
pet exec -q=plane
然后只需按Enter键即可选择单个选项。如果您可以使所有搜索标签在您的库中唯一,则可以基于短标签快速查找单个片段。
让命令更加简短
创建bash函数并将其附加到
~\bashrc
echo 'function pex() { pet exec -q=$@; }' >> ~/.bashrc
加载新的
.bashrc
脚本,以使该功能可用于此终端
source ~/.bashrc
如果您知道自己的唯一标签,则此新命令/功能会更快:
pex plane
备份
pet sync
# 更多可以了解 https://github.com/knqyf263/pet#sync
Kubernetes的Toml
那么Pet和Snippet管理与Kubernetes有什么关系呢?
如您所知,开发人员喜欢收集备忘单。这些工作表的设计紧凑,易于查找,易于参考,并包含所有尚未提交或永远不会提交给您的内存的命令。该宠物片段库本质上是一种表。它存储在应用程序配置下的目录主目录中。
ls ~/.config/pet
当前的片段位于snippet.toml文件中(默认也是该文件):
cat ~/.config/pet/snippet.toml
Pet知道可以通过其配置引用此文件:
cat ~/.config/pet/config.toml
对于这种情况,我们可以参考了Kubernetes toml,并将大多数技巧手动转换为Pet片段。从Git gist下载公共文件:
wget -P ~/.config/pet/ https://gist.githubusercontent.com/javajon/131a7f26c11a03d741e6bcefb857c496/raw/kubectl-snippet.toml
收集了几十个片段:
cat ~/.config/pet/kubectl-snippet.toml | grep "description ="
将此替代库应用于Pet:
sed -i 's/snippet.toml/kubectl-snippet.toml/g' ~/.config/pet/config.toml
现在我们可以参考该示例
pet list
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

