第三十一讲LINUX介绍1LINUX介绍1.1什么是Linux?UNIX是目前再科学领域的高级工作站最常用的操作系统。由美国电话电报公司贝尔实验室开发(AT&TBELLLaboratories)。UNIX早期没有统一版本,导致不同的UNIX版本之间有许多差别。后来IEEE开发了一套独立的UNIX标准(PortableOperatingSystemInterface可移植操作系统接口POSIX)。现有的大部分UNIX都遵循POSIX标准。Linux是一套免费使用和自由传播的类UNIX操作系统,源代码开放。能在各类平台上运行。最初有芬兰赫尔辛基大学的LinusTorvalds的学生设计。起初他觉得教学用minix操作系统不好,而想做一个更好的。严格的说Linux这个词就是Linux内核(Linuxkernel),如果您想得到最新版的内核,可以到只是一个操作系统的内核,但仅有一个内核还是不够的,所以有些公司或者组织,也许是个人就把内核和一些常用软件组织起来打包(如:编译器、系统管理工具、网络工具、office套件、绘图软件等等),这样就有了发行版一说了。因此,以Linuxkernel为核心再集成各式各样的应用程序或工具组成一套完整的操作系统就称为Linux发行版。目前流行的发行版有:Redhat、turbolinux、红旗linux、Debian等。所有的发行版都共享一个内核,都是那个内核。1.2RedLinux的发展:RedLinux1.1于1994年的11月3日发布,直到RedLinux9.0于2003年发布。2003年的9月22日开始原来合并在一起的Fedora和redhat开始分开发行。并行成为两个分支一个是开源免费的社区版Fedora,一个则是商业企业版本的RedHatEnterpriseEdition。Fedora的官方地址是的官方地址:系列,简写作:RHEL,又分为AS、ES、WS、Desktop4种,其中AS与ES是server系列RedHat企业LinuxAS(AdvancedServer)是企业Linux解决方案中最高端的产品,它专为企业的关应用和数据中心而设计。RedHat企业LinuxAS是唯一支持IBMi系列,p系列和z系列/S-390系统的产品。在IntelX86平台上,RedHat企业LinuxAS可以支持2个以上CPU和大于8GB的内存。典型的RedHat企业LinuxAS应用环境如下:·数据库和数据库应用软件·WEB和中间件·CRM,ERP,SCMRedHatEnterpriseLinuxESRedHat企业LinuxES(EntryServer)为IntelX86市场提供了一个从企业门户到企业中层应用的服务器操作系统。它支持1-2CPU和小于8GB内存的系统。它提供了与RedHat企业LinuxAS同样的性能,区别仅在于它支持更小的系统和更低的成本。典型的RedHat企业LinuxES应用环境如下:·公司WEB架构·网络边缘应用(DHCP,DNS,防火墙等)·邮件和文件/打印服务·中小规模数据库和部门应用软件RedHatEnterpriseLinuxWSRedHat企业LinuxWS(Workstation)是RedHat企业LinuxAS和ES的桌面/客户端合作伙伴。RedHat企业LinuxWS支持1-2CPU的intel和AMD系统,是桌面应用的最佳环境。它包含各种常用的桌面应用软件(Office工具,邮件,即时信息,浏览器等),可以运行各种客户-服务器配置工具,软件开发工具和各种应用软件(例如EDA和Oil/Gas应用软件)。RedHat企业LinuxWs和服务器产品由同样的源代码编译而成,但它不提供网络服务功能(如DNS和DHCP),它只适合作客户端应用。RedHatEnterpriseLinuxDesktop桌面版Desktop:redhat的官方解释Personalproductivity:mail,documentprocessing,browsing,instantmessaging;softwaredevelopmentLinux现在是个人计算机和工作站上的UNIX类操作系统。按照层次结构的观点,在同一种硬件平台上面,Linux可以提供和UNIX相同的服务,即相同的用户级和程序员级接口。同时,Linux绝不是简化的UNIX。相反,Linux是强有力和具有创新意义的UNIX操作系统。它不仅继承了UNIX的特征,而且在许多方面超过了UNIX。1.3Linux和GNU的关系1.2.1什么是GNU?GNU工程,又称革奴工程,是自由软件基金资助的一个项目(FreeSoftwareFoundation,FSF),其目标是开发一个自由的,UNIX类型的操作系统,称为GNU系统(GNU’snotUNIX的首字母缩写,与canoe发音相同)。GNU工程已经开发出许多高质量的应用工具,包括Emacs编辑器,GNUC和C++编辑器(GCC和G++)等。1.2.2LINUX和GNU的关系显然Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上各种应用程序通常人们习惯用Linux这个词来形容这个基于Linux内核的,并且使用GNU工程各种工具和数据库的操作系统。绝大多数基于Linux内核的操作系统使用了大量的GNU软件,包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序。由于Linux使用了许多GNU程序,GNU计划的开创者RichardStallman博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做Linux。有部分Linux套件,采用了“GNU/Linux”的称呼。1.4Linux组成基本由四大部分组成:内核kernel操作系统核心,最底层、最重要部分。具有操作系统内核的基本功能。实用工具(应用程序)数以千计工具。如:文本编辑、文件操作、数学、排版、音频、视频等等。Linux用户接口Shell:文字操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shellscript(非交互)方式执行。shellscript是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shellscript是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器。类似于DOS中的command.com。X-Windows:图形用户界面。和windows系统相似。文件结构文件结构是文件存放在磁盘设备上的组织方法,主要体现在对文件和目录的组织上。目录是管理文件的一种有效方式。Linux采用多级树形结构。2SHELL2.1什么是Linux终端2.1.1一些概念控制台:我们把显示器和键盘称为终端。又由于它们可以对系统进行控制,因此又叫控制台。一台计算机的输入/输出设备就是一个物理控制台,如果在一台计算机上用软件方法实现多个互不干扰,独立工作的控制台界面,就是实现了多个虚拟控制台。Linux终端:Linux终端也称为虚拟控制台。这是Linux从Unix继承的标准特性。Linux默认6个虚拟终端,XWindow在第7个虚拟终端上。控制台选择用Alt+Fn选择(n=1~6)。如Alt+F3,则出现“login:”即第三个虚拟控制台。虚拟控制台使得Linux成为真正的多用户操作系统,在不同的控制台上,可以同时接受多个用户登陆,也允许一个用户进行多次登陆。XWindow和控制台字符操作界面切换:Alt+Ctrl+Fnn=1~62.2操作系统命令及shell编程2.2.1操作系统命令2.2.1.1文件(目录)查看/查找cd命令:进入目录cat命令:显示文件(文本)的内容(直接跳到最后一屏)more命令:显示文件(文本)的内容(分屏显示)less:显示文件(文本)的内容(分屏显示、可回溯)sort命令:对文本文件中的各行按字母进行排序ls命令(与dir相似):显示当前目录中的文件和子目录列表find命令(类似命令:locate):文件或文件夹搜索grep命令查找文件内容wc命令:wc[选项]文件列表统计指定文件中的字节数(-c)、字数(-w)、行数(-l),并将统计结果显示输出。1LS命令命令格式:ls[选项][文件目录列表]ls命令中的常用选项如下:–-l:除文件名外,也将文件状态、权限、拥有者、文件大小等信息详细列出–-a:显示所有文件及目录(ls规定将文件名或目录名中开头为.的视为隐藏档,不会列出)–-t:根据文件建立时间的先后次序列出–-A:同-a,但不列出.(目前目录)及..(父目录)–-X:按扩展名排序显示–-R:递归显示下层子目录2FIND命令命令格式:#find[目录列表][匹配标准]说明:–目录列表:希望查询文件或文件集的目录列表,目录间用空格分隔。–匹配标准:希望查询的文件的匹配标准或说明。常见的匹配标准如下表所示。-name文件名–告诉find要找什么文件;要找的文件包括在引号中,可以使用通配符(*和?)-typex–匹配所有类型为x的文件。x是c(字符特殊),b(块特殊),d(目录),p(有名管道),l(符号连接),s(套接文件)或f(一般文件)。-sizen–匹配所有大小为n块的文件(512字节/块,若k在n后,则为1K字节块)。以时间特征为查找条件–-mtimen匹配所有在前n天内修改过的文件。–aminn匹配所有在n分钟以前被访问过的文件。–atimen匹配所有在n天以前被访问过的文件。–cminn匹配所有在n分钟以前文件状态被修改过的文件。–ctimen匹配所有在n天以前文件状态被修改过的文件。–mminn匹配所有在n分钟以前文件内容被修改过的文件。2.2.1.2文件(目录)的写操作命令mkdir–创建目录。cp命令–用于复制文件或目录。mv命令–移动文件或目录。rm命令–可从文件系统中删除文件及整个目录1CP命令命令格式如下:cp[选项]源文件|源文件组目标文件cp命令常用选项常用选项说明-a在备份中保持尽可能多的源文件结构和属。-b作将要覆盖或删除文件的备份。-f删除已存在的目标文件。-i提示是否覆盖已存在的目标文件。-p保持原先文件的所有者,组权限和时间标志-r递归拷贝目录,把所有非目录文件当普通文件拷贝。-R递归拷贝目录。2mv命令语法格式:mv文件1文件2mv目录1目录2mv文件列表目录注意:–1、可以作为文件或目录的重命名使用。–2、这个命令没有普通文件和目录的区别3RM命令命令格式:rm[选项]文件列表文件列表:希望删除的用空格分隔的文件列表,可以包括目录名。rm命令常用选项常用选项说明-r删除文件列表中指定的目录,若不用此标志则不删除目录-I指定交互模式。在执行删除前提示确认。任何以Y开始的响应都表示肯定;其他则表示否定。-f指定强行删除模式。通常,在删除文件权限可满足时rm提示。本标志强迫删除,不用提示。-V在删除前回显文件名。--指明所有选项结束。用于删除一个文件名与某一选项相同的文件。例如:假定偶然建立了名为-f的文件,又打算删除它,命令rm-f不起任何作用,因为-f被解释成标志而不是文件名;而命令rm---f能成功地删除文件。2.2.2SHELL编程shell是一种命令语言,同时又是一种程序设计语言。1何时用SHELL编程?当一个问题的解决方法需要使用多个Linux系统的标准命令时,可使用shell命令文件。如果处理的问题比较复杂,可以使用shell程序设计语言,即在命令文件中定义各种参数和变量,使用shell的条件命令、控制结构和其他高