灰常牛逼的命令行备忘录 navi

1. navi命令简介

1.1 navi命令简介

命令行是非常高效的工具,但一个很常见的现象是,很多命令行过一段时间就容易忘。举个栗子,如果我们常用 git 命令行管理代码、利用 conda 命令管理开发环境,如果过一段时间没用了,那么你还记得如何用 git 将本地代码同步到 GitHub,还记得如何用 conda 命令删除一个本地环境吗?
当然,我们可以在网上搜索一下,也能快速找到答案,但总之还是挺不方便的。我们常见的做法是,将容易忘记的命令行写到笔记中去,忘了再查就是。但现在,有一个新的开源项目 navi,它提供了一个交互式的备忘录。
可以说,不用做笔记、不用查 History,navi 允许你查阅所有的备忘录并执行对应的命令,我们再也不用担心忘记命令行了。

1.2 navi命令特性

  • 通过给定关键字或文字描述,更便捷地查找命令
  • 如果作为长命令的辅助部分,查找后的结果也可以直接复制粘贴到主命令
  • 命令行使用习惯或备忘录可以与其它人共享
  • 该工具也能实现命令行的自动补全

1.3 参考文档

https://url.cn/5pyiQLghttps://url.cn/5EE2Ejchttps://mp.weixin.qq.com/s/OOtzPgilCRos_7q8GqwvZQ

2. navi命令安装

2.1 先安装fzf

[root@navi ~]# git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf[root@navi ~]# ~/.fzf/install     #一路按y[root@navi ~]# . ~/.bashrc

2.2 再安装navi

[root@navi ~]# git clone --depth 1 http://github.com/denisidoro/navi /opt/navi[root@navi ~]# cd /opt/navi
[root@navi navi]# make install
scripts/install

2.3 如果通过ssh每次访问都需要重新source一下,更改bash

[root@navi ~]# vim ~/.bash_profile
[root@navi ~]# tail -3 ~/.bash_profile       #在末尾加上此三行
if test -f .bashrc ; then
source .bashrc
fi

2.4 即可使用navi命令

[root@navi ~]# navi

2.5 navi命令简介

2.5.1 默认情况下,选中的命令会直接执行。如果你只想将选中的命令输入到命令行上,你可以加上 --print 选项。

navi --print

2.5.2 你也可以在 navi 命令后直接加入 query 子命令来预先过滤要输出的命令结果。

navi query <cmd>

2.5.3 如果你想查找一些命令的常用语法,你也可以使用 search 子命令来从在线仓库中下载对应的备忘清单。

navi search <cmd>

3. 自定义备忘录

3.1 navi 所使用的备忘清单都是以 .cheat 为后缀的一些文件,navi 安装完后,默认包括了以下这些备忘清单。

https://github.com/denisidoro/navi

3.2 navi的自定义速查表

  • navi可以在后面加入search来快速查找命令,也可以直接输入navi并回车,进入界面后再查找。
  • 如果你以为navi只有这点本事就完全错了,navi之所以一上线就如此受欢迎,主要原因是它强大的自定义功能。而且自定义注释是支持中文的!
  • 原本的navi项目自带7个速查表,远远不够用。没关系,我们可以自己写一份速查表,放在navi速查表的路径下。

3.2.1 要实现此功能,我们可以用 --dir 参数将自己定义的备忘录 ( .cheat 文件) 传递给 navi 使用。

navi --dir "/folder/with/cheats"

3.2.2 如果你觉得每次都通过 --dir 参数过于麻烦,你也可以通过环境变量来进行设置。

export NAVI_PATH="/folder/with/cheats:/another/folder"

3.2.3 navi自定义备忘录规则

  • 可以直接把我们的备忘录文件夹添加到 Bash 环境中。机器之心做了更简单的一个操作,直接查找该工具的安装目录,然后手动删增备忘录,我们的发现这也是可以的。/opt/navi/cheats/路径下就能找到默认备忘录。
  • 当然,我们是要把以前的笔记做成.cheat 纯文本的,它的用法也不难,只不过要实现补全或带参数的命令,还是需要一些特殊的语法。如下是一个标准的.cheat 文件:

3.2.4 cheat 语法主要有以下几点:

  • 以「%」开头的行包含了特定的 Tag,也就是说上图「git」会作为标签加到该文件所有命令行最后;
  • 以「#」开头的行描述了该命令行的用法;
  • 以「$」开头的行应该为给定参数生成建议值;
  • 其它所有非空行应该都为可执行命令行。

