>>> 此贴的回复 >> 我用了很长时间的shell,但还是有很多问题没搞清查。直到最近,读了一些linux kernel的书(和shell相关的主要是process),我才有一种豁然开朗的感觉。以前似懂非懂,看书看得迷迷糊糊,听别人讲得懵懵懂懂的东西,现在都懂了。不但懂了为什么,还懂得为什么必然是这样。
我现在不敢说shell已经了如指掌,但至少我知道,已经没有什么能挡住我,让我觉得学不下去或者听都听不懂的东西了。
shell最本质的部分是叉进程,但是进程是什么,子进程和父进程有什么关系。任何一本shell书都不会讲,但是这对shell的学习太重要了。
此外,搞清查shell的语法和各个命令的语法也很重要。
比如quote。shell的quote其实很简单,但是为什么大家会觉得很难?主要原因是各个命令又有一套自己的解释。比如printf认\r,\t,\n之类的ANSI的字符,但是shell不认($''除外)。比如写regexp的时候,碰到+或者*,有时都得escape,但是\+是regex的要求,而\*是shell的要求,等等。
学shell,光练没用。但惭愧,shhgs也是闷头练了很久才有这点心得的。反正全都写出来了,供你参考。