如何理解一个linux工具
以层别思想为核心,数据和结构为框架的思路去理解问题。“层别”指知识可以划分出不同高度层级的知识,每一个层级内部的知识,又有小的不同区别。
简单说,这个工具的作用是什么,它的结构是什么,数据在这个结构中如何运动的。
以update-alternatives为例,进行说明。
update-alternatives作用
是解决多个软件对应一个命令的情况,如awk命令,常见的有gawk和mawk,且各有所长,
都有用到的时候,update-alternatives用优先级高的为默认的方式,
决定单纯用awk调用时,哪一个程序起作用,
如gawk优先级10,mawk是5,则awk调用gawk命令。
update-alternatives的结构
释名以彰义,在这个结构中,有“链接”、“名称”、“路径”、“优先级”。
以awk为例说明结构:
0级是存在层,即awk,代表“名称”,0级指向1级
1级是本质层,”/usr/bin/awk”,这个“链接”是所有系统公认的awk查找路径,1级指向2级。
2级是现象层,”/etc/alternatives/awk”,添加了这个抽象兼容层,
上接本质层的 awk,下接具体的实现gawk。
3级是现实层,”/usr/bin/gawk”,这个“路径”是本系统实际的工具,
由2级现象层指向3级现实层。
数据如何在结构中运动?
当调用awk命令后,也就是调用0级,引发:0级->1级->2级->3级,最终调用gawk这个命令。
所有的linux工具都可以用这种思路去从结构上理解,帮助记忆,
因为人家就是用这套哲学体系去琢磨出来的。