摘要:
4.1 排序文本4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统的C locale中,也就是ASCII顺序。4.1.2 以字段排序-k选项的后面接着的是一个字段编号,或者是一对数字。每个编号后面都可以接一个点号的字符位置,或修饰符字母。如果仅指定一个字段编号,则排序键值会自该字段的起始处开始,一直继续到记录的结尾(而非字段的结尾)。如果给的是一对用逗号隔开的字段数字,则排序键值将由第一个字段值的起始处开始,结束于第二个字段值的结尾。使用点号表示字符位置。-k2.4, 5.6指的是从第二个字段的第四个字符开始比较,一直比到第五个字段的第六个字符。$ 阅读全文
随笔分类 - Linux
《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-13 21:28 by java线程例子, 214 阅读, 收藏,
摘要:
编程的学习跟许多其他技艺的学习一样,首先必不可少的就是理论基础,其次就是需要大量的、不断地练习。老生常谈,这也许是每个人都懂得的道理,但说起来容易做起来难。所以想要学好编程,还需要些方法和毅力才行。对于编程来说,理论阶段的学习相对比较抽象。过早地就希望一口气掌握所有理论知识然后再开始实践,往往会越学越迷茫。因此从大的方面来说,比较好的方法是理论学习-实践-总结-理论学习-实践...... 这样周而复始地不断学习,不断练习,这样是比较高效的学习方法。根据我自身的学习经验,有一些学习方法以及工具推荐给你,希望对你有用。1. 确定学习方针和路线首先要想好自己的学习之路该怎么走。比如学习一门语言,开始 阅读全文
Ubuntu上LAMP环境搭建
2011-11-27 15:15 by java线程例子, 192 阅读, 收藏,
摘要:
1. 安装Apache 2sudo apt-get install apache2测试:firefox 127.0.0.12. 安装PHPsudo apt-get install php5 //安装PHP5sudo /etc/init.d/apache2 restart//重启APACHE测试:首先启用root(如果禁用的话)sudo passwd rootthen enter your password.然后切换到rootsu root最后在/var/www/里创建testphp.php在浏览器中访问:127.0.0.1/testphp.php3. 安装MySQLsudo apt-get i 阅读全文
Linux常用命令之文件管理
2011-11-27 14:58 by java线程例子, 149 阅读, 收藏,
摘要:
1. ls-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出-r 将档案以相反次序显示(原定依英文字母次序)-t 将档案依建立时间之先后次序列出-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)-F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"-R 若目录下有档案,则以下之档案亦皆依序列出常用: 查看文件具体具体信息:ls -l *E* 阅读全文
《Linux C一站式编程》第八章 数组
2011-11-27 14:57 by java线程例子, 312 阅读, 收藏,
摘要:
1. 数组的基本概念数组(Array)也是一种复合数据类型,它由一系列相同类型的元素(Element)组成。int count[4];和结构体成员类似,数组count的4个元素的存储空间也是相邻的。结构体成员可以是基本数据类型,也可以是复合数据类型,数组中的元素也是如此。根据组合规则,我们可以定义一个由4个结构体元素组成的数组:struct complex_struct { double x, y;} a[4];struct { double x, y; int count[4];} s;使用数组下标不能超出数组的长度范围,这一点在使用变量做数组下标时尤其要注意。C编译器并不检查coun... 阅读全文
《Linux C一站式学习》第七章 结构体
2011-11-27 14:57 by java线程例子, 161 阅读, 收藏,
摘要:
1. 复合类型与结构体在编程语言中,最基本的、不可再分的数据类型称为基本类型(Primitive Type),例如整型、浮点型;根据语法规则由基本类型组合而成的类型称为复合类型(Compound Type),例如字符串是由很多字符组成的。struct complex_struct { double x, y;};struct complex_struct { double x, y;} z1, z2;struct complex_struct z3, z4;struct complext_struct z = { 3.0, 4.0 }Initializer中的数据依次赋给结构体的各成员。如.. 阅读全文
《Linux C一站式学习》第三章 简单的函数
2011-11-27 14:56 by java线程例子, 302 阅读, 收藏,
摘要:
4. 全局变量、局部变量和作用域全局变量定义在所有的函数体之外,它们在程序开始运行时分配存储空间,在程序结束时释放存储空间,在任何函数中都可以访问全局变量。如果全局变量和局部变量重名了会怎么样呢?例3.6.作用域则第一次调用print_time打印的是全局变量的值,第二次直接调用printf打印的则是main函数局部变量的值。设想整个源文件是一张大纸,也就是全局变量的作用域,而main函数是盖在这张大纸上的一张小纸,也就是main函数局部变量的作用域。在小纸上用到标识符hour和minute时应该参考小纸上的定义,因为大纸(全局变量的作用域)被盖住了,如果在小纸上用到某个标识符却没有找到它的定 阅读全文
《Linux C一站式学习》第一章 程序的基本概念
2011-11-27 14:55 by java线程例子, 118 阅读, 收藏,
摘要:
1. 程序和编程语言程序是由一系列指令(instruction)构成,指令包含:输入、输出、基本运算、测试和分支、循环。编程语言分为低级语言(机器语言和汇编语言,用计算机指令编写程序)和高级语言(C、C++、Java、Python,用语句编写程序)。表1.1.一个语句的三种表示编程语言表示形式C语言a=b+1;汇编语言mov0x804a01c,%eaxadd$0x1,%eaxmov%eax,0x804a018机器语言a11ca0040883c001a318a00408最早的程序员都是直接用机器语言编程,但是很麻烦,需要查大量的表格来确定每个数字表示什么意思,编写出来的程序很不直观,而且容易出错 阅读全文