2018-05-02 21:53:37 +08:00
|
|
|
|
Pet:一个简单的命令行片段管理器
|
2018-04-29 13:55:26 +08:00
|
|
|
|
=====
|
|
|
|
|
|
|
|
|
|
![](https://www.ostechnix.com/wp-content/uploads/2018/01/pet-6-720x340.png)
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
|
|
|
|
我们不可能记住所有的命令,对吧?是的。除了经常使用的命令之外,我们几乎不可能记住一些很少使用的长命令。这就是为什么需要一些外部工具来帮助我们在需要时找到命令。在过去,我们已经点评了两个有用的工具,名为 “Bashpast” 和 “Keep”。使用 Bashpast,我们可以轻松地为 Linux 命令添加书签,以便更轻松地重复调用。而 Keep 实用程序可以用来在终端中保留一些重要且冗长的命令,以便你可以随时使用它们。今天,我们将看到该系列中的另一个工具,以帮助你记住命令。现在让我们认识一下 “Pet”,这是一个用 Go 语言编写的简单的命令行代码管理器。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
使用 Pet,你可以:
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
* 注册/添加你重要的、冗长和复杂的命令片段。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
* 以交互方式来搜索保存的命令片段。
|
|
|
|
|
* 直接运行代码片段而无须一遍又一遍地输入。
|
|
|
|
|
* 轻松编辑保存的代码片段。
|
|
|
|
|
* 通过 Gist 同步片段。
|
|
|
|
|
* 在片段中使用变量
|
|
|
|
|
* 还有很多特性即将来临。
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
### 安装 Pet 命令行接口代码管理器
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
由于它是用 Go 语言编写的,所以确保你在系统中已经安装了 Go。
|
|
|
|
|
|
|
|
|
|
安装 Go 后,从 [**Pet 发布页面**][3] 获取最新的二进制文件。
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
wget https://github.com/knqyf263/pet/releases/download/v0.2.4/pet_0.2.4_linux_amd64.zip
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
对于 32 位计算机:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
wget https://github.com/knqyf263/pet/releases/download/v0.2.4/pet_0.2.4_linux_386.zip
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
解压下载的文件:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
unzip pet_0.2.4_linux_amd64.zip
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
对于 32 位:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
unzip pet_0.2.4_linux_386.zip
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
将 `pet` 二进制文件复制到 PATH(即 `/usr/local/bin` 之类的)。
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
sudo cp pet /usr/local/bin/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
最后,让它可以执行:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
sudo chmod +x /usr/local/bin/pet
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如果你使用的是基于 Arch 的系统,那么你可以使用任何 AUR 帮助工具从 AUR 安装它。
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
使用 [Pacaur][4]:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
pacaur -S pet-git
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
使用 [Packer][5]:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
packer -S pet-git
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
使用 [Yaourt][6]:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
yaourt -S pet-git
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
使用 [Yay][7]:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
yay -S pet-git
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
此外,你需要安装 [fzf][8] 或 [peco][9] 工具以启用交互式搜索。请参阅官方 GitHub 链接了解如何安装这些工具。
|
|
|
|
|
|
|
|
|
|
### 用法
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
运行没有任何参数的 `pet` 来查看可用命令和常规选项的列表。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$ pet
|
|
|
|
|
pet - Simple command-line snippet manager.
|
|
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
pet [command]
|
|
|
|
|
|
|
|
|
|
Available Commands:
|
|
|
|
|
configure Edit config file
|
|
|
|
|
edit Edit snippet file
|
|
|
|
|
exec Run the selected commands
|
|
|
|
|
help Help about any command
|
|
|
|
|
list Show all snippets
|
|
|
|
|
new Create a new snippet
|
|
|
|
|
search Search snippets
|
|
|
|
|
sync Sync snippets
|
|
|
|
|
version Print the version number
|
|
|
|
|
|
|
|
|
|
Flags:
|
|
|
|
|
--config string config file (default is $HOME/.config/pet/config.toml)
|
|
|
|
|
--debug debug mode
|
|
|
|
|
-h, --help help for pet
|
|
|
|
|
|
|
|
|
|
Use "pet [command] --help" for more information about a command.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
要查看特定命令的帮助部分,运行:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet [command] --help
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 配置 Pet
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
默认配置其实工作的挺好。但是,你可以更改保存片段的默认目录,选择要使用的选择器(fzf 或 peco),编辑片段的默认文本编辑器,添加 GIST id 详细信息等。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
要配置 Pet,运行:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet configure
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
该命令将在默认的文本编辑器中打开默认配置(例如我是 vim),根据你的要求更改或编辑特定值。
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
[General]
|
|
|
|
|
snippetfile = "/home/sk/.config/pet/snippet.toml"
|
|
|
|
|
editor = "vim"
|
|
|
|
|
column = 40
|
|
|
|
|
selectcmd = "fzf"
|
|
|
|
|
|
|
|
|
|
[Gist]
|
|
|
|
|
file_name = "pet-snippet.toml"
|
|
|
|
|
access_token = ""
|
|
|
|
|
gist_id = ""
|
|
|
|
|
public = false
|
|
|
|
|
~
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 创建片段
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
为了创建一个新的片段,运行:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet new
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
添加命令和描述,然后按下回车键保存它。
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
Command> echo 'Hell1o, Welcome1 2to OSTechNix4' | tr -d '1-9'
|
|
|
|
|
Description> Remove numbers from output.
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
![][11]
|
|
|
|
|
|
|
|
|
|
这是一个简单的命令,用于从 `echo` 命令输出中删除所有数字。你可以很轻松地记住它。但是,如果你很少使用它,几天后你可能会完全忘记它。当然,我们可以使用 `CTRL+R` 搜索历史记录,但 Pet 会更容易。另外,Pet 可以帮助你添加任意数量的条目。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
另一个很酷的功能是我们可以轻松添加以前的命令。为此,在你的 `.bashrc` 或 `.zshrc` 文件中添加以下行。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
function prev() {
|
|
|
|
|
PREV=$(fc -lrn | head -n 1)
|
|
|
|
|
sh -c "pet new `printf %q "$PREV"`"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
执行以下命令来使保存的更改生效。
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
source .bashrc
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
或者:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
source .zshrc
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
现在,运行任何命令,例如:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ cat Documents/ostechnix.txt | tr '|' '\n' | sort | tr '\n' '|' | sed "s/.$/\\n/g"
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
要添加上述命令,你不必使用 `pet new` 命令。只需要:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ prev
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
将说明添加到该命令代码片段中,然后按下回车键保存。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
![][12]
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 片段列表
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
要查看保存的片段,运行:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet list
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
![][13]
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 编辑片段
|
|
|
|
|
|
|
|
|
|
如果你想编辑代码片段的描述或命令,运行:
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$ pet edit
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
这将在你的默认文本编辑器中打开所有保存的代码片段,你可以根据需要编辑或更改片段。
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
[[snippets]]
|
|
|
|
|
description = "Remove numbers from output."
|
|
|
|
|
command = "echo 'Hell1o, Welcome1 2to OSTechNix4' | tr -d '1-9'"
|
|
|
|
|
output = ""
|
|
|
|
|
|
|
|
|
|
[[snippets]]
|
|
|
|
|
description = "Alphabetically sort one line of text"
|
|
|
|
|
command = "\t prev"
|
|
|
|
|
output = ""
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 在片段中使用标签
|
|
|
|
|
|
|
|
|
|
要将标签用于判断,使用下面的 `-t` 标志。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$ pet new -t
|
|
|
|
|
Command> echo 'Hell1o, Welcome1 2to OSTechNix4' | tr -d '1-9
|
|
|
|
|
Description> Remove numbers from output.
|
|
|
|
|
Tag> tr command examples
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 执行片段
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
要执行一个保存的片段,运行:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet exec
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
从列表中选择你要运行的代码段,然后按回车键来运行它:
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
![][14]
|
|
|
|
|
|
|
|
|
|
记住你需要安装 fzf 或 peco 才能使用此功能。
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 寻找片段
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
如果你有很多要保存的片段,你可以使用字符串或关键词如 below.qjz 轻松搜索它们。
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet search
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
输入搜索字词或关键字以缩小搜索结果范围。
|
|
|
|
|
|
|
|
|
|
![][15]
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
#### 同步片段
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
首先,你需要获取访问令牌。转到此链接 <https://github.com/settings/tokens/new> 并创建访问令牌(只需要 “gist” 范围)。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
使用以下命令来配置 Pet:
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet configure
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
将令牌设置到 `[Gist]` 字段中的 `access_token`。
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
设置完成后,你可以像下面一样将片段上传到 Gist。
|
2018-05-02 21:53:37 +08:00
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
$ pet sync -u
|
|
|
|
|
Gist ID: 2dfeeeg5f17e1170bf0c5612fb31a869
|
|
|
|
|
Upload success
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
你也可以在其他 PC 上下载片段。为此,编辑配置文件并在 `[Gist]` 中将 `gist_id` 设置为 GIST id。
|
|
|
|
|
|
|
|
|
|
之后,使用以下命令下载片段:
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
$ pet sync
|
|
|
|
|
Download success
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
获取更多细节,参阅帮助选项:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
pet -h
|
|
|
|
|
```
|
|
|
|
|
|
2018-05-02 21:53:37 +08:00
|
|
|
|
或者:
|
|
|
|
|
|
2018-04-29 13:55:26 +08:00
|
|
|
|
```
|
|
|
|
|
pet [command] -h
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
这就是全部了。希望这可以帮助到你。正如你所看到的,Pet 使用相当简单易用!如果你很难记住冗长的命令,Pet 实用程序肯定会有用。
|
|
|
|
|
|
|
|
|
|
干杯!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
via: https://www.ostechnix.com/pet-simple-command-line-snippet-manager/
|
|
|
|
|
|
|
|
|
|
作者:[SK][a]
|
|
|
|
|
译者:[MjSeven](https://github.com/MjSeven)
|
2018-05-02 21:53:37 +08:00
|
|
|
|
校对:[wxy](https://github.com/wxy)
|
2018-04-29 13:55:26 +08:00
|
|
|
|
|
|
|
|
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|
|
|
|
|
|
|
|
|
[a]:https://www.ostechnix.com/author/sk/
|
|
|
|
|
[1]:https://www.ostechnix.com/bookmark-linux-commands-easier-repeated-invocation/
|
|
|
|
|
[2]:https://www.ostechnix.com/save-commands-terminal-use-demand/
|
|
|
|
|
[3]:https://github.com/knqyf263/pet/releases
|
|
|
|
|
[4]:https://www.ostechnix.com/install-pacaur-arch-linux/
|
|
|
|
|
[5]:https://www.ostechnix.com/install-packer-arch-linux-2/
|
|
|
|
|
[6]:https://www.ostechnix.com/install-yaourt-arch-linux/
|
|
|
|
|
[7]:https://www.ostechnix.com/yay-found-yet-another-reliable-aur-helper/
|
|
|
|
|
[8]:https://github.com/junegunn/fzf
|
|
|
|
|
[9]:https://github.com/peco/peco
|
|
|
|
|
[10]:data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
|
|
|
|
|
[11]:http://www.ostechnix.com/wp-content/uploads/2018/01/pet-1.png
|
|
|
|
|
[12]:http://www.ostechnix.com/wp-content/uploads/2018/01/pet-2.png
|
|
|
|
|
[13]:http://www.ostechnix.com/wp-content/uploads/2018/01/pet-3.png
|
|
|
|
|
[14]:http://www.ostechnix.com/wp-content/uploads/2018/01/pet-4.png
|
|
|
|
|
[15]:http://www.ostechnix.com/wp-content/uploads/2018/01/pet-5.png
|