很久没写日志了,呵呵,最近工作确实比较忙,加班多,再加上感觉没什么东西可写,就放下了。
这两天开通了 cnblogs 的博客,以后更多的日志会放到这里来。而与 C++ 相关的文章会同步地更新到原来的 cppblog 上去。与原来一样,这个 blog 还会坚持只有原创的原则。希望自己写的东西能对自己的学习有个交待,同时也对别人有用。
这段时间学习了一些UNIX方面的工具。在客户的公司呆了一年多,有不少的时间使用 UNIX Shell 进行工作,但说来惭愧,UNIX的东西还是一窃不通,除了最最常用的 cd 、rm 、mkdir 之类的。vi 也只会几个最为常用的编辑命令。总感觉够用就好,反正自己也只是用别人写好的脚本make一下就行了。不要说写UNIX平台的程序了,就算是 UNIX Shell 里常用的工具也不会。
上个月终于下决心要多学点。主要推动力当然是工作需要啦,原来同事写的脚本的不够灵活,如果 build 程序的时候条件与设想稍微有点不一样的话,就必须要手动修改脚本,而且修改的地方比较多。另外,用脚本生成的 makefile 还需要再进行手动修改,这些 makefile 都很大,对于我这个比较粗心的人来说,容易发生修改遗漏的情况。为了改变这个囧局面,只好自力更生啦。在学习了同事脚本的功能之后,自己结合着 shell 中 CSH 的帮助,用了一个星期总算是完成了自已想要的功能。现在用自己写的脚本方便多了,主要是能防止发生修改遗漏(因为所有的事都让脚本做,自己只在运行时给一些简单的参数就好),而且每次 build 能节省五分钟修改文件的时间,呵呵。借由这个机会,还学习了下 sed 工具用法。终于算是入门了。
收获呢,第一:csh 表面比较像 C,写出来的脚看起来比较“习惯”(针对我这个 C 程序员啦),不像 bash 那样,感觉关键字有点怪异。但功能没有 bash 那样灵活,而且 csh 的资料不多(bash 的倒是一大堆),这个脚本我还是靠 man 手册完成的。无奈客户的服务器上只支持csh。第二:sed 很好很强大,做不过于复杂的文本编辑真是非常的方便,而且 sed 命令形式貌似应用很广泛,在 perl 中的替换感觉也很像 sed。第三:十八般兵器各有长短。之前也试过用 python 来完成同样的工作,但比起 shell 脚本来说,还是要麻烦一些。对于简单的文本操作、文件操作,直接使用 shell 以及 sed 等工具的功能显然更方便,想想啊,在 python 里 import 模块,打开文件,再处理,再写入文件,shell 里也许只一句就搞完了。所以得学会在不同的场合下,找到最合适的工具,这样才能发挥最高的生产力嘛。所以说,多学点是没错滴。
总之呢,现在终于感觉 UNIX 嘛,也不是那么陌生,学一下也蛮有意思的。下面打算更深入地学习 bash、sed、perl等,然后学会基本的 UNIX 系统管理,软件安装和使用,试着写一写 UNIX 平台的 C/C++ 程序。