Navi项目:命令行速查表语法详解

Navi项目:命令行速查表语法详解

【免费下载链接】navi An interactive cheatsheet tool for the command-line 【免费下载链接】navi 项目地址: https://gitcode.com/gh_mirrors/na/navi

痛点:命令行记忆负担太重?

你是否经常遇到这样的情况:明明记得某个命令的功能,却想不起具体的参数和选项?或者需要在多个命令之间来回切换,不断复制粘贴输出结果?命令行工具虽然强大,但记忆各种命令的语法和参数组合确实是个挑战。

Navi(导航)项目就是为了解决这个问题而生——它是一个交互式命令行速查表工具,让你无需死记硬背命令,通过智能提示和动态参数填充,大幅提升命令行使用效率。

读完本文,你将掌握:

  • ✅ Navi速查表文件(.cheat)的完整语法结构
  • ✅ 变量定义和高级参数配置技巧
  • ✅ 多行命令和代码片段的编写方法
  • ✅ 变量依赖和扩展功能的实战应用
  • ✅ 最佳实践和常见用例解析

Navi速查表基础语法

文件结构和基本元素

Navi速查表使用.cheat.cheat.md扩展名,采用简洁的标记语法:

% git, version-control  # 标签定义(必选)

# 查看当前分支状态  # 命令描述(可选)
git status

# 切换到指定分支  # 另一个命令
git checkout <branch>

$ branch: git branch | awk '{print $NF}'  # 变量定义

语法元素速查表

元素类型语法标记功能描述是否必需
标签定义%定义命令的标签和分类必需
命令描述#提供命令的功能说明可选
注释;编辑器注释,Navi会忽略可选
变量定义$预定义变量的值生成命令可选
扩展标签@扩展其他cheat的上下文可选
执行命令无标记实际要执行的命令必需

变量系统:智能提示的核心

基础变量定义

变量使用<变量名>格式在命令中定义,通过$行提供建议值:

# 删除Docker镜像
docker rmi <image_id>

$ image_id: docker images | awk 'NR>1 {print $3}'

高级变量选项

Navi支持丰富的变量配置选项,通过---分隔符添加:

# 提取特定列数据
docker rmi <image_id>

$ image_id: docker images --- --column 3 --header-lines 1 --delimiter '\s\s+'

完整参数支持表

参数功能描述示例
--column <n>提取第n列数据--column 2
--header-lines <n>跳过前n行标题--header-lines 1
--delimiter <regex>自定义列分隔符--delimiter ';'
--multi允许多选--multi
--map <code>映射处理值--map "echo \$1 | tr 'a-z' 'A-Z'"
--preview <code>预览功能--preview 'cat {}'

变量依赖和关联

隐式依赖

变量可以引用其他变量,构建复杂的值生成逻辑:

# 构建完整路径
echo "<wallpaper_folder>"

$ pictures_folder: echo "/my/pictures"
$ wallpaper_folder: echo "<pictures_folder>/wallpapers"

显式依赖

使用$变量名语法建立显式依赖关系:

# 动态生成关联选项
echo <x> <y>

$ x: echo "hello hi" | tr ' ' '\n'
$ y: echo "$x foo;$x bar" | tr ';' '\n'

多行命令和代码片段

基础多行命令

使用反斜杠续行符编写复杂命令:

% system, monitoring

# 显示系统负载信息
echo "系统负载:"
uptime | awk '{print $8,$9,$10,$11,$12}'
df -h | grep -E '(/|boot)' \
    | awk '{print $1": "$3"/"$2" ("$5")"}'

Markdown代码块格式

使用三重反引号定义代码块,提高可读性:

% git, advanced

# 复杂的Git操作流程
```bash
git fetch --all --prune
git checkout <branch>
git reset --hard origin/<branch>
git clean -fd
```

$ branch: git branch -r | grep -v '\->' | sed 's/origin\///'

扩展功能和代码复用

使用@标签扩展上下文

通过@标签复用其他cheat的变量定义:

% base-config, common

$ config_path: echo "~/.config/myapp"
$ log_path: echo "/var/log/myapp"

% main-config
@ base-config, common

# 主配置文件路径
echo "<config_path>/main.conf"

% log-config  
@ base-config, common

# 日志配置文件路径
echo "<config_path>/logging.conf"

多参数变量处理

变量可以返回多个参数,用于复杂命令:

# 批量处理JSON文件
cat <json_files>

$ json_files: find . -name '*.json' -type f --- --multi --expand

实战案例解析

案例1:Docker容器管理

% docker, container

# 停止所有运行中的容器
docker stop <running_containers>

# 删除所有已停止的容器  
docker rm <stopped_containers>

$ running_containers: docker ps -q --- --multi
$ stopped_containers: docker ps -a -q -f status=exited --- --multi

案例2:系统监控仪表板

% system, dashboard, monitoring

# 系统状态仪表板
echo "=== 系统监控 ==="
echo "CPU使用率: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}')%"
echo "内存使用: $(free -h | awk '/Mem:/ {print $3"/"$2}')"
echo "磁盘空间:"
df -h | grep -E '(/|boot)' | awk '{print $1"\t"$3"/"$2" ("$5")"}'

# 进程监控
echo "=== 进程监控 ==="
ps aux --sort=-%cpu | head -5 | awk '{print $11, $3"% CPU", $4"% MEM"}'

案例3:Git工作流自动化

% git, workflow, automation

# 功能分支开发工作流
git checkout -b <feature_branch>
git add .
git commit -m "<commit_message>"
git push -u origin <feature_branch>

# 创建Pull Request
echo "创建PR: https://github.com/<repo>/compare/main...<feature_branch>"

$ feature_branch: echo "feature/$(date +%Y%m%d)-$(whoami)-update"
$ commit_message: echo "更新功能: 修复了相关问题"
$ repo: git remote get-url origin | sed 's/.*github.com[:/]\(.*\)\.git/\1/'

最佳实践和技巧

组织结构建议

mermaid

性能优化技巧

  1. 缓存频繁使用的命令:对于执行较慢的命令,考虑使用缓存机制
  2. 限制返回结果数量:使用headlimit减少建议项数量
  3. 预处理数据:在变量命令中进行数据清洗和格式化

错误处理策略

% error-handling, robust

# 带错误处理的命令执行
if command -v <tool> >/dev/null 2>&1; then
    <tool> <arguments>
else
    echo "错误: <tool> 未安装" >&2
    exit 1
fi

$ tool: echo -e "docker\npodman\nnerdctl" --- --prevent-extra
$ arguments: echo "run --rm -it alpine"

总结

Navi的速查表语法设计既强大又灵活,通过合理的结构设计和变量系统,可以创建出高度交互式的命令行工具。关键要点:

  • 🎯 标签系统:使用%定义清晰的命令分类
  • 🎯 变量智能提示:通过$行提供动态建议值
  • 🎯 依赖管理:支持变量间的隐式和显式依赖
  • 🎯 扩展复用:使用@标签实现代码复用
  • 🎯 多行支持:支持复杂命令和代码片段

掌握这些语法特性后,你将能够创建出真正智能的命令行速查表,大幅提升工作效率,告别命令行记忆负担。

下一步行动:开始创建你的第一个.cheat文件,从简单的系统命令开始,逐步构建个性化的命令行知识库!

【免费下载链接】navi An interactive cheatsheet tool for the command-line 【免费下载链接】navi 项目地址: https://gitcode.com/gh_mirrors/na/navi

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

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

抵扣说明:

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

余额充值