代码改变世界

随笔分类 -  Unix

《Shell脚本学习指南》第四章 文本处理工具

2012-02-11 22:47 by java线程例子, 168 阅读, 收藏,
摘要: 4.1 排序文本4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统的C locale中,也就是ASCII顺序。4.1.2 以字段排序-k选项的后面接着的是一个字段编号,或者是一对数字。每个编号后面都可以接一个点号的字符位置,或修饰符字母。如果仅指定一个字段编号,则排序键值会自该字段的起始处开始,一直继续到记录的结尾(而非字段的结尾)。如果给的是一对用逗号隔开的字段数字,则排序键值将由第一个字段值的起始处开始,结束于第二个字段值的结尾。使用点号表示字符位置。-k2.4, 5.6指的是从第二个字段的第四个字符开始比较,一直比到第五个字段的第六个字符。$ 阅读全文

《Shell脚本学习指南》第三章 查找与替换

2012-02-11 17:10 by java线程例子, 176 阅读, 收藏,
摘要: 3.1 查找文本grep:使用POSIX定义的基本正则表达式(BRE)。egrep:使用扩展正则表达式(ERE)。fgrep:快速grep。使用优化的算法,匹配固定字符串而非正则表达式。1992 POSIX标准将这三个改版整合成一个grep程序。$ who | grep -F austen使用-F选项查找固定字符串。事实上,只要匹配的模式里未含有正则表达式的meta字符,则grep默认行为模式就等同于使用了-F。3.2.6 在文本文件里进行替换一般来说,执行文本替换的正确程序应该是sed - 流编辑器。sed 's/:.*//' /etc/passwd | 删除第一个冒号之后的 阅读全文

《Shell脚本学习指南》第二章学习笔记

2012-01-01 15:29 by java线程例子, 180 阅读, 收藏,
摘要: 2.1 脚本编程语言与编译型语言的差异编译型语言从源代码转换成目标代码,便能直接通过计算机执行。好处是高效,但运作于底层。例如,在C++里,很难进行“将一个目录里所有的文件复制到另一个目录中”之类的简单操作。脚本编程语言通常是解释型(Interpreted)的。由解释器读入程序代码,并将其转换成内部的形式,再执行。解释器本身是一般的编译型程序。2.2 为什么要使用Shell脚本脚本执行效率通常不如编译型语言,但它已经足够快了,足以忽略它性能上的问题。花一个小时写成的简单脚本,同样的功能用C或C++来编写实现,可能需要两天。脚本编程语言的例子有awk、Perl、Python、Ruby与Shell 阅读全文

《Shell脚本学习指南》第一章 背景知识

2011-12-30 21:26 by java线程例子, 208 阅读, 收藏,
摘要: 1.1 Unix简史Unix第一版诞生于1970年,也就是贝尔实验室退出Multics项目不久。在Unix广受欢迎的功能中,有许多是来自Multics操作系统。其中最著名的有:将设备视为文件,以及特意不将命令解释器或Shell整合到操作系统中。简单、务实、优雅Unix是在面向研究的环境下开发的,因而没有必要生产或销售成品的盈利压力。系统由用户自行开发,即用户就是开发人员。他们都是计算机科学家,分享给同样是计算机科学家的同事,因此衍生出“务实”的设计模式。他们在精益求精的同时,不断追求“优雅” - 简单就是力量。1.2 软件工具的原则一次做好一件事这个原则的结果自然就是会不断产生出更小、更专用于 阅读全文

大师里奇留给了我们什么

2011-12-12 22:33 by java线程例子, 142 阅读, 收藏,
摘要: C语言也贯彻了"保持简单"的原则,语法非常简洁,对使用者的限制很少。丹尼斯•里奇编写的教材《C编程语言》总共只有100多页,薄得难以置信。很多人都被它的简洁性吸引,学习并使用C语言。直到今天,C语言依然是世界上最重要的编程语言之一,"保持简单"原则显示了强大的生命力。发明Unix和C语言,给丹尼斯•里奇带来巨大的荣誉,他得到了1983年的图灵奖、1990年的汉明奖、1999年的美国国家技术奖章。尽管功成名就,但是就像他的工程设计思想,丹尼斯•里奇在个人生活上也尽量"保持简单"。他依然住在新泽西,低调地生活,不太在媒体上曝光,终身没有结 阅读全文