Pet CLI代码片段管理器 电脑版发表于:2021/3/24 16:56 ![](https://img.tnblog.net/arcimg/hb/94dfa5d340c340e98f5a2ef243e09c39.png) ># Pet CLI代码片段管理器 [TOC] Pet应用的介绍 ------------ <p style=" font-weight: 400; line-height: 1.5; color: #212529; -webkit-tap-highlight-color: transparent; box-sizing: border-box; padding: 0px 20px 20px 20px; border: 1px solid #e9ecef; border-left-width: .25rem; border-radius: .25rem; display: block; border-left-color: #5bc0de;"> 是用Go编写简单的命令行摘要管理器。 </p> Pet应用的安装 ------------ ### Window系统 ```bash choco install pet ``` ### Ubuntu ```bash 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 ```bash 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 ``` ### 验证是否安装成功 ```bash # pet version && pet --help pet version 0.3.6 pet - Simple command-line snippet manager. ``` >尝试列表功能 ```bash pet list # 由于尚未将片段添加到库中,因此列表为空。 ``` >尝试搜索功能 ```bash # pet search test sh: fzf: command not found # 我们发现这里抛出了一个错误。 ``` <p style=" font-weight: 400; line-height: 1.5; color: #212529; -webkit-tap-highlight-color: transparent; box-sizing: border-box; padding: 0px 20px 20px 20px; border: 1px solid #e9ecef; border-left-width: .25rem; border-radius: .25rem; display: block; border-left-color: #5bc0de;"> Pet列出了摘要库,并允许您从列出的摘要项中进行交互选择。Pet并未内置此列表和项目选择功能,并且此交互性取决于另一个称为选择器的CLI工具。Pet可以很容易地检测到名为fzf或peco的选择器工具的存在。这些选择器工具提供列表,提供项目选择功能以及其他参数提示。片段管理器以及选择器对于从库中创建,编辑,列出,搜索和挑选片段很有用。 </p> 安装fzf ------------ ![](https://img.tnblog.net/arcimg/hb/2e31a49fec314d27bb170bb6a2d3f718.png) ### Window系统 ```bash # 下载 https://github.com/junegunn/fzf/releases/download/0.26.0/fzf-0.26.0-windows_amd64.zip ``` ### Ubuntu ```bash 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 ```bash 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 ```bash git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install ``` ### 验证是否安装成功 ```bash fzf --version # 再次运行搜索功能 pet search test # 提示将变为>并显示0/0。 ``` Pet的基本运用 ------------ <p style=" font-weight: 400; line-height: 1.5; color: #212529; -webkit-tap-highlight-color: transparent; box-sizing: border-box; padding: 0px 20px 20px 20px; border: 1px solid #e9ecef; border-left-width: .25rem; border-radius: .25rem; display: block; border-left-color: #5bc0de;"> 让我们遍历核心命令来创建和管理一些简单的代码片段。 </p> ### Kubernetes集群中的列表上下文 >运行kubectl命令列出集群上当前的所有ConfigMap和Secrets ```bash kubectl get cm,secrets --all-namespaces ``` >在不运行其他命令的情况下,将最后一个命令添加到您的代码段库中(Description可以描述该命令): ```bash # pet new "!!" pet new "kubectl get cm,secrets --all-namespaces" Command> kubectl get cm,secrets --all-namespaces Description> get cm,secrets ``` >您现在有了一个新的代码段 ```bash pet list ``` >参考代码段并运行它: ```bash pet exec ``` >修改存储过的命令 ```bash pet edit ``` tn>Pet会找到与您的终端关联的常用编辑器。对于此片假名,共有四位编辑。选择nano或任何您喜欢的编辑器。 >创建代码片段时,还有一个额外的--tag标记将代码与代码片段相关联。出现提示时,添加一些描述文字并添加标签`tag` ```bash pet new "kubectl get pods -n kube-system" --tag ``` >要快速搜索并运行此代码段,请输入: ```bash pet exec -q=plane ``` >然后只需按Enter键即可选择单个选项。如果您可以使所有搜索标签在您的库中唯一,则可以基于短标签快速查找单个片段。 让命令更加简短 ------------ >创建bash函数并将其附加到`~\bashrc` ```bash echo 'function pex() { pet exec -q=$@; }' >> ~/.bashrc ``` >加载新的`.bashrc`脚本,以使该功能可用于此终端 ```bash source ~/.bashrc ``` >如果您知道自己的唯一标签,则此新命令/功能会更快: ```bash pex plane ``` 备份 ------------ ```bash pet sync # 更多可以了解 https://github.com/knqyf263/pet#sync ``` Kubernetes的Toml ------------ <p style=" font-weight: 400; line-height: 1.5; color: #212529; -webkit-tap-highlight-color: transparent; box-sizing: border-box; padding: 0px 20px 20px 20px; border: 1px solid #e9ecef; border-left-width: .25rem; border-radius: .25rem; display: block; border-left-color: #5bc0de;"> 那么Pet和Snippet管理与Kubernetes有什么关系呢? 如您所知,开发人员喜欢收集备忘单。这些工作表的设计紧凑,易于查找,易于参考,并包含所有尚未提交或永远不会提交给您的内存的命令。该宠物片段库本质上是一种表。它存储在应用程序配置下的目录主目录中。 </p> ```bash ls ~/.config/pet ``` >当前的片段位于snippet.toml文件中(默认也是该文件): ```bash cat ~/.config/pet/snippet.toml ``` >Pet知道可以通过其配置引用此文件: ```bash cat ~/.config/pet/config.toml ``` >对于这种情况,我们可以参考了<a href="https://kubernetes.io/docs/reference/kubectl/cheatsheet/">Kubernetes toml</a>,并将大多数技巧手动转换为Pet片段。从Git gist下载公共文件: ```bash wget -P ~/.config/pet/ https://gist.githubusercontent.com/javajon/131a7f26c11a03d741e6bcefb857c496/raw/kubectl-snippet.toml ``` >收集了几十个片段: ```bash cat ~/.config/pet/kubectl-snippet.toml | grep "description =" ``` >将此替代库应用于Pet: ```bash sed -i 's/snippet.toml/kubectl-snippet.toml/g' ~/.config/pet/config.toml ``` >现在我们可以参考该示例 ```bash pet list ```