graph-easy
日常我们经常需要画一些简易流程图,但是如果使用visio等工具来作图,一则略显大材小用,二则图片导出后再要粘贴。相比下,如果可以简单的用一些text的图来表达,则会简单的多。比如这种:
[root@host /]# echo '[kubectl],[kube-proxy],[kube-scheduler],[kube-controller],[kubelet]->[kube-api]->[etcd]' |graph-easy
+------------+
| kubectl |
+------------+
|
|
v
+-----------------+ +------------+ +---------+
| kube-controller | --> | | --> | etcd |
+-----------------+ | kube-api | +---------+
+-----------------+ | | +---------+
| kube-scheduler | --> | | <-- | kubelet |
+-----------------+ +------------+ +---------+
^
|
|
+------------+
| kube-proxy |
+------------+
这种流程图纯用ascii的符合组合而成,因此称为ascii流程图。本文推荐的graph-easy,就是ascii流程图作图的佼佼者。
graph-easy安装
这里以centos 7为例进行安装。可以从graph-easy官网进行下载包。
//下载安装包
wget https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Graph-Easy-0.76.tar.gz
//解决依赖与编译安装
yum install perl perl-ExtUtils-MakeMaker graphviz
Makefile.PL
make test
make install
graph-easy的使用
graph-easy的使用比较简单,官方提供了完整的操作文档。可以参考。
这里我举一些常用的例子,方便大家学习。
hello world
先来一个入门的hello world。
[root@host /]# echo '[hello]->[world]' | graph-easy
+-------+ +-------+
| hello | --> | world |
+-------+ +-------+
graph-easy的语法相对来说比较宽松,[hello]->[world]
,[hello]-->[world]
,[ hello ]-->[ world ]
都是可以的。这里可以根据个人的风格。我比较喜欢紧凑的风格。所以后面都是使用紧凑的方式来做。
线上加个上标
有时候要在连接线上加一个标志说明,比如我想要表明从上海坐车到北京,则可以使用下面的方式:
[root@host /]# echo "[shanghai]-- car -->[beijing]" | graph-easy
+----------+ car +---------+
| shanghai | -----> | beijing |
+----------+ +---------+
画一个环
[root@host /]# echo "[a]->[b]->[a]" | graph-easy
+---------+
v |
+---+ +---+
| a | --> | b |
+---+ +---+
[root@host /]# echo "[a]->[a]" | graph-easy
+--+
v |
+------+
| a |
+------+
多个目标或者多个源
[root@host /]# echo "[a],[b]->[c]" | graph-easy
+---+ +---+ +---+
| a | --> | c | <-- | b |
+---+ +---+ +---+
[root@host /]# echo "[a]->[b],[c]" | graph-easy
+---+ +---+
| a | --> | b |
+---+ +---+
|
|
v
+---+
| c |
+---+
多个流程在一个图内
[root@host /]# echo "[a]->[b] [c]->[d]" | graph-easy
+---+ +---+
| a | --> | b |
+---+ +---+
+---+ +---+
| c | --> | d |
+---+ +---+
改变图方向
默认图方向是从左到右的。有时候想要从上向下的流程图。可以用标签来调整
[root@host /]# echo "graph{flow:south} [a]->[b]" | graph-easy
+---+
| a |
+---+
|
|
v
+---+
| b |
+---+
其他还有诸如改变线型等,就不一一介绍了,可以参考官方文档来学习。
作者:xuxinkun
出处:xinkun的博客
链接:https://xuxinkun.github.io/
本文版权归作者所有,欢迎转载。
未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎扫描右侧二维码关注微信公众号xinkun的博客进行订阅。也可以通过微信公众号留言同作者进行交流。
出处:xinkun的博客
链接:https://xuxinkun.github.io/
本文版权归作者所有,欢迎转载。
未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎扫描右侧二维码关注微信公众号xinkun的博客进行订阅。也可以通过微信公众号留言同作者进行交流。