2019独角兽企业重金招聘Python工程师标准>>>
linux介绍
创始人
Linus Torvalds林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)出生于芬兰赫尔辛基市。父亲尼尔斯·托瓦兹(Nils Torvalds)是一名活跃的共产主义者及电台记者。托瓦兹家族属于在芬兰占6%的少数民族芬兰瑞典人。他毕业于赫尔辛基大学计算机科学系,1997年至2003年在美国加州硅谷任职于全美达公司(Transmeta Corporation)参与该公司芯片的code morph技术研发。后受聘于开源码发展实验室(OSDL : Open Source Development Labs,Inc),全力开发Linux内核。现任职于Linux基金会。
象征物
Tux
Tux(一只企鹅,全称为tuxedo,NCIT 90916P40 Joeing Youthy的网络ID)是Linux的标志。将企鹅作为Linux标志是由林纳斯·托瓦兹提出的。 大多数人相信,“Tux”这个名字来源于Torvalds UniX,而不是因为它看起来像是穿着一件黑色小礼服(tuxedo)。 这个企鹅图案在最佳Linux图标竞赛中被选中。其他一些图案可以在Linux图标大赛网站中找到。Tux的设计者是Larry Ewing,他于1996年,利用GIMP软件设计出了这个企鹅。 Tux已经成为Linux和开源社区的象征。
历史发展
Linux操作系统是UNIX操作系统的一种克隆系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。 下面主要根据这五个基本线索来追寻一下Linux 的开发历程,它的酝酿过程,最初的发展经历。首先分别介绍其中的四个基本要素(UNIX、MINIX、GNU 和POSIX,Internet 的重要性显而易见,所以不用对其罗嗦),然后根据Linux 的创始人Linus Torvalds 从对计算机感兴趣而自学计算机知识,到心里开始酝酿编制一个自己的操作系统,到最初Linux 内核0.01 版公布,以及从此如何艰难地一步一个脚印地在全世界hacker 的帮助下最后推出比较完善的1.0 版本这段时间的发展经过,也即对Linux 的早期发展历史进行详细介绍。 目前,Linux的发行版有很多,如Ubuntu,RedHat,Debian,Fedora等等。 UNIX 操作系统的诞生 肯·汤普逊(左)和丹尼斯·里奇(右)
Linux 操作系统是UNIX 操作系统的一个克隆版本。UNIX 操作系统是美国贝尔实验室的肯·汤普逊Ken.Thompson和丹尼斯·里奇Dennis Ritchie 于1969 年夏在DEC PDP-7 小型计算机上开发的一个分时操作系统。当时Ken Thompson 为了能在闲置不用的PDP-7 计算机上运行他非常喜欢的星际旅行(Space travel)游戏,在1969 年夏天乘他夫人回家乡加利福尼亚渡假期间,在一个月内开发出了unix 操作系统的原型。当时使用的是BCPL 语言(基本组合编程语言),后经Dennis Ritchie 于1972 年用移植性很强的C 语言进行了改写,使得UNIX 系统在大专院校得到了推广。 MINIX操作系统 Andrew S. Tanenbaum
MINIX 系统是由Andrew S. Tanenbaum(AST)开发的。AST 是在荷兰Amsterdam 的Vrije 大学数学与计算机科学系统工作,是ACM 和IEEE 的资深会员(全世界也只有很少人是两会的资深会员)。共发表了100 多篇文章,5 本计算机书籍。AST 虽出生在美国纽约,但是是荷兰侨民(1914 年他的祖辈来到美国)。他在纽约上的中学、M.I.T上的大学、加洲大学Berkeley 分校念的博士学位。由于读博士后的缘故,他来到了家乡荷兰。从此就与家乡一直有来往。后来就在Vrije 大学开始教书、带研究生了。荷兰首都Amsterdam 是个常年阴雨绵绵的城市,而对于AST 来说,这最好不过了,因为这样他就可以待在家里摆弄他的计算机了。MINIX 是他1987年编制的,主要用于学生学习操作系统原理。到91年时版本是1.5。目前主要有两个版本在使用:1.5 版和2.0 版,当时该操作系统在大学使用是免费的,但其它用途不是,当然目前都已经是免费的,可以从许多FTP上下载。 对于Linux 系统,他表示对其开发者Linus 的称赞。但他认为Linux 的发展有很大原因是因为他为了保持minix 的小型化,能让学生在一个学期内就能学完,而没有接纳全世界许多人对Minix 的扩展要求。因此这激发了Linus 编写Linux。Linus 正好抓住了这个好时机。 作为一个操作系统,MINIX 并不是优秀者,但它同时提供了用C 语言和汇编语言写的系统源代码。这是第一次使得有抱负的程序员或hacker 能够阅读操作系统的源代码,在当时这种源代码是软件商一直小心地守护着的。 GNU 计划 Richard M. Stallman
GNU计划和自由软件基金会(the Free Software Foundation - FSF)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU 系统。(GNU 是"GNU's Not Unix"的递归缩写,它的发音为"guh-NEW"。)各种使用linux 作为核心的GNU 操作系统正在被广泛的使用。虽然这些系统通常被称作"Linux",但是严格地说,它们应该被称为GNU/Linux 系统。 到上世纪90 年代初,GNU 项目已经开发出许多高质量的自由软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境,是Linux 能够诞生的基础之一。以至于目前许多人都将Linux 操作系统称为"GNU/Linux"操作系统。 POSIX 标准 POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在1980 年早期一个UNIX 用户组(usr/group)的早期工作的基础上取得的。该UNIX 用户组原来试图将AT&T 的系统V 和Berkeley CSRG的BSD 系统的调用接口之间的区别重新调和集成,从而于1984 年产生了/usr/group 标准。1985 年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI 的支持下责成IEEE 标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。到了1986 年4 月,IEEE 就制定出了试用标准。第一个正式标准是在1988 年9 月份批准的(IEEE 1003.1-1988),也既以后经常提到的POSIX.1 标准。 1989 年POSIX 的工作被转移至ISO/IEC 社团,并由15 工作组继续将其制定成ISO 标准。到1990 年,POSIX.1 与已经通过的C 语言标准联合,正式批准为IEEE 1003.1-1990(也是ANSI 标准)和ISO/IEC 9945-1:1990 标准。 POSIX.1 仅规定了系统服务应用程序编程接口(API),仅概括了基本的系统服务标准,因此期望对系统的其它功能也制定出标准。这样IEEE POSIX 的工作就开始展开了。在1990 年,刚开始有十个批准的计划在进行,有近300 多人参加每季度为期一周的会议。着手的工作有命令与工具标准(POSIX.2)、测试方法标准(POSIX.3)、实时API(POSIX.4)等。到了1990 年上半年已经有25 个计划在进行,并且有16 个工作组参与了进来。与此同时,还有一些组织也在制定类似的标准,如X/Open,AT&T,OSF 等。 在90 年代初,POSIX 标准的制定正处在最后投票敲定的时候,那是1991-1993 年间。此时正是Linux刚刚起步的时候,这个UNIX 标准为Linux 提供了极为重要的信息,使得Linux 的能够在标准的指导下进行开发,能够与绝大多数UNIX 系统兼容。在最初的Linux 内核代码中(0.01 版、0.11 版)就已经为Linux与POSIX 标准的兼容做好了准备工作。在0.01 版的内核/include/unistd.h 文件中就已经定义了几个有关POSXI 标准要求的常数符号,并且在注释中就写到"ok,这也许是个玩笑,但我正在着手研究它呢"。 Internet的传播 1991 年7 月3 日在comp.os.minix 上发布的post 上就已经提到了正在搜集POSIX 的资料。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。
编辑本段Linux 操作系统的诞生
1981 年IBM公司推出微型计算机IBM PC。在1981-1991 年间MS-DOS操作系统一直是微机上操作系统的主宰。此时计算机硬件价格虽逐年下降,但软件价格仍居高不下。当时Apple 的MACos 操作系统可以说是性能最好的,但是其天价没人能够轻易靠近。 到1991 年,GNU 计划已经开发出了许多工具软件。最受期盼的Gnu C 编译器已经出现,但还没有开发出免费的GNU 操作系统。即使是MINIX 也开始有了版权,需要购买才能得到源代码。而GNU 的操作系统HURD 一直在开发之中,但并不能在几年内完成。对于Linus 来说,已经不能等待了。从1991 年4 月份起,他开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。但后来Linux 的发展却完全改变了初衷。 1991 年初,Linus 开始在一台386sx 兼容微机上学习minix 操作系统。通过学习,他逐渐不能满足于minix 系统的现有性能,并开始酝酿开发一个新的免费操作系统。根据Linux 在comp.os.minix 新闻组上发布的消息,我们可以知道他逐步从学习minix 系统到开发自己的Linux 的过程。 从1991 年的4 月份开始,Linus 几乎花了全部时间研究386-minix 系统(hack the kernel),并且尝试着移植GNU 的软件到该系统上(GNU gcc、bash、gdb 等)。并于4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。 第一个与Linux 有关的消息是在1991 年7 月3 日在comp.os.minix 上发布的(当然此时还不存在Linux 这个名称,当时Linus 的脑子里想的可能是FREAX ,FREAX 的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。 在Linus 的下一发布的消息中(1991 年8 月25 日 comp.os.minix),他向所有minix 用户询问"What would you like to see in minix?"("你最想在minix 中见到什么?"),在该消息中他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU 的那样专业。开发免费操作系统这个想法从4 月份就开始酝酿了,希望大家反馈一些对于minix 系统中喜欢那些特色不喜欢什么等信息,由于实际的和其它一些原因,新开发的系统刚开始与minix 很象(并且使用了minix 的文件系统)。并且已经成功地将bash(1.08 版)和gcc(1.40 版)移植到了新系统上,而且再过几个月就可以使用了。 最后,Linus 申明他开发的操作系统没有使用一行minix 的源代码;而且由于使用了386 的任务切换特性,所以该操作系统不好移植(没有可移植性),并且只能使用AT 硬盘。对于Linux 的移植性问题,Linus 当时并没有考虑。但是目前Linux 几乎可以运行在任何一种硬件体系结构上。 到了1991 年的10 月5 日,Linus 在comp.os.minix 新闻组上发布消息,正式向外宣布Linux 内核系统的诞生(Free minix-like kernel sources for 386-AT)。这段消息可以称为Linux 的诞生宣言,并且一直广为流传。因此10 月5 日对Linux 社区来说是一个特殊的日子,许多后来Linux 的新版本发布时都选择了这个日子。所以RedHat 公司选择这个日子发布它的新系统也不是偶然的。
Linux 的命名
Linux 操作系统开始时被Linus取名为FREAX,英文含义是怪诞的、怪物、异想天开等。在他将新的系统上传到FTP服务器上时,管理员Ari Lemke很不喜欢这个名称,即取Linus的谐音Linux作为该操作系统的目录,于是称为Linux系统。 Linus在其传《Just for Fun》中解释:"坦白地说,我从来没有想到过要用Linux 这个名称发布这个操作系统,因为这个名字有些太自负了。而我为最终发布版准备的是什么名字呢Freax。实际上,内核代码中某些早期的Makefile - 用于描述如何编译源代码的文件 - 文件中就已经包含有"Freax"这个名字了,大约存在了半年左右。但其实这也没什么关系,在当时还不需要一个名字,因为我还没有向任何人发布过内核代码。而Ari Lemke,他坚持要用自己的方式将内核代码放到ftp 站点上,并且非常不喜欢Freax 这个名字。他坚持要用现在这个名字(Linux),我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负,或者部分坦白地说我并没有本位主义思想。但我想好吧,这也是个好名字,而且以后为这事我总能说服别人,就像我现在做的这样。"-- Linus Torvalds《Just for fun》第84-88 页。
Linux的读法
linux发音五花八门版本颇多,见到和听到的不下10种。根据linux的创始人Linus Torvalds的说法,Linux的发音和“Minix”是押韵的。“Li”中“i”的发音类似于“Minix”中“i”的发音,而“nux”中“u”的发音类似于英文单词“profess”中“o”的发音。依照国际音标应该是/'linэks/——类似于“里讷克斯”。但是,由于Linus Torvalds本人是芬兰人,所以他的Linux读音不是/'linэks/,而是/'liniks/.。 有人综合网上和linux自己的读音,概括出几个自认为最合适也最通用的读法:/li'n^ks/(“里那克斯”)或/'li:nэks/(“里讷克斯”)或/li'nju:ks/(“里纽克斯”)。这几个应该是谁都听得懂的。至于哪个比较正宗,当然是linux的原音。但事实上使用linux哪种读法的人似乎都不在少数。
编辑本段基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
编辑本段磁盘及分区
设备管理 在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux 把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件。 例如,第一个 IDE 设备,Linux 就定义为 hda;第二个 IDE 设备就定义为 hdb;下面以此类推。而 SCSI 设备就应该是 sda、sdb、sdc 等。 分区数量 要进行分区就必须针对每一个硬件设备进行操作,这就有可能是一块IDE硬盘或是一块SCSI硬盘。对于每一个硬盘(IDE 或 SCSI)设备,Linux 分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。 例如,第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、sdb1 等。 各分区的作用 在 Linux 中规定,每一个硬盘设备最多能有 4 个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。 对于早期的 DOS 和 Windows(Windows 2000 以前的版本),系统只承认一个主分区,可以通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。 主分区的作用就是计算机用来进行启动 操作系统 的,因此每一个 操作系统 的启动,或者称作是引导程序,都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区的最大区别。 我们在指定安装引导 Linux 的 bootloader 的时候,都要指定在主分区上,就是最好的例证。 Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。 以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。 因此,Linux 下面每一个硬盘总共最多有 16 个分区。 对于逻辑分区,Linux 规定它们必须建立在扩展分区上(在 DOS 和 Windows 系统上也是如此规定),而不是主分区上。 因此,我们可以看到扩展分区能够提供更加灵活的分区模式,但不能用来作为 操作系统 的引导。除去上面这些各种分区的差别,我们就可以简单地把它们一视同仁了。 分区指标 对于每一个 Linux 分区来讲,分区的大小和分区的类型是最主要的指标。 容量的大小读者很容易理解,但是分区的类型就不是那么容易接受了。 分区的类型规定了这个分区上面的文件系统的格式。 Linux 支持多种的文件系统格式,其中包含了我们熟悉的FAT32、FAT16、NTFS、HP-UX,以及各种 Linux 特有的 Linux Native和 Linux Swap分区类型。在 Linux 系统中,可以通过分区类型号码来区别这些不同类型的分区。
编辑本段文件系统
Linux继承了Unix操作系统结构清晰的特点。在linux下的文件结构非常有条理。但是,上述的优点只有在对linux相当熟悉时,才能体会到。 / 根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。 /bin bin 就是二进制(binary)英文缩写。在一般的系统当中,你都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录,比如 ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里。 /boot Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。 /cdrom 这个目录在你刚刚安装系统的时候是空的。你可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom /dev dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和我们常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。 /etc etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。 /home 如果我们建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。 /lib lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,你的系统就不能工作了。 /lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。 /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom。 /media 有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。 /opt 这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可 以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。 /proc 可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见 /etc/fstab /root Linux超级权限用户root的家目录。 /sbin 这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。 /selinux 好像是对SElinux的一些配置文件目录,SElinux可以让你的linux更加安全。 /srv 服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中 /sys Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。 /tmp 临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。 /usr 这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如像游戏啊,一些打印工具拉等等。/usr目录包含了许多子目录:/usr/bin目录用于存放程序;/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。你的软件包管理器(应该是“新立得”吧)会自动帮你管理好/usr目录的。 /usr/local 这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。 /usr/share 系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。 /var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。
文件类型
在介绍属性时,提到了最前面的标志(d或 -)可以表示目录或文件,那就是不同的文件种类。Linux的文件种类主要有下面这几种: 普通文件(regular file):就是一般我们存取的文件,由ls -al显示出来的属性中,第一个属性为 [-],例如 [-rwxrwxrwx]。另外,依照文件的内容,又大致可以分为: 纯文本文件(ASCII):这是Unix系统中最多的一种文件类型,之所以称为纯文本文件,是因为内容为我们可以直接读到的数据,例如数字、字母等等。设 置文件几乎都属于这种文件类型。举例来说,使用命令“cat ~/.bashrc”就可以看到该文件的内容(cat是将文件内容读出来)。 二进制文件(binary):我们在GNU发展史中提过,系统其实仅认识且可以执行二进制文件(binary file)。Linux中的可执行文件(脚本,文本方式的批处理文件不算)就是这种格式的。举例来说,命令cat就是一个二进制文件。 数据格式的文件(data):有些程序在运行过程中,会读取某些特定格式的文件,那些特定格式的文件可以称为数据文件(data file)。举例来说,Linux在用户登入时,都会将登录数据记录在 /var/log/wtmp文件内,该文件是一个数据文件,它能通过last命令读出来。但使用cat时,会读出乱码。因为它是属于一种特殊格式的文件。 目录(directory):就是目录,第一个属性为 [d],例如 [drwxrwxrwx]。 连接文件(link):类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx]。 设备与设备文件(device):与系统外设及存储等相关的一些文件,通常都集中在 /dev目录。通常又分为两种: 块(block)设备文件:就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1等文件。第一个属性为 [b]。 字符(character)设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 [c]。 套接字(sockets):这类文件通常用在网络数据连接。我们可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 [s],最常在 /var/run目录中看到这种文件类型。 管道(FIFO,pipe):FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为 [p]。
加载程序
LILO(LInux LOader),LILO代表Linux加载程序。LILO是一个在系统启动时运行的程序,它允许选择用于引导计算机的操作系统。 GNU GRUB(简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。
相关用户
普通用户可以在其权限许可的范围内使用系统资源,而超级用户(用户名为root)不仅可以使用系统中的所有资源而且可以管理系统资源。
工作方式
Linux的工作方式分为字符工作方式和图形工作方式。
版本命名
Linux内核有三个不同的命名方案。 早期版本:第一个版本的内核是0.01。其次是0.02,0.03,0.10,0.11,0.12(第一GPL版本),0.95,0.96,0.97,0.98,0.99及1.0。从0.95版有许多的补丁发布于主要版本版本之间。 旧计划(1.0和2.6版之间),版本的格式为A.B.C,其中A,B,C代表: A大幅度转变的内核。这是很少发生变化,只有当发生重大变化的代码和核心发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。 B是指一些重大修改的内核。内核使用了传统的奇数次要版本号码的软件号码系统(用偶数的次要版本号码来表示稳定版本)。 C是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。 第三次,自2.6.0(2003年12月)发布后,人们认识到,更短的发布周期将是有益的。自那时起,版本的格式为A.B.C.D,其中A,B,C,D代表: A和B是无关紧要的,C是内核的版本,D是安全补丁
Linux内核
Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言和汇编语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客林纳斯.托瓦兹(Linus B. Torvalds)为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,林纳斯·托瓦兹当时在Usenet新闻组comp.os.minix登载帖子,这份著名的帖子标示着Linux计划的正式开始。 在计划的早期有一些Minix黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。 技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。
编辑本段桌面环境
在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。这个名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。 现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。 KDE KDE(Kool Desktop Environment)项目始建于1996年10月,相对于GNOME还要早一些。KDE项目是由图形排版工具Lyx的开发者、一位名为Matthias Ettrich的德国人发起的,目的是为满足普通用户也能够通过简单易用的桌面来管理Unix工作站上的各种应用软件以及完成各种任务。 gnome GNOME即GNU网络对象模型环境 (The GNU Network Object Model Environment),GNU计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。 目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是GNU计划的正式桌面。 Xfce Xfce(XForms Common Environment)创建于2007年7月,类似于商业图形环境CDE,是一个运行在各类Unix下的轻量级桌面环境。原作者Olivier Fourdan最先设计XFce是基于XForms三维图形库。Xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。
编辑本段Linux发行版
Linux发行版指的就是我们通常所说的“Linux操作系统”,它可能是由一个组织,公司或者个人发行的。Linux主要作为Linux发行版(通常被称为"distro")的一部分而使用。通常来讲,一个Linux发行版包括Linux内核,将整个软件安装到电脑上的一套安装工具,各种GNU软件,其他的一些自由软件,在一些特定的Linux发行版中也有一些专有软件。发行版为许多不同的目的而制作,包括对不同计算机结构的支持,对一个具体区域或语言的本地化,实时应用,和嵌入式系统。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。 一个典型的Linux发行版包括:Linux核心,一些GNU库和工具,命令行shell,图形界面的X窗口系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公包,编译器,文本编辑器到科学工具的应用软件。 很多版本Linux发行版使用LiveCD,是不需要安装就能使用的版本。 主流的Linux发行版 Ubuntu, DebianGNU/Linux ,Fedora,Gentoo,MandrivaLinux ,PCLinuxOS,SlackwareLinux ,openSUSE,ArchLinux,Puppylinux,Mint,CentOS,Red Hat等。
大陆的Linux发行版
中标麒麟Linux(原中标普华Linux), 红旗Linux(Red-flag Linux) ,雨林木风YLMF OS,Qomo Linux(原Everest),冲浪Linux(Xteam Linux) ,蓝点Linux ,新华Linux ,共创Linux ,百资Linux ,veket,lucky8k-veket.Open Desktop ,Hiweed GNU/Linux ,Magic Linux ,Engineering Computing GNU/Linux ,kylin,中软Linux ,新华华镭Linux(RaysLX) ,CD Linux ,MC Linux ,即时Linux(Thizlinux) ,b2d linux ,IBOX ,MCLOS ,FANX,酷博linux,新氧Linux,Hiweed,Deepin Linux, 新氧、Hiweed、Deepin都是基于ubuntu,并且Deepin Linux是Hiweed与深度合并后的版本,原来的Hiweed已经停止更新,新氧也停止更新了。其中CD linux因可方便集成一些无线安全审计工具,及较好的中文界面和体积小巧,深受国人喜爱。 大众的Ubuntu , 初始版本: 2004年10月20日,赞助公司:Canonical有限公司,创始者:马克·舍特尔沃斯,支持的语言:多语种(包括中文) 简介:Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”, 是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。 Puppy Linux 5.2中文版
中文Puppy Linux开发者之家由“无线电子”开发的中文版Puppy Linux 5.2 雨林木风YLMF_OS 4.0 自从2010年5月底,雨林木风成功推出Ylmf OS 3.0正式版后,雨林木风宣布今后将停止对Ubuntu的优化改版,转向基于Linux底层内核的深度开发,从而构建一个“完全属于自己的OS”。自2011年3月以来,雨林木风接连发布了Ylmf OS 4.0的两个测试版本,直到现在终于推出了Ylmf OS 4.0正式版。目前已推出5.0测试版(2012-12-)
优雅的Linux Mint 初始版本: 2006年8月27日 Linux Mint 11桌面
开发者: Linux Mint Team 支持的语言:多语种(包括中文) 简介: Linux Mint于2006年开始发行,是一份基于Debian和Ubuntu的Linux发行版,其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件,它也增加了一套定制桌面及各种菜单,一些独特的配置工具,以及一份基于web的软件包安装界面。它与Ubuntu软件仓库兼容,使得它有一个强悍的根基,一个巨大的可安装软件库,还有一个完善的服务设置机制。 Linux Mint是对用户友好而功能强大的操作系统。它诞生的目的是为家庭用户和企业提供一个免费的,易用的,舒适而优雅的桌面操作系统。Linux Mint的一大雄心是:使用最先进的技术而不是美化的看起来像Windows的软件使普通人也感到易用,使自己成为可以和Windows并驾齐驱的操作系统。但是这个目标并不是使其看起来像微软的或者是苹果的,而是去创造我们心中的完美桌面系统。我们应该使linux技术更易用,更简便。 锐意的Fedora fedora logo
初始版本:2003年11月6日,开发者: Fedora Project,支持的语言 :多语种 简介:最早Fedora Linux社区的目标是为Red Hat Linux制作并发布第三方的软件包,然而当Red Hat Linux停止发行后,Fedora社区便集成到Red Hat赞助的Fedora Project,目标是开发出由社区支持的操作系统(事实上,Fedora Project除了由志愿者组织外,也有许多Red Hat的员工参与开发)。Red Hat Enterprise Linux则取代Red Hat Linux成为官方支持的系统版本。 Fedora Core(自第七版直接更名为Fedora)是众多 Linux 发行套件之一。它是一套从Red Hat Linux发展出来的免费Linux系统。现时Fedora最新的版本是Fedora 16,Fedora是linux发行版中更新最快的之一,通常每6个月发布一个正式的新版本。 Fedora和Redhat这两个Linux的发行版联系很密切。Redhat 自9.0以后,不再发布桌面版的,而是把这个项目与开源社区合作,于是就有了Fedora 这个 Linux 发行版。Fedora 可以说是Redhat 桌面版本的延续,只不过是与开源社区合作。 华丽的openSUSE 初始版本:2006年12月7日 开发者:openSUSE Project 支持的语言 :多语种(包括中文) 简介: openSUSE logo
openSUSE 项目是由 Novell 发起的开源社区计划。旨在推进 Linux 的广泛使用。openSUSEorg提供了自由简单的方法来获得世界上最好用的 Linux 发行版,SUSELinux。openSUSE 项目为 Linux开发者和爱好者提供了开始使用 Linux 所需要的一切。 openSUSE项目的目标是使 SUSE Linux 成为所有人都能够得到的最易于使用的 Linux 发行版,同时努力使其成为使用最广泛的开放源代码平台。为开放源代码合作者提供一个环境来把 SUSE Linux 建设成世界上最好的 Linux 发行版,不论是为新用户或者有经验的 Linux 用户。大大简化并开放开发和打包流程,以使 openSUSE 成为 Linux 黑客和应用软件开发者的首选平台。 自由的Debian Debian logo
初始版本:1993年8月16日 开发者 : Debian计划 支持的语言 :多语种(包括中文) 简介: DebianGNU/Linux是由一个叫做伊恩·默多克(IanMurdock)的牛人在1993年发起的,他的名字以Ian开头,他太太的名字Debra开头三个字母是Deb,于是在爱情的力量下,他发起了DebianGNU/Linux组织。 Debian 计划是一个致力于创建一个自由操作系统的合作组织。我们所创建的这个操作系统名为 Debian GNU/Linux,简称为 Debian。操作系统是使计算机运行的基本程序和工具的集合,其中最主要的部分称为内核(kernel)。内核是计算机中最重要的程序,负责一切基本的调度工作,并让您运行其他程序。 简洁的Slackware 初始版本:1993年7月16日 创始人:Patrick Volkerding 支持的语言 :多语种(包括中文) 简介: Slackware logo
SlackwareLinux是由Patrick Volkerding制作的GNU/Linux发行版,它是世界上依然存活的最久的Linux发行版,在它的辉煌时期,曾经在所有发行版中拥有最多的用户数量。但是,随着 Linux商业化的浪潮,Redhat、Mandrake 和Suse 这些产品通过大规模的商业推广,占据了广大的市场;Debian作为一个社区发行版,也拥有很大的用户群。相比之下,Slackware的不事声张,使得它从许多人(尤其是使用Linux的新用户)的视野中消失了。 与大多数其他的发行版不同,KISS(Keep it simple,stupid)是Slackware一贯坚持的原则,尽量保持系统的简洁,从而实现稳定、高效和安全。在KISS哲学里面,简单(Simple)指的是系统设计的简洁性,而不是用户友好(User friendly)。这可能会在一定程度上牺牲了系统的易用性,但却提高了系统的透明性和灵活性。 正是一直以来对KISS原则的坚持,Slackware赢得了简洁、安全、稳定、高效的名声,也赢得了一大批的忠实用户。 老牌的RedHat 初始版本:1995年5月13日 RedHat logo
支持的语言 :多语种(包括中文) 简介: Red Hat是全球最大的开源技术厂家,其产品Red Hat Linux也是全世界应用最广泛的Linux。Red Hat公司总部位于美国北卡罗来纳州。在全球拥有22个分部。 2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支持,标志著Red Hat Linux的正式完结。原本的桌面版Red Hat Linux发行包则与来自民间的Fedora计划合并,成为Fedora Core发行版本。Red Hat公司不再开发桌面版的Linux发行包,而将全部力量集中在服务器版的开发上,也就是Red Hat Enterprise Linux版。2005年10月RHEL4发布。
当前主要用途
1、Android 当然,首当其冲的是Android这款谷歌的基于Linux的移动操作系统。Android一心就想把苹果大获成功的iPhone挤入到小众设备领域,同时还在与大受欢迎的iPad作一番较量。Android把Linux交到了全球无数移动设备消费者的手里,大概是Linux迄今为止在主流界取得的最大成功。 2、小众个人电脑 3、机顶盒 4、自动柜员机(ATM) 5、维基百科、谷歌及更多 如果你曾经用过维基百科,那么你已经从Linux得到了好处,至少间接得益。实际上,在使用了多年的红帽和Fedora后,维基百科现在又在使用Ubuntu。可扩展性如何?维基百科现在每月的页面浏览量大约是100亿人次,据说这一切离不开Ubuntu的支持。 如果我们把话题转向企业应用,谷歌、亚马逊、思科、IBM、纽约证券交易所和维珍美国公司也都是大名鼎鼎的Linux用户。 6、政府 单单在美国,美国邮政管理局、美国国防部和美国联邦航空局都是Linux的重要政府用户。另外世界上还有许多政府做出了使用Linux的类似决定,包括法国、西班牙、德国和瑞士。 7、meego系统
编辑本段Linux的职业发展领域
职业领域:系统应用类(网管\系统管理和维护人员\安全管理人员中低端行业领域) 待遇属于中下 系统开发类行业(JAVA软件开发\C语言软件开发\WEB开发\嵌入式软件开发)其中嵌入式软件开发是linux应用最广的领域 待遇属于中等 发展方向:UNIX往高端领域和产业发展,例如:AIX、HP-UX、Solaris 等等。 Linux驱动工程师: 可为芯片厂商如Ti等公司推出新的芯片的时候编写和维护芯片和相关外围设备的驱动程序(SDK包),方便需求各种功能的开发商调用,职业起点较高;另一种是为公司的具体功能需求修改维护驱动程序,以便用户空间能对硬件操作完成各种特定功能,经验丰富的驱动工程师的工资是没有上限的。
具体特性
Linux的流行是因为它具有许多诱人之处。 完全免费 Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。这让Linux吸收了无数程序员的精华,不断壮大。 完全兼容POSIX 1.0标准 这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。 多用户、多任务 Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。 良好的界面 Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。 丰富的网络功能 Unix是在互联网的基础上繁荣起来的,Linux的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面Linux要优于其他操作系统。在Linux中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作。并且可以作为服务器提供WWW、FTP、E-Mail等服务。 可靠的安全、稳定性能 Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。Linux由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上Linux在这方面也十分出色。 支持多种平台 Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
实际应用
过去,Linux主要被用作服务器的操作系统,因为它的廉价、灵活性及Unix背景。传统上,以Linux为基础的“LAMP(Linux,Apache,MySQL,Perl/PHP/Python的组合)”技术,除了已在开发者群体中广泛流行,它亦是现时提供网站服务供应商最常使用的平台。 基于其低廉成本与高度可设置性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及移动装置等。在移动电话上,Linux已经成为Symbian OS的主要竞争者;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数码摄影机使用了经过客制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。 采用Linux的超级电脑亦愈来愈多,根据2008年11月的TOP500超级电脑列表,现时世上最快速的超级电脑使用Linux作为其操作系统。而在表列的500套系统里,采用Linux为操作系统的,占了439组(即87.8%)。 2006年开始发售的SONY PlayStation 3亦可使用Linux的操作系统,它有一个能使其成为一个桌面系统的Yellow Dog Linux。之前,Sony亦曾为他们的PlayStation 2推出过一套名为PS2 Linux的DIY组件。Ubuntu自9.04版本,恢复了PPC支持(包括PlayStation 3)。 而随着OLPC的XO-1,华硕的Eee PC等低价电脑的推行,许多人乐观的认为在低端PC市场,linux的市场占有率正在快速的增长。但在Windows进入此一市场后,Linux的市占率快速下滑。现在Windows系统在所有的PC市场中,都占有绝对优势。
相关认证
Linux认证指获得专业Linux培训后通过考试得到的资格。目前国际上广泛承认的Linux认证有Linux Professional Institute(简称为LPI)、SairLinux和GNU、Linux+和RedHatCertifiedEngineer。 Linux Professional Institute(LPI) LPILINUX认证权威指南(第2版)
就目前Linux团体所关注的程度来看,LPI认证计划受到了最为广泛的支持。LPI已经先期推出了Linux ProfessionInstitute Certified-Level 1(简称为LPIC-1)认证计划,不久的将来还会按预定计划推出第2和第3级认证。为了获得LPIC-1证书,你必须通过两门各自长达90分钟的考试—--101 (LPI General Linux,Part1)和102 (LPI General Linux,Part2)。LPI的LPIC—1的应试对象主要是有至少1年Linux工作经验的系统管理员。 Sair Linux 和 GNU 同LPI一样,Sair提供了三种级别的认证计划; Level 1——Sair Linux & GNU Certified Administrator(LCA) Level 2 —-- Sair Linux & GNU Certified Engineer(LCE) Level 3 ---- Master Sair Linux & GNU Certified Engineer(MLCE) 第1级才是目前得到完全开发的Sair认证项目,这一点也和LPI一样。 Linux+ CompTIA主办的Linux+认证计划是最新进入Linux认证市场的。该计划于2001年9月21日正式推出,目前已经在Linux从业人员和业内引起了广泛的关注。几乎所有的主要认证出版商都撰写了针对Linux+认证的考试参考书,众多的IT 培训中心都在准备Linux+认证计划了。 同CompTIA推出的其他带“+”号的认证一样,Linux十资格证书只需要通过一场考试即可获得(VUE和Prometric考试中心举办此类考试),一旦你获得了Linux+资格证书,证书就终生有效。Linux+考试价格是190美元,考试采用多选题形式,时长120分钟,所覆盖的内容很多都是和Sair以及LPI认证完全一样的,但难度稍有降低。 LPI和Sair认证计划的考试对象是具有相当经验的Linux网络和系统管理员,而Linux+认证则主要面向只有半年左右的Linux体验、想获得基本Linux技术资格的个人。 Red Hat Certified Engineer Linux+ 代表了低级的Linux认证计划,而高级的Linux认证长期以来则几乎完全是Red Hat CertifiedEngineer(RHCE)认证计划的天下。RHCE是该领域最具挑战性的认证考试,所以它也是最有价值的Linux认证。但也是最贵的,全套课程费用为2,498美金,也可单独做认证测验,费用为749 美金。
常用命令
echo 命令 举例:echo $PATH 功能:将命令行中的参数显示到标准输出中。 date命令 举例:date 功能:显示或设置系统时间,没参数直接显示系统当前的日期和时间 passwd命令 举例:passwd 功能:修改密码 file命令 举例:file 文件名 【参数】 功能:确定指定文件类型 ls命令 举例 ls -a 显示当前目录下的全部文件(包括隐藏文件) 功能:列出目录文件 touch命令 举例:touch 【选项】 文件名 ... 功能:修改指定文件的时间标签或者创建一个空文件 选项:-a 仅改变指定文件的存取时间 -c 不创建任何文件 -m 仅改变指定文件的修改时间 - t 使用指定时间
表达式使用
使用规则表达式要养成良好的习惯,就是在匹配模式的两端加上‘’。这样和shell的文件通配符号做区别。 正则表示法( Regular Exdivssion,RE ) 1 什么是正则表示法: 什么是正规表示式 ( Regular Exdivssion,底下简称 RE ) 呢?简单的说,在 Linux 的环境下,我们可以透过『字符串以及一些特殊字符的辅助』来进行文字的比对工作,好来让使用者筛选自己所需要数据。 这些特殊的字符与搭配使用的工具,就构成了正规表示法的主轴! 例如 / etc/ rc.d/ init.d 这个目录当中好了,如果你要找到一个文件内容含有 mail 这个字符串的文件名,要怎么搜寻呢?利用 grep 配合 mail 以及万用字符来搜寻所有的文件名『grep 'mail' /etc/rc.d/init.d/*』 2 正则表示法对于系统管理员的用途: 对于系统管理员来说,正规表示法则是一个『不可不学的好东西!』由于系统如果在繁忙的情况之下,每天产生的讯息信息会多到你无法想象的地步,而我们也都知道,系统的『错误讯息登录文件』 的内容记载了系统产生的所有讯息,当然,这包含你的系统是否被『入侵』的纪录数据。但是系统的数据量太大了,要系统管理员的 你每天去看这么多的讯息数据,想不疯掉都很难,这个时候,我们就可以透过『正规表示法』的功能,将这些登录的信息进行处理,仅取出『错误』的信息来进行分析。 3 正则表示法的广泛用途: 除了系统管理员之外,一大堆的软件与设定都是支持正规表示法的,最常见的例子就是『邮件服务器』!您是否有常常收到电子邮件里最让人诟病 的『广告信件』呢?那如果我在 Server 端就将广告信件给剔除的话,客户端就会减少很多不必要的频宽损耗了对吧!那么如何剔除广告信件呢?由于广告信件几乎都有一定的标题或者是内容,因此,只要 每次有来信时,都先将来信的标题与内容进行特殊字符串的比对,使用正规表示法发现有不良信件就予以剔除!目前两大服务器软件sendmail 与 postfix 都支持正规表示法的比对功能!很多的服务器软件、以及套件都支持正规表示法。
相关资料
LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式。它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( raw code) 作成符合自己口味的菜肴──个性化的linux,不单单是个性的桌面。 存在的原因 LFS 存在的一个重要原因是可以帮助人们学习 linux 系统的内部是如何工作的。构建一个 LFS 系统会帮助演示是什么使 linux运转,各种组件如何在一起互相依赖的工作。最好的事情之一,是这种学习的经历给予的是一种能力,能够定制满足您自己需要的 linux。 好处优势 LFS 的一个关键的好处是它让用户对于系统有更多的控制,而不是依赖于某些人的 linux 实现。在 LFS 的世界里,你是坐在司机的位置,掌控系统的每一个细节,比如目录层次和启动脚本配置。你也能掌控程序在哪里,为何,以及怎样被安装。 LFS 的另一个好处是可以创建一个非常紧凑的 linux系统。当安装一个常规的发行版时,人们经常要被迫安装一些可能永远不会用到的程序。这些程序浪费宝贵的磁盘空间,或更糟的是占用CPU资源。要构建一个少于100兆(MB)的 LFS系统不是一件难事,这相比较目前大多数的发行版要小很多。这听起来是不是仍然占许多空间?我们中一些人的工作是创建一个非常小的嵌入式的 LFS系统。我们成功的构建了一个系统,在只运行 Apache服务器的情况下,大约占8MB磁盘空间。进一步的缩减能够减至5MB或更少。你用一个常规的分发版本试试?这也只是设计你自己的 linux所带来的好处之一。 我们可以拿 linux 发行版与快餐店出售的汉堡打比喻,您不能决定您应该吃什么。相反,LFS没有给您一个汉堡。而是给您一张制作汉堡的配方。用户可以查阅配方,减掉不想要的配料,增加你自己的配料以增强汉堡的口味。当你对配方满意的时候,开始去做准备。您可以采用确定的方式:或烤,或烘,或炸,或焙。 另外一个比方是把 LFS 与建筑房子比较。LFS 提供房子的框架蓝图,但是需要您去建筑它。LFS 包含了在这过程中调整计划的自由,定制满足用户的需要和参考。 用户定制的 linux 系统的另一个好处是安全性。通过从源码编译整个系统,您能够审查任何东西,打上所有的安全补丁,而不需要等待别人去编译好修补了安全漏洞的二进制包。除非是您发现并制作的补丁,否则您得不到任何的保证,新的二进制包是否正确编译或修正了问题。