3.2.5 我们来看一个官方给出的 .cheat 文件的示例内容

% git, code
# Change branch
git checkout <branch>$ branch: git branch | awk '{print $NF}'

灰常牛逼的命令行备忘录 navi相关推荐

  1. 命令行备忘录 navi 使用教程

    文章首发于个人公众号:「阿拉平平」 在 Linux 中,我们可以通过 history 查询并运行之前执行过的命令.但是对于 高频使用 与 相对复杂 的命令行,有没有什么好用的工具便于我们去管理呢? 本 ...

  2. Linux非常牛逼的命令

    1.删除0字节文件 find -type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 ps -e   -o "%C   : %p : %z : ...

  3. IDEA 真牛逼,900 行又臭又长的类重构,几分钟搞定?真香!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:juejin.im/post/5e11dd736fb9a04 ...

  4. IDEA真牛逼,900行又臭又长的类重构,几分钟搞定

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:橙味菌 https://juejin.im/post/5e1 ...

  5. IDEA 真牛逼,900行 又臭又长 的类重构,几分钟搞定

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:网传互联网公司加班表个人原创+1博客:点击前往,查看更多作者:橙味菌 链接:https://juejin.im/ ...

  6. idea抽取重复方法快捷键_IDEA 真牛逼,900行 quot;又臭又长quot; 的类重构,几分钟搞定...

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:网传互联网公司加班表 个人原创+1博客:点击前往,查看更多 作者:橙味菌链接:https://juejin.im ...

  7. IDEA牛逼!900行又臭又长的类重构,几分钟搞定

    最近,在对已有项目进行扩展的时候,发现要改动的一个类它长900行,开放了近40个public接口,我流着泪把它给改完了. 为了防止这样的惨剧再次发生在我的身上,我觉得有必要写一篇博客来让广大程序猿同胞 ...

  8. 牛逼,两百行Python代码带你打造一款《天天酷跑》游戏!

    公众号关注 "菜鸟学Python" 第431篇原创,设为 "星标",带你一起学编程! 最近一段时间,小编发现已经好久没有给大家带来趣味游戏的案例展示了.刚好小编 ...

  9. python七大神级插件_IntelliJ IDEA 15款超级牛逼插件推荐(自用,超级牛逼)

    满满的都是干货  所有插件都是在 ctrl+alt+s   里的plugins 里进行搜索安装 1.CodeGlance 代码迷你缩放图插件 2. Codota 代码提示工具,扫描你的代码后,根据你的 ...

最新文章

  1. python时间处理模块 datetime time模块 deltetime模块
  2. python编写数学公式大全_python - 用python编写数学公式 - 堆栈内存溢出
  3. Windows批处理命令学习三
  4. java stop和int,JAVA并发任务中止的isinterrupted,interupted()
  5. 上传图片即时显示图片
  6. crontab执行shell脚本日志中出现乱码
  7. mac mongodb可视化工具_MongoDB从立地到成佛(介绍、安装、增删改查)
  8. Caffe中如果高效实现卷积层
  9. Cookie案例-显示用户的上次访问时间代码实现
  10. 3306端口的入侵【转】
  11. springcloud架构特点_你想了解的「Spring Cloud」都在这里
  12. 根据某个特定字符删除一行
  13. 新随笔 注:关注后可阅读(持续更新--------)
  14. js jquery select 操作 获取值,选中选项,增加,修改,删除
  15. 【职场酸甜苦辣咸】+IT女汉子坚持的梦想和原则
  16. Java中HttpURLConnection使用代理服务器
  17. 软件工程概论课后习题
  18. 电动汽车仿真系列-电动汽车复合电源的建模与仿真研究
  19. 体验SubSonic
  20. MATLAB中前馈+反馈系统搭建-基于matlab控制系统工具箱

热门文章

  1. 9月份GitHub上最热门的机器学习项目
  2. Audition频率分析的Matlab实现代码:对同一个音源,matlab计算结果与Audition相同
  3. 计算机系学生应该怎么学java?
  4. 职称计算机 合格标准,计算机职称考试报名方式及合格标准是什么
  5. 服务器该怎样去维护管理
  6. 用批处理程序进行本地网速测试
  7. 华为云DGC数据治理方法论
  8. [病毒分析]熊猫烧香分析
  9. poi导出excel生成密码文件的版本问题
  10. MODIS MOD11A2地温产品_江仔91_新浪博客