bash in a netshell

GLOB

"Glob" is the common name for a set of Bash features that match or expand specific types of patterns.

* 匹配0或多个字符(不能匹配".")
? 匹配1个字符
[abc] 匹配括号里的任意一个字符
{b*,c*,*est*} 匹配括号里的任意一个串,例如
> ls {[0-9]*,[a-z]*}.{log,sh}
ls: cannot access [0-9]*.sh: No such file or directory
ls: cannot access [a-z]*.log: No such file or directory
324.log 3aa.log a.sh*
预定义 [:alnum:] [:alpha:] [:blank:] [:cntrl:]
[:digit:] [:graph:] [:lower:] [:print:]
[:punct:] [:space:] [:upper:] [:xdigit:],
例如,匹配数字或"_"或"." [[:digit:]_.]
^或! 不匹配字符,例如,匹配非空白字符[![:space:]]

继续阅读

e1000e 驱动源码分析

驱动初始化与删除

我们从入口函数module_init(e1000_init_module)开始看,不过这个e1000_init_module简洁得只剩一句话pci_register_driver(&e1000_driver),看看e1000_driver如何定义:

定义一个PCI驱动,哪些PCI设备可以使用此驱动?
系统很热心,帮你把判断的代码写了,你只需提供匹配表即可,而.id_table就是匹配表。
你造吗?PCI有3种地址空间:I/O空间,内存地址空间,配置空间。而配置空间一个PCI的配置空间至少有256字节,布局如:

图片来源:http://blog.csdn.net/lamdoc/article/details/7698709
继续阅读