由于在本科接受的教育基本上就是microsoft教育,很少有机会接触unix/linux等其他操作系统,虽然有编译原理,知道了minux,也想着里面到底装着些什么,但那时以为也就是一个盒子里的东西,跑得不都是代码码,太“年轻”了。所幸那时,还有点叛逆精神,捣鼓了一阵linux,那是费了牛劲才把系统给跑起来。慢慢地配置服务器web server, 写个简单的页面,成就感就来了。慢慢地看鸟哥的网站,很经典,差不多很多linux的基础教育都是来自鸟哥的讲解,人比较笨点,鸟哥图文并茂,所以也能搞定一些基本的服务器设置。但毕竟只是停在操作层面上,内核一直没敢读,虽然后来继续读书时,也试着去看,还是没有入门。linux的启蒙教育就这么点

       接着就一个劲地看Steven Rechard的书,很神的人,每本都是经典,一路读下来,收获良多。工作的关系,项目也在linux上实施,加上实习阶段打下的unix的编程根底,个人感觉unix提供的环境最为关键。脚本编程也有本经典书,echo, sort, cut, awk, sed等基本用法都详细介绍到了,而且案例很经典。读了这本书,我的shell编程能力也基本能应付简单需求了。

       shell能做的最为简单的就是重复的事情,银行系统,最常用的作用有处理数据格式,数据导入导出,日常跑批,以及各种简单常用小工具的制作,环境配置等等。

       shell处理文本,或许我们平时都不会关注文本的格式,我们更多的是关注文本的语言语法,而忽视了格式语义。当然shell在处理语法上并没有优势,它是解释型的语言,但在它在处理格式语义上却有着与生具有的优势。所以如果认识到这点,对我们平时的代码生成技术也会促进,能极大的提高工作效率。另外shell的灵活性,也会在平时的工作中反复使用,让复杂的连续的动作通过shell脚本将它们关联起来。如果你对自己的工作进行很好的结构,就可以把每个工作分解成很多小模块,实现重用,并且维护好自己的工具集合,同时收集别人的工具,他山之石可以攻玉,而且shell脚本的很容易重用。这样就会有着复利效应,随着项目的进展,你的工具将成为除了代码之外的另一类产品。即便项目完结,工具还会在将来项目中用到,用脚本最大的好处就是它能让你从更通用,更类聚,更简单的角度去分析问题,要求你更深刻地分析问题的本质,分析需求的变化,问题的变化。如果屏蔽变化,转化变化。这其中只有在平时的不断实战中慢慢体会才会真正领悟。

Logo

更多推荐