尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Pier + fzf 强力组合:3行 Shell 函数实现脚本模糊搜索与自动补全

Pier + fzf 强力组合:3行 Shell 函数实现脚本模糊搜索与自动补全 Pier fzf 强力组合3行 Shell 函数实现脚本模糊搜索与自动补全【免费下载链接】pierA CLI to organize and run short Unix shell scripts项目地址: https://gitcode.com/gh_mirrors/pi/pierPier 是一款用于组织并运行短 Unix shell 脚本的轻量级命令行工具由 Rust 编写。它把你散落在各处的 one-liner 和小脚本集中存放在一个人类可读的 TOML 配置文件中支持别名、描述和标签等元数据。搭配 fzf 模糊搜索只需 3 行代码加入你的 Shell就能彻底告别忘记脚本叫什么名字的烦恼。本文从安装到组合带你完整跑通这套脚本管理方案。为什么需要 Shell 脚本管理工具用了很终端的人难免攒下一堆好用的 one-liner刷新 WiFi、清理 Docker 容器、查看端口占用……真正要用时却只能翻bin文件夹和命令历史拼命回忆当年起的名字。Pier 的思路很简单把脚本当成一等公民给它们一个中央码头——✅集中存储所有脚本都放在一个 TOML 配置文件里✅元数据加持别名、描述、标签方便随时检索✅别名直接执行敲pier refresh-wifi即可运行不用再找脚本文件Pier 安装教程三种方式一步到位方式一从 Crates.io 安装最常用cargo install pier方式二从源码编译git clone https://gitcode.com/gh_mirrors/pi/pier cd pier cargo build --release方式三使用 Nixnix-env -if derivation.nix执行pier --version验证是否成功。CLI 的命令定义都在src/cli.rs文件中好奇的话可以直接去源码里看每一个子命令的细节。Pier 基本用法三步添加并运行脚本1️⃣ 添加脚本—— 传入命令内容和别名pier add ip link set wlp58s0 down sleep 5 ip link set wlp58s0 up --alias refresh-wifi还可以补充描述和标签--description 刷新WiFi连接 --tag network。不传命令内容时Pier 会打开编辑器让你慢慢写。2️⃣ 列出脚本pier list输出对齐的别名 命令表格一眼看清家底。3️⃣ 运行脚本—— 别名可直接当子命令用pier refresh-wifi所有脚本都会写进 TOML 配置文件默认位于~/.pier.toml解析逻辑见src/config.rs格式直观手改也很方便[scripts.refresh-wifi] command ip link set wlp58s0 down sleep 5 ip link set wlp58s0 up [scripts.flush-docker] command docker container stop $(docker container ls -a -q) docker system prune -a -f description 清理旧的 Docker 容器和镜像 tags [docker, flush]Pier fzf3 行函数实现模糊搜索最快配置方法脚本攒到几十个后敲pier li...等 Shell 自动补全都嫌慢了。项目社区贡献者为 Pier 写了一个 3 行 fzf 模糊搜索函数收录在USER_SCRIPTS.md中pier_fzf() { pier $(pier list | awk NR\2 | fzf | awk {print $1}) }把它加进~/.bashrc或~/.zshrc即可使用。别看只有 3 行整个流程相当完整步骤命令作用1pier list输出全部脚本的表格2awk NR\2去掉表头和分隔线3fzf弹出交互式模糊搜索框4awk {print $1}提取选中行第一列的别名5pier alias直接运行匹配到的脚本使用方式输入pier_fzf键入几个字母比如flusfzf 即刻过滤出候选项回车就执行flush-docker。哪怕只记得脚本名的一小段也能精准命中。进阶玩法一fzf 给 Pier 做自动补全上一个函数是回车即运行下面这段代码则给pier命令本身加上fzf 模糊自动补全——输入pier fl再按 Tab候选列表立刻弹出_pier_fzf() { local hit hit$(pier list -q | fzf --query $LAST_ARG) [ -n $hit ] COMPREPLY($hit) } complete -F _pier_fzf pier两个关键点pier list -q只输出别名对应src/cli.rs中的list_aliases参数列表更干净--query把你已输入的内容预填进 fzf补全零延迟。zsh 用户把最后一行换成compdef _pier_fzf pier即可。进阶玩法二运行前预览命令 按标签过滤运行前先预览——担心手滑执行危险命令用--preview在右侧面板先看清原始命令pier_fzf() { pier $(pier list | awk NR\2 | fzf \ --preview pier show $(echo {} | cut -d| -f1) \ | awk {print $1}) }先按标签缩小范围——脚本很多时给 fzf 预先过滤候选集搜索又快又准docker_fzf() { pier $(pier list -t docker | awk NR\2 | fzf | awk {print $1}) }标签过滤是 Pier 内置能力见src/cli.rs中List子命令的tags参数和 fzf 组合起来检索精度直接拉满。总结Pier fzf 的组合是典型的小工具办大事Pier 管存与跑一个 TOML 文件 别名体系脚本从此有处安放fzf 管找3 行函数搞定模糊搜索再加几行实现自动补全建议你先安装 Pier把最常用的 5 个 one-liner 迁移进去然后加上pier_fzf函数——这套工作流的效率提升当天就能感受到。【免费下载链接】pierA CLI to organize and run short Unix shell scripts项目地址: https://gitcode.com/gh_mirrors/pi/pier创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表