Linux程序员效率工具:比man更好用的命令提示工具
问题场景:
当你熟悉命令,但是无论出于何种原因都希望使用常见示例而不是详细的手册页时,是否想需要个比man <command>更有用的帮助手册。也许平时你100%依靠Google来找到适合您的CLI参数。
这里介绍给好用的工具cheat(俗称小抄?)。
cheat(https://github.com/cheat/cheat)是个这样的工具,帮助文档用常用的示例给出。这些帮助文档可以来源互联网社区(比如https://github.com/cheat/cheatsheets),也可以根据个人平时总结生成帮助菜单。
安装cheat
cheat是用golang语言编写。所以使用go的在线安装命令
tar -zxvf pandoc-2.10.1-linux-amd64.tar.gz //安装依赖pandoc
cd pandoc-2.10.1/bin
cp pandoc /usr/local/bin/
go get -u -v https://github.com/cheat/cheat.git
注意下这里go用1.14版本可以安装,用1.12没安装成功
初始化环境
mkdir -p ~/.config/cheat && cheat --init > ~/.config/cheat/conf.yml
初始化后,进行下载,互联网文档放在这个目录:
~/.config/cheat/cheatsheets/community/
而个人创建的放在这个目录:
~/.config/cheat/cheatsheets/personal/
使用cheat
cheat tar
会给出以下的提示,是不是比man简洁好多,而且更实用
# To extract an uncompressed archive:
tar -xvf '/path/to/foo.tar'
# To extract a .gz archive:
tar -xzvf '/path/to/foo.tgz'
# To create a .gz archive:
tar -czvf '/path/to/foo.tgz' '/path/to/foo/'
# To extract a .bz2 archive:
tar -xjvf '/path/to/foo.tgz'
# To create a .bz2 archive:
tar -cjvf '/path/to/foo.tgz' '/path/to/foo/'
高级用法:
要查看备忘单:
cheat tar # a "top-level" cheatsheet
cheat foo/bar # a "nested" cheatsheet
编辑备忘单:
cheat -e tar # opens the "tar" cheatsheet for editing, or creates it if it does not exist
cheat -e foo/bar # nested cheatsheets are accessed like this
要查看配置的cheat路径:
cheat -d
列出所有可用的备忘单:
cheat -l
列出所有标记有“networking”的备忘单:
cheat -l -t networking
要列出“个人”路径上的所有备忘单:
cheat -l -p personal
在备忘单中搜索短语“ ssh”:
cheat -s ssh
要搜索(通过正则表达式)包含IP地址的备忘单,请执行以下操作:
cheat -r -s '(?:[0-9]{1,3}.){3}[0-9]{1,3}'
可以以直观的方式组合标志。示例:在“个人”cheat路径上搜索标记有“networking”并匹配正则表达式的工作表:
cheat -p personal -t networking --regex -s '(?:[0-9]{1,3}.){3}[0-9]{1,3}'
在线cheat
http://cheat.sh/是一个更方便的网站。
当查询某个命令(比如ls)可以这样使用
curl cheat.sh/ls
当然也可以浏览器打开:
更多类似工具:
还有像很多类似工具:
tldr(https://tldr.sh/)
navi,https://github.com/denisidoro/navi
mnemonic, https://github.com/codesections/mnemonic
也许还有更多类似的工具。
但是,啥时候会将这些示例添加到man手册页中呢?比如有个命令,只打印手册页的EXAMPLES部分。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux查看服务器硬件信息的方法步骤
- Android实现EditText的富文本编辑
- Android仿搜狐视频、微视等列表播放视频功能
- android如何获取联系人所有信息
- Android条目拖拽删除功能实例代码
- Android Button点击事件的四种实现方法
- Android的App启动时白屏的问题解决办法
- Android获取本机各种类型文件的方法
- Android保存联系人到通讯录的方法
- Android学习之本地广播使用方法详解
- Android编程获取图片数据的方法详解
- Android垂直滚动控件ScrollView使用方法详解
- Android开发之自定义view实现通讯录列表A~Z字母提示效果【附demo源码下载】
- Android ExpandableRecyclerView使用方法详解
- Android开发之SD卡文件操作分析