• 1. Linux操作系统实用教程第1章 Linux基础 1.1 Linux简介 1.2利用VMWare虚拟机搭建学习环境
  • 2. 第1章 Linux基础 本章概述 与目前流行的Windows相比,Linux是一个免费开放源代码的操作系统,其支持多用户多任务等优秀特点,吸引了一大批从事Linux研究和应用的爱好者,本章主要向初学者介绍什么是Linux,Linux的特点和优势,Linux的版本以及学习环境的搭建,以便初学者能够从总体上了解Linux操作系统,并且搭建自己学习Linux的环境。
  • 3. 第1章 Linux基础 1.1 Linux简介Linux是免费的、不受版权制约、与UNIX兼容的操作系统。 由芬兰人Linus Torvalds于1991年开发出来,目前由来自世界各地的爱好者进行开发和维护。 Linux自从诞生以来,凭借其稳定、安全、高性能和高扩展性等优点,得到了广大用户的欢迎。
  • 4. 1.1 Linux简介 1.1.1 UNIX简介1.1.1 UNIX简介 UNIX系统是工作站上最常用的操作系统,1969年诞生。 它是一个多用户、多任务的实时操作系统,允许多人同时访问计算机, 并同时运行多个任务。UNIX系统具有稳定、高效、安全、方便、功能强大等诸多优点,自20世纪70年代开始便运行在许多大型和小型计算机上。 UNIX虽然是一个安全、稳定且功能强大的操作系统,但它也一直是一种大型的而且对运行平台要求很高的操作系统,只能在工作站或小型机上才能发挥全部功能,并且价格昂贵,对普通用户来说是可望而不可及的,这为后来Linux的崛起提供了机会。Linux是一个类UNIX操作系统。
  • 5. 1.1 Linux简介 1.1.2 Linux的起源1.1.2 Linux的起源 1991年Linux诞生,由芬兰赫尔辛基大学学生Linus Torvalds在本校用于系统教学的Minix系统基础上开发的类UNIX操作系统。它的标志是一个名为Tux的可爱的小企鹅。 1991年10月5日,Linus发布了Linux的第一个版本:Linux 0.0.2,遵循通用公共许可证(GPL,General Public License) 同年11月Linus发布了其稳定版0.10版,12月又发布了0.11版本。 目前,最新的Linux内核版本是linux 4.0。
  • 6. (本页无文本内容)
  • 7. 1.1 Linux简介 1.1.3 Linux操作系统的特点1.1.3 Linux操作系统的特点 一方面,Linux在PC机上实现了UNIX系统的全部特性,具有多用户多任务的能力,同时保持了高效性和稳定性;另一方面,Linux的自由软件的特点,使得用户可以免费的获得,无偿的使用和传播。Linux具有如下的优秀的特点:1. 开放性 2. 完全免费 3. 多用户 4. 多任务 5. 良好的用户界面6. 设备独立性 7. 提供了丰富的网络功能 8. 可靠的系统安全性 9.良好的可移植性
  • 8. 1.1 Linux简介 1.1.4 Linux系统的版本1.1.4 Linux系统的版本 Linux的版本分为两类:内核版本和发行版本。 1.内核版本 内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。 Linux内核的版本号是有一定规则的,即“主版本.次版本号.修正号”。主版本号和次版本号一起标志着重要的功能变动,修正号表示较小的功能变更。次版本号的意义在于表示该版本是否为稳定版。若次版本号为偶数则表示该内核是一个稳定版,可放心使用;若次版本号为奇数则表示该内核是一个测试版,可能存在BUG。 Uname –a / cat /proc/version
  • 9. 1.1 Linux简介 1.1.4 Linux系统的版本1.1.4 Linux系统的版本 2.发行版本 发行版是由发行商搜索一系列的应用程序打包发售时的编号。一个完整的Linux由“内核程序+系统程序+应用程序”组成。比较著名的几个发行版本有如下几个: 1)RedHat Linux或Fedora Core Linux 官方网址:http://www.redhat.com。 2)Slackware Linux 官方网址:http://www.slackware.com。 3)SuSE Linux 官方网址:http://www.novell.com/linux/suse。 4)Debian Linux 官方网址:http://www.debian.org。 5)红旗Linux(国产) 官方网址:http://www.redflag-linux.com。
  • 10. 1.1 Linux简介 1.1.5 Linux的主要应用领域1.1.5 Linux的主要应用领域 Linux最主要的应用领域是基础服务器应用,如DNS服务器、DHCP服务器、Web服务器、FTP服务器、防火墙等。具体而言,目前Linux的主要应用领域包括以下几个方面: 1.Linux服务器 是目前Linux应用最多的一个领域,可以提供Web、FTP、Gopher、SMTP/POP3、Proxy/Cache、DNS等服务器,支持服务器集群,支持虚拟主机、虚拟服务、VPN等。 2.嵌入式Linux系统 嵌入式Linux是将流行的Linux操作系统进行剪裁修改,能够在嵌入式计算机系统上运行的一种操作系统。Linux嵌入式系统能够支持多种CPU和硬件平台,性能稳定,剪裁性好,开发和使用容易。其中包括Embedix、uCLinux、muLinux等。
  • 11. 1.1 Linux简介 1.1.5 Linux的主要应用领域3.桌面应用 近年来,Linux系统特别强调在桌面应用方面的改进,并且已达到相当的水平,完全可以作为一种集办公应用、多媒体应用、网络应用等多方面功能于一体的图形界面操作系统,在办公应用方面,Linux集成了openOffice、SUN公司的StarOffice以及KOffice等工具;在多媒体方面,有Totem、Noatun、Realplayer等多媒体播放器及相应的解码包;网络方面,有著名的浏览器Firefox、Mozilla等。这些软件都丰富了Linux的桌面应用。 4.电子政务 随着Linux的快速发展,Linux已逐渐成为Windows系统重要的竞争力量。尤其是Linux在安全性方面的独特优势,又使得Linux在政府应用领域得到很大的发展。目前一些国家正将其电子政务系统向Linux平台迁移。中国政府也对Linux给予极大的支持,而且红旗Linux已经获得中国政府的认可。
  • 12. 1.2利用VMWare虚拟机搭建学习环境 对于Linux的初学者来说,在自己的机器上安装Linux系统的必要的,但也存在风险的。虚拟机VMWare能够在现有的操作系统中,构建一台具有独立运行环境的“计算机”,用户可以在这台“计算机”中安装自己的实验平台,而不会影响其宿主系统的运行。以下是使用VMWare的方法。 1. 创建全新的虚拟机 (1)从网上下载VMWare,根据安装向导安装完毕后,打开VMWare进入启动主界面,如图所示。VMWare主界面
  • 13. 1.2利用VMWare虚拟机搭建学习环境 (2)单击“新建虚拟机”选项,进入“新建虚拟机向导”对话框,如图。 (3)单击“下一步”按钮,弹出“虚拟机配置”对话框,选择“典型”单选按钮,使用典型设置来建立虚拟机,如图所示。“新建虚拟机向导”对话框 “虚拟机配置”对话框
  • 14. 1.2利用VMWare虚拟机搭建学习环境 (4)单击“下一步”按钮,在接下来的“选择一个客户机操作系统”对话框中,选择合适的操作系统以及操作系统的版本,选择“Linux”单选按钮,在版本下拉列表中选择“Red Hat Linux”,如图所示。 (5)单击“下一步”按钮,弹出“虚拟机名称”对话框,设置一个虚拟名称。在“虚拟机名称”文本框中输入“RedHat 9”,选择保存该系统的路径,在“虚拟机名称”对话框中单击“浏览”按钮,选择拥有足够空间的分区,新建一个保存虚拟机文件的目录,如图。“选择一个客户机操作系统”对话框 “虚拟机名称”对话框
  • 15. 1.2利用VMWare虚拟机搭建学习环境 (6)单击“下一步”按钮,弹出“网络类型”对话框,需要选择虚拟机使用的网络类型。“使用桥接网络”允许虚拟机拥有和物理主机同一个网域的IP地址,通过桥接到物理主机所在的网络,来访问该局域网。“使用网络地址翻译”允许虚拟机拥有一个同物理主机所在网络不同的IP地址,通过NAT来实现对物理主机所在网域的访问。“使用Host-only网络”,虚拟机与物理主机通过虚拟私有网络进行连接,只有同为Host-only模式下的且在一个虚拟交换机的连接下才可以互相访问,外界无法访问。这里希望虚拟机能直接访问物理主机所在的网络,故在“网络类型”对话框中,选择“使用桥接网络”,如图。“网络类型”对话框
  • 16. 1.2利用VMWare虚拟机搭建学习环境 (7) 单击“下一步”按钮,弹出“指定磁盘容量”对话框,为虚拟机设置RedHat Linux 9系统使用的磁盘大小。选中“立即分配所有磁盘空间”复选框,如图。如果不选中“立即分配所有磁盘空间”,VMWare将不会立即为虚拟机分配硬盘空间,而是根据虚拟机的实际需要来自行分配硬盘空间。 (8) 单击“下一步”按钮,接下来,VMWare开始为其上的虚拟机,划分存储空间,建立相应的虚拟机文件,如图。“指定磁盘容量”对话框 VMWare划分磁盘空间
  • 17. 1.2利用VMWare虚拟机搭建学习环境 至此,虚拟计算机构建成功,其主界面如图所示。在命令区域,单击“编辑虚拟机设置”链接,进入如图的“虚拟机设置”对话框,选择“硬件”选项卡,在列表中选择需要设置的项目,然后在右边设置其属性。VMWare工作界面 “虚拟机设置”对话框
  • 18. 1.2利用VMWare虚拟机搭建学习环境 在VMWare的主界面中点击“启动该虚拟机”链接,启动新建的虚拟机,进入安装RedHat Linux 9的界面,如图所示。VMWare启动界面
  • 19. 1.2利用VMWare虚拟机搭建学习环境 2. 利用已有的虚拟机文件创建虚拟机 在VMWare中,除了可以创建全新的虚拟机外,还可用已有的虚拟机文件来创建虚拟机,这样生成的虚拟机原来的虚拟机完全相同。而且已有的虚拟机文件可以是其他用户的完整的虚拟机目录,也可以是他的独立的克隆文件。 1) 建立克隆文件 虚拟机的克隆文件是用来作为原有系统的备份使用的,也可以用来生成一个与原来虚拟机一样的新的虚拟机。建立克隆文件的步骤如下: (1) 启动VMWare软件,选择如下的菜单项:“虚拟机”→“克隆”,弹出如图的窗口。“克隆虚拟机向导”窗口
  • 20. 1.2利用VMWare虚拟机搭建学习环境 (2) 单击“下一步”按钮,在如图的“克隆源”窗口中,选择“虚拟机的当前状态”选项,从当前的虚拟机状态中创建一个虚拟机文件拷贝。 (3) 单击“下一步”按钮,在“克隆类型”窗口中选择“创建一个完整克隆”选项,那么VMWare将会为用户以当前的虚拟机状态为基础创建一个完整的虚拟机副本,并且这个副本可以完全独立于原来已有的虚拟机使用。如图所示。“克隆源”窗口“克隆类型”窗口
  • 21. 1.2利用VMWare虚拟机搭建学习环境 (4) 单击“下一步”按钮,在“新虚拟机名称”窗口中,设置新建的副本虚拟机的名称和存储的位置,如图所示。 (5) 单击“下一步”按钮后,VMWare开始为用户创建克隆的副本文件,如图所示。创建副本文件需要较长的时间,用户需要耐心等待该过程的结束。“新虚拟机名称”窗口创建克隆的副本
  • 22. 1.2利用VMWare虚拟机搭建学习环境 2) 利用已有的副本文件创建虚拟机 如果用户事先从其他用户那里已经获得了完整的虚拟机副本文件,那么就可以直接利用这个文件来创建虚拟机,步骤如下: (1)启动VMWare软件,使用如下的菜单项“文件”→“打开”,在弹出的打开对话框中选择后缀为.vmx的文件,然后单击“打开”即可,如图所示。利用已有虚拟机文件创建虚拟机
  • 23. Linux操作系统实用教程 第一章 完
  • 24. Linux操作系统实用教程第2章 Red Hat Linux 9的安装 2.1 安装前的准备 2.2 Red Hat Linux 9的安装与初次配置 2.3 Linux的启动、登录与退出系统 2.4 应用软件的安装
  • 25. 第2章 RedHat Linux 9的安装 本章概述 操作系统是用户使用计算机的桥梁,用户只有通过操作系统才能控制和使用计算机。作为Linux的初学者,安装自己的学习平台是必要的,本章将介绍安装和设置RedHat Linux 9的基本知识。并一步一步地指导读者安装自己的Linux系统。
  • 26. 2.1 安装前的准备 2.1.1 系统硬件要求2.1.1 系统硬件要求 Red Hat Linux 9可以在目前绝大部分计算机上顺利地安装和运行,绝大部分的硬件都可以被Red Hat Linux 9的安装程序探测到,并自动安装和加载驱动程序。Red Hat公司把硬件分成4类,具体见表 类别描 述认证经过Red Hat公司正式测试,支持Linux兼容Red Hat公司在正式测试项目之外审查过这个硬件提取知识别人发现这个硬件和Linux兼容,尽管Linux也可能在发行光盘中包含这些硬件的驱动,但并不明确支持不支持经过Red Hat公司正式测试,不支持Linux
  • 27. 2.1 安装前的准备 2.1.1 系统硬件要求具体的硬件要求如下: CPU:Pentium以上处理器。 内存:至少128MB,推荐使用256MB以上的内存。 硬盘:至少需要600MB硬盘空间。完全安装大约需要5GB的硬盘空间。 显卡:VGA兼容显卡。 光驱:CD-ROM或DVD-ROM。 其他设备:如声卡、网卡和Modem等。 软驱:可选。 用户可以通过Windows的设备管理器来获得自己计算机的硬件型号等参数。
  • 28. 2.1 安装前的准备 2.1.2 Linux分区规划2.1.2 Linux分区规划 每块计算机硬盘上最多可以被划分出4个主分区,也可以被划分出3个主分区和一个扩展分区,然后在扩展分区内建立多个逻辑分区,通常逻辑分区没有个数的限制。 在安装Red Hat Linux 9之前,通常对Linux系统的分区做如下的安排: /swap:交换分区,用来支持虚拟内存的分区,通常放在单独的分区,其大小为内存容量的1~2倍。 /:根分区,它只存放启动系统所需的文件和系统配置文件,应放置在ext3fs主分区中,单独分区。 /boot:启动分区,容量小于等于128MB,通常可以单独分区,存放Linux内核和其他与内核有关的文件。 /home:用户的宿主目录,通常将其设置在独立的分区中,为以后方便的磁盘定额做准备。
  • 29. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装2.2.1 RedHat Linux 9的安装 从光盘安装Linux是最常用的方法,下面介绍其步骤。 (1)启动计算机,进入BIOS设置程序,设为从CD-ROM启动。重启计算机,引导成功后,进入如图所示的界面。在该窗口中可以选择安装的方式:直接按Enter键,使用图形界面安装;输入“Linux text”后按Enter,则使用文本方式安装。选择安装界面
  • 30. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(2)直接按Enter键后,安装程序进入如图所示的安装盘检测界面。使用键盘方向键选择“Skip”,按Enter键略过光盘检测,直接进入下一步安装。 (3)选择“Skip”后回车,系统开始启动图形界面的安装程序,然后出现安装欢迎界面,如图所示。安装盘检测 安装欢迎界面
  • 31. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(4)单击“Next”按钮,进入安装过程的语言选择窗口,在此可以选择整个安装过程中使用的语言,如图所示。这里选择“简体中文”。 (5)单击“Next”按钮,系统进入如图所示“键盘配置”对话框,选择键盘的布局类型,安装程序会自动为用户选择一个通用的键盘类型(U.S. English),采用默认的设置。安装语言选择 “键盘配置”对话框
  • 32. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(6)单击“下一步”按钮,进入如图所示的“鼠标配置”对话框。这里系统会自动检测鼠标类型,并设置一个通用的鼠标类型,可采用默认值,也可根据情况进行选择。“鼠标配置”对话框
  • 33. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(7)单击“下一步”按钮,如果安装程序检测到在用户的计算机上已经安装有RedHat Linux的系统,就会出现“升级检查”对话框。可以选择“升级现有安装”选项,也可以选择“定制要升级的软件包”来选择需要升级的软件包。如果用户的计算机上没有安装RedHat Linux系统,则会来到“安装类型”对话框,如图所示。在此提供“个人桌面”、“工作站”、“服务器”和“定制”4种安装类型供用户选择。对于初学者,可以选择“个人桌面”。在此,选择“定制”,以更详细的控制安装的软件包。“安装类型”对话框
  • 34. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(8)单击“下一步”按钮,打开“磁盘分区设置”对话框,如图所示。用户可以选择“自动分区”或“用Disk Druid手工分区”。这里,需要将上一节的分区规划落到实处,故选择“用Disk Druid手工分区”。 (9)单击“下一步”按钮,在打开的如图所示的“创建分区”对话框中进行手工分区。选择空闲的磁盘,这里是/dev/sda。“磁盘分区设置”对话框 “创建分区”对话框
  • 35. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(10)单击“新建”按钮,打开如图所示的“添加分区”对话框,选择设置“挂载点”、“文件系统”,并指定该分区的大小。 这里首先选择的挂载点为根目录“\”,文件系统类型为“ext3”,指定空间大小设为6150MB。使用类似的方法进行分区,并设置: /boot,文件系统ext3,大小125MB; /home,文件系统ext3,大小越大越好; 交换分区swap,文件类型swap,大小518MB。 最后分区规划如图所示。“添加分区”对话框
  • 36. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装磁盘分区规划
  • 37. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(11)单击“下一步”按钮,在打开的如图的“引导装载程序配置”对话框中,RedHat Linux 9提供了两种系统引导程序供用户选择:GRUB和LILO,负责装载操作系统。默认使用的是GRUB,如果用户希望修改系统使用的引导程序,可以单击“改变引导装载程序”按钮选择自己需要的引导程序。这里采用默认值。“引导装载程序配置”对话框
  • 38. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(12)单击“下一步”按钮,打开“网络配置”对话框,允许用户根据实际的联网参数来配置网络,如果用户计算机没有连网,将不会出现该对话框。 安装程序会自动检测用户计算机上的网络设备,并显示在“网络设备”列表中。选中网络设备,单击“编辑”按钮,打开如图所示的“编辑接口”对话框,用户可以选择“使用DHCP进行配置”来自动获取网络参数。如果用户没有DHCP服务器,则需要进行手工配置,即在下面的“IP地址”和“子网掩码”文本框中输入合适的IP地址和子网掩码。这里就使用了手工配置。 “引导时激活”复选框被选中时,该网络接口会在系统启动时被启用。单击“编辑接口”对话框中的“确定”按钮后,回到“网络配置”对话框,然后设置相应的主机名、网关、主要DNS地址和次要DNS地址。
  • 39. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装“编辑接口”对话框
  • 40. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装“防火墙配置”对话框 (13)单击“下一步”按钮,弹出“防火墙配置”对话框。RedHat Linux 9为了增加系统安全性提供了防火墙保护。防火墙存在于计算机与网络之间,用来对远程用户访问计算机的数据流进行过滤。在如图所示的“防火墙配置”对话框中,系统提供了“高级”、“中级”和“无防火墙”3个安全等级。这里选择“中级”,并使用“定制”选项,在“信任的设备”列表中选定eth0,表示允许系统接受该网络设备的全部访问,不受防火墙的限制。在“允许进入”列表选择具体允许访问的服务。
  • 41. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(14)单击“下一步”按钮,打开“附加语言支持”对话框,如图所示。在RedHat Linux 9中可以安装多国语言支持,用户可以选择一种语言作为系统默认语言,在系统上只使用一种语言可以节省大量磁盘空间。这里选择安装简体中文和美国英语两种语言。“附加语言支持”对话框
  • 42. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(15)单击“下一步”按钮,在打开的“时区选择”对话框中选择用户所处的时区。在“位置”列表框中选择“亚洲/上海”选项,如图所示。 (16)单击“下一步”按钮,弹出“设置根口令”对话框,如图所示。Linux的根用户口令是非常重要的,用户必须在口令文本框中输入两次,以确认。 “时区选择”对话框 “设置根口令”对话框
  • 43. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(17)单击“下一步”按钮,弹出“验证配置”对话框。“验证配置”用于网络访问时对用户身份信息的校验,只有在用户需要连接到NIS网络是才需要设置“启用NIS”。通常此处的NIS、LDAP等选项无需设置,直接采用默认设置即可。 (18)单击“下一步”按钮,弹出“选择软件包组”对话框,如图所示。对于初学者来说建议选择所有的软件包,即选中“全部”复选框。这里进行了定制,自主选择了需要安装的软件包。系统会自动解决各软件包之间的依赖关系,并安装依赖的相关软件包。“选择软件包组”对话框
  • 44. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(19)单击“下一步”按钮,用户就会看到RedHat Linux 9的“即将安装”对话框,安装过程中的所有设置完成。 (20)单击“下一步”按钮进入正式的安装过程,如图所示。安装程序将首先格式化磁盘,接着校验用户选择的安装包,然后将用户选择的软件包依次安装到计算机上。安装完毕后进入正式的RedHat Linux 9安装过程。RedHat Linux 9安装进程
  • 45. 2.2 RedHat Linux 9的安装与初次配置 2.2.1 RedHat Linux 9的安装(21)安装进程完成后,安装程序将提示用户重启计算机,完成整个安装过程。 2.2.2 首次使用的配置 首次启动RedHat Linux 9时,安装程序会给出Linux的环境定制向导,出现如图所示的欢迎窗口。定制向导的“欢迎”窗口
  • 46. 2.2 RedHat Linux 9的安装与初次配置 2.2.2 首次使用的配置(1)单击“前进”按钮,进入如图所示的“用户账号”窗口。新建的账号是一个普通账号,没有管理员的权限,通常在Linux操作系统中,无特殊情况下,都使用该普通账号登录计算机。这里新建一个“tom”账号,并设置口令。 “用户账号”窗口
  • 47. 2.2 RedHat Linux 9的安装与初次配置 2.2.2 首次使用的配置(2)单击“前进”按钮,进入“日期和时间”窗口,如图所示,允许用户进行当前日期和时间的校对,也可以启用网络时间服务器,已获得准确的Internet时间。“日期和时间”窗口
  • 48. 2.2 RedHat Linux 9的安装与初次配置 2.2.2 首次使用的配置(3)设置完毕后,单击“前进”按钮,进行声卡的配置。RedHat Linux 9的安装程序能自动检测并设置声卡的驱动,如图所示。大部分情况下都能成功,用户只需单击“播放测试声音”即可听到声卡发出的用于检测的音乐,如果没有听到就需要用户手动安装声卡的驱动了,也可在进入系统后安装。声卡检测
  • 49. 2.2 RedHat Linux 9的安装与初次配置 2.2.2 首次使用的配置(4)单击“前进”按钮,来到软件注册的界面,由于RedHat Linux 9是免费版本的,如果用户愿意花费时间的话,就可以选择“是,我想在Red Hat网络注册我的系统”,否则选择“否,我不想注册我的系统”,如图所示。软件注册
  • 50. 2.2 RedHat Linux 9的安装与初次配置 2.2.2 首次使用的配置(5)单击“前进”按钮,进入“额外光盘”步骤,允许用户添加第三方的软件包,如图所示。将第三方软件包的安装光盘放入光驱后,单击“安装”按钮,即可安装。如果无需安装第三方软件包时,可以单击“前进”按钮,进入后继操作。第三方软件包安装
  • 51. 2.2 RedHat Linux 9的安装与初次配置 2.2.2 首次使用的配置(6)单击“前进”按钮后,完成首次登录定制,系统继续引导,进入登录界面,如图所示。输入用户名后回车,在弹出的对话框中输入口令后再按Enter键即可进入Linux系统。RedHat Linux 9登录界面
  • 52. 2.3 Linux的启动、登录与退出系统 2.3.1 RedHat Linux 9的启动RedHat Linux 9提供了图形和基于命令行的文本两种用户界面,因此也就提供了两种不同的用户登录和退出方式。 2.3.1 RedHat Linux 9的启动 RedHat Linux 9的启动包括两部分的初始化:内核部分和init部分。内核部分负责系统的硬件检测和初始化,init程序主要完成系统的各项配置。在init程序运行时,其配置文件为系统准备了0~6的运行级别,分别定义了不用的运行模式,常用的是级别3,即多用户文本模式,以及级别5,即多用户图形模式。 如果默认的运行级别为3,即基于命令行的文本界面,在系统正常启动后,可以通过init 5命令来转入运行级别5(图形用户界面)。如果默认的运行级别为5,则在系统正常启动后,可通过init 3命令转入运行级别3(文本界面)。
  • 53. 2.3 Linux的启动、登录与退出系统 2.3.2 登录2.3.2 登录 使用RedHat Linux 9的第一步,就是登录。根据Linux提供的两种不同的用户界面,系统提供了两种不同的登录方式:图形化登录和虚拟控制台登录。 1.图形化登录 如果RedHat Linux 9在安装的过程中使用的是图形界面,那么该系统将被自动设为运行于图形界面。此后启动时,系统就会进入图形化登录屏幕,如图所示。RedHat Linux 9图形登录界面
  • 54. 2.3 Linux的启动、登录与退出系统 2.3.2 登录2.虚拟控制台登录 如果RedHat Linux 9在安装过程中选择的是文本界面,则该系统在安装完成后,将自动被设为运行在基于命令行的文本界面。系统启动后,就会进入虚拟控制台登录界面,并给出如图所示的登录提示。 登录系统后,可使用init 5和startx命令来启动图形化桌面。RedHat Linux 9文本登录界面
  • 55. 2.3 Linux的启动、登录与退出系统 2.3.3 注销和关机2.3.3 注销和关机 1.注销 注销也分两种情况:图形化桌面的注销和文本模式的注销。在图形模式下,选择“主菜单”→“注销”命令,出现如图所示的注销确认对话框,选择“注销”选项后,单击“确认”按钮即可。如果想要保存桌面的配置以及还在运行的程序,可以选中“保存当前设置”复选框。 在虚拟控制台下,可以通过exit命令或使用Ctrl+D组合键来实现从虚拟控制台会话中注销。 注销确认对话框
  • 56. Linux操作系统实用教程 第二章完
  • 57. Linux操作系统实用教程第3章 Red Hat Linux 9的运行模式 3.1 X Window系统简介 3.2 GNOME桌面环境 3.3 K桌面环境 3.4 Red Hat Linux 9的命令行环境 3.5文本编辑器vi的使用
  • 58. 第3章 Red Hat Linux 9的运行模式 本章概述 和Microsoft开发的Windows操作系统一样Linux系统也提供了一个图形的用户桌面系统X Window,它有两种风格不同的整合环境KDE和GNOME。在X Window中用户同样可以通过使用鼠标对窗口、菜单等进行操作来完成相应的工作。同时Linux还继承了UNIX系统传统的基于命令行的文本用户环境,使得用户可以在命令行的高效的环境下完成自己的工作。本章介绍了Red Hat Linux 9提供给用户的两种工作模式,X Window和命令行模式。
  • 59. 3.1 X Window系统简介 如果Linux安装时使用的是图形界面,安装成功后,系统会自动选择图形化环境启动。用户登录成功时,将自动转入X Window用户桌面。Red Hat Linux 9默认使用的是GNOME图形操作环境,其界面如图所示。GNOME界面
  • 60. 3.1 X Window系统简介 3.1.1 什么是X Window系统3.1.1 什么是X Window系统 X Window系统是一个非常出色的图形窗口系统,是类UNIX系统的图形用户界面的工业标准。X Window系统最重要的特征之一就是它的结构与设备无关。 X Window系统于1984年在美国的麻省理工学院(MIT)开始开发,后来成立了MIT X协会用户研究发展和控制标准。现在使用的是X Window系统的第11版的第6次发行,所以也称之为X11R6。 X Window系统的主要特点有如下几点: (1)X Window系统是客户机/服务器结构的。X Window的实现是与操作系统内核分开的,其主要由X Server和X Client两部分组成。 (2)X Window系统不是Linux操作系统的必须的构成部分,而只是一个可选的应用程序组件。
  • 61. 3.1 X Window系统简介 3.1.2 X Window系统的基本结构 (3)X Window系统具有网络操作的透明性。 (4)支持多种不同风格的操作界面。 (5)X Window系统是开源的,可以通过网络或其他途径免费获得源代码。 3.1.2 X Window系统的基本结构 X Window系统主要由3部分组成: 1)X Server X Server是控制显示器和输入设备(主要是鼠标和键盘)的软件。X Server可以建立窗口,在窗口中绘制图形和显示文字,响应X Client程序的请求。每一套显示设备都只对应惟一的X Server,而且X Server一般由系统的供应商提供,通常无法被用户修改。
  • 62. 3.1 X Window系统简介 3.1.2 X Window系统的基本结构2)X Client X Client是使用系统窗口功能的一些应用程序。作为X Server的客户端,向X Server发送请求用于完成特定的动作。 3)通信通道 通信通道是X Server和X Client之间传输信息的通道,通过这个通道,X Client传送请求给X Server,而X Server回传状态和其他信息给X Client。 X Window系统为用户图形界面(GUI,Graphic User Interface)提供了最基本的支持,而具体的窗口样式和更多的图形化工具的支持,则需要借助于窗口管理器和桌面环境。窗口管理器是运行在X Server上的客户应用程序,它管理应用程序窗口,可以实现改变窗口尺寸、打开和关闭窗口等操作。
  • 63. 3.2 GNOME桌面环境 3.2.1 GNOME简介GNOME(GNU Network Object Model Environment)是一个基于GPL的完全开放式的软件,是Red Hat Linux 9默认的图形界面。 3.2.1 GNOME简介 GNOME是一种整合式的桌面环境,由许多功能强大的组件组成,其中包括: 一个面板(用于打开应用程序和显示状态) 桌面(用于放置应用程序及数据) 一系列的桌面工具和应用程序 一系列的协议(用于协调各应用程序)
  • 64. 3.2 GNOME桌面环境 3.2.1 GNOME简介Red Hat Linux 9的GNOME界面如图所示。 GNOME界面
  • 65. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面3.2.2 GNOME的面板与桌面 GNOME是一个友好的桌面环境,在Red Hat Linux 9中,可以笼统地将GNOME分为两个部分: 一部分是用来打开应用程序的和显示状态的面板; 另一部分是显示操作的桌面。 1. 面板 不同版本的GNOME面板的样式不尽相同,Red Hat Linux 9中的GNOME面板,放置在Linux桌面的底部,如图所示。 主菜单应用程序启动器工作区切换器窗口列表通知区域时钟GNOME面板
  • 66. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面最左边的红帽按钮是GNOME面板的主菜单,单击之后会出现一个菜单,其中几乎包含GNOME的所有项目,如应用程序、系统工具、运行程序以及注销/屏幕锁定等,如图所示。其中主要选项说明如下: (1)首选项:该选项的功能与较早GNOME版本中的“GNOME控制中心”相似,其中包含的大部分程序均为桌面环境的设置入口,如屏幕保护程序、菜单和工具栏等,具体选项如图所示。 (2)图形:该选项包含了图片的编辑和浏览工具等。主菜单包含的选项 首选项菜单
  • 67. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面(3)编程:该选项包含了用于程序开发相关的工具。 (4)系统工具:类似于Windows中的“控制面板”,包含了系统管理员常用的大部分工具,例如硬件、系统、终端、服务器以及网络监视等选项。其中终端的选项提供给用户一个虚拟的命令行环境,用户可以像在文本环境下一样使用丰富的Linux命令。 (5)系统设置:包含了系统环境相关的设置程序,也类似于Windows中的“控制面板”。 (6)互联网:包含了与Internet应用相关的工具,例如电子邮件客户端、浏览器等。 (7)办公:该选项中包括了openoffice 1.0的软件套件。 (8)音频和视频:该选项中包括了与音频或视频等多媒体相关的播放软件。
  • 68. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面(9)游戏:该选项中包括了多款游戏软件,可以增加使用者的乐趣。 (10)附件:该选项中包括了众多常用的小工具,比如字典、计算器等。 (11)主文件夹:单击后可以直接打开当前用户的个人主目录。 (12)帮助:该选项可以打开完整的GNOME在线帮助,如图所示。 GNOME的联机帮助
  • 69. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面(13)运行程序:单击该选项后可以打开如图所示的窗口,可以通过输入欲执行的应用程序的名称或通过在“已知应用程序”列表中选择相应的应用程序的方法运行应用程序。 (14)网络服务器:给出了打开samba客户端的入口,通过该客户端,用户可以使用局域网络,samba服务器提供了网络共享服务。“运行程序”窗口
  • 70. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面(15)查找文件:该选项提供了图形界面的搜索文件的工具,单击该选项后出现如图所示的“搜索文件”窗口。 (16)最近打开的:保存了最近用户打开的文件的列表。 (17)锁住屏幕:当用户需要暂时离开机器时,出于安全性的考虑可以锁定屏幕,此后只有输入正确的口令才能解除锁定。 (18)注销:该选项单击后出现“您要正确注销吗?”窗口,在此可以注销、关闭和重启计算机。“搜索文件”窗口
  • 71. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面主菜单的旁边是应用程序启动器,这些按钮可以用于启动对应的应用程序或命令。例如第一个应用程序启动器按钮就是Mozilla浏览器的启动器。如果需要修改启动器的内容,可以右击相应启动器,然后选择“属性”选项,在此后打开的“启动器属性”对话框中,进行设置,如图所示。“启动器属性”对话框
  • 72. 3.2 GNOME桌面环境 3.2.2 GNOME的面板与桌面在应用程序启动器旁边的4个小方格,代表4个桌面,如果用户在桌面上同时打开多个窗口,桌面就会显得很混乱,此时用户就可以使用这个工具,打开其他的桌面,然后在其中运行程序。 2. 桌面 在Red Hat Linux 9中,面板的上方就是桌面,如图所示。其中“从这里开始”相当于Windows中的“控制面板”,“root的主目录”相当于Windows桌面上的“我的文档”,而“回收站”的功能与Windows桌面的“回收站”完全一致。用户还可以将面板中的一些应用程序启动器拖拽到桌面上。GNOME的桌面
  • 73. 3.2 GNOME桌面环境 3.2.3 GNOME设置3.2.3 GNOME设置 在GNOME 2.0中,前一版本GNOME中的管理工具“GNOME控制中心”被“首选项”所替代。用户可以通过单击“主菜单”→“首选项”→“控制中心”选项,或是命令“gnome-control-center”,打开“首选项”窗口,如图所示。“首选项”窗口
  • 74. 3.2 GNOME桌面环境 3.2.3 GNOME设置2. 更变背景 变更背景可以改变桌面背景的图案、图案位置、背景的显示方式以及背景颜色等,在选择后即可立即生效。 在“首选项”窗口中双击“背景”图标即可打开如图所示的“背景首选项”窗口,然后根据需要设置即可。 更变背景
  • 75. 3.3 K桌面环境KDE是Linux提供了另一个完整的整合式桌面环境,其中包括文件管理器、窗口管理器、帮助系统、配置系统等,还有为数众多的小程序。如果Linux默认的图形桌面是GNOME,可以在终端的命令提示符下输入如下的命令 switchdesk kde,然后重启系统,进入KDE桌面,如图所示。KDE桌面环境
  • 76. 3.3 K桌面环境 3.3.1 KDE简介3.3.1 KDE简介 KDE(K Desktop Environment)是目前Linux平台下的两大整合桌面环境之一,它是1996年10月由Matthias Ettrich开发的。与GNOME的最大不同在于,KDE原先是使用商业版的QT library开发的,用户需要付费使用,而GNOME使用的是开放源代码的GTK库,因此为了使得KDE得到更大的发展,QT library的版权进行了修改,变成了后来的QPL(Q Public License),KDE也被运用于一般的非商业领域。
  • 77. 3.3 K桌面环境 3.3.2 KDE的面板和桌面3.3.2 KDE的面板和桌面 KDE也GNOME一样,在屏幕的底部也有一个贯穿桌面的面板,如图所示。在默认安装的情况下,其中包括了主菜单图标以及用来启动浏览器、电子邮件客户端、文字处理工具和其他常用工具的快速启动器。主菜单应用程序启动器工作区切换器窗口列表通知区域时钟KDE的面板
  • 78. 3.3 K桌面环境 3.3.2 KDE的面板和桌面1. 配置面板 右击面板,在弹出的快捷菜单中,单击“设置面板”选项,可以打开面板的“设置-KDE控制模块”窗口,如图所示。用户可以配置面板布局、外观和面板中的任务集外观等定制自己的面板,如果需要详细的设置帮助,可以点击该窗口右下角的“帮助”按钮。“设置-KDE控制模块”窗口
  • 79. 3.3 K桌面环境 3.3.2 KDE的面板和桌面2. KDE主菜单 Red Hat Linux 9使用KDE桌面启动后在面板的最左方也有一个红帽子主菜单按钮,从中可以启动指定的任务,如启动程序、查找文件、配置桌面等。主菜单中还包括了许多子菜单,它们把应用程序的按照类型进行了分类,如图所示。包含的菜单项部分与GNOME的主菜单中的项目相同,不同的项目有: 控制中心:打开kisdndock工具,用于配置KDE的语言、窗口管理程序、桌面环境等等。 起点:单击该选项可以进入当前用户的宿主目录,类似于GNOME中的“主文件夹”。KDE的主菜单
  • 80. 3.3 K桌面环境 3.3.3 KDE文件管理主菜单按钮的旁边是几个快速启动器,包括Mozilla浏览器、Evolution电子邮件客户端和openoffice的相关组件。在KDE的应用程序启动器旁边的4个小方格,代表4个桌面,用户可以使用这个工具,打开其他的桌面,然后在其中运行程序。 3.3.3 KDE文件管理 在KDE中可以使用Konqueror来管理系统的文件,而且Konqueror还可以作为Internet浏览器使用,并且Konqueror文件管理器允许用户在一个界面中配置KDE桌面、设置Linux系统、播放多媒体文件、浏览数码图像甚至是网上冲浪。
  • 81. 3.3 K桌面环境 3.3.3 KDE文件管理单击“主菜单”→“起点”命令即可启动Konqueror文件管理器,如图所示。用户可以在左边的目录树中单击以打开相应的目录,在右边的主窗口中进行相应的文件操作,其方法与Windows中完全相同。Konqueror文件管理器
  • 82. 3.3 K桌面环境 3.3.3 KDE文件管理在Konqueror窗口的左侧,有一个导航面板,它可以帮助用户在不必打开一个应用程序的情况下访问网页书签、查看历史记录、网络资源和文件系统,如图所示即为利用Konqueror浏览网页。另外,Konqueror还内嵌了一个媒体播放器,可以用来播放多媒体文件。使用Konqueror浏览网页
  • 83. 3.4 Red Hat Linux 9的命令行环境Linux系统的命令行环境也称为Linux的文本模式或基于命令行的文本模式,传统的Linux的运行模式就是基于命令行的文本模式。用户可以利用命令行环境在占用较少系统资源的情况下完成所有的系统管理的任务。这种工作模式尤其适用于计算机的远程管理和服务器环境。
  • 84. 3.4 Red Hat Linux 9的命令行环境 3.4.1 启动文本模式如果用户希望在文本模式下进行系统操作,那么首先必须要登录Linux的文件环境。在Red Hat Linux 9中,提供了4种方法进入Linux的文本模式。 1. 直接进入 如果在Red Hat Linux 9安装时使用的是文本界面,或者在图形界面下安装而选择了从文本模式下登录Linux系统时,启动计算机后就会直接进入文本模式。如果安装过程中,选择了从图形界面登录系统,那么在启动计算机后,就需要修改/etc/inittab文件,才能使系统从文本模式登录。
  • 85. 3.4 Red Hat Linux 9的命令行环境 3.4.1 启动文本模式修改inittab文件的步骤如下: (1) 依次单击“主菜单”→“附件”→“文本编辑器”菜单项,打开gedit文本编辑器。单击“打开”工具按钮或依次单击“文件”→“打开”菜单项,打开如图的“打开文件”窗口。在文件夹列表框中单击/etc/,然后在文件列表中选择inittab文件。gedit打开文件窗口
  • 86. 3.4 Red Hat Linux 9的命令行环境 3.4.1 启动文本模式(2) 单击“确定”按钮,在gedit中打开inittab文件。从中找到“id:5:initdefault:”行,将其修改为“id:3:initdefault:”或者在该行的行首输入“#”(即注释掉该行),然后再输入“id:3:initdefault:”行,如图所示,保存后退出。 修改inittab文件
  • 87. 3.4 Red Hat Linux 9的命令行环境 3.4.1 启动文本模式(3) 重启计算机,Linux系统就会进入文本模式。 2. 使用虚拟控制台进入Linux文本模式 在前面介绍的/etc/inittab文件是Linux系统的启动配置文件,在Linux的启动过程中需要从该文件中读取相关的配置选项。而Linux又是一个多用户的操作系统,为了实现允许多个用户同时登录系统的目标,Linux在/etc/inittab文件中定义了多个虚拟控制台,默认是6个(最多允许有256个)。 在图形模式下,用户如果需要在不同的虚拟控制台之间进行切换,可以使用Ctrl+Alt+Fn(n=1,2,…,6)组合键,使用Ctrl+Alt+F7则可以回到图形界面。在文本模式下,则可以使用Alt+Fn(n=1,2,…,6)组合键进行切换。此时,用户可以看到文本模式下的登录提示符“Login:”。
  • 88. 3.4 Red Hat Linux 9的命令行环境 3.4.1 启动文本模式如果用户无需过多的虚拟控制台,可以通过关闭多余的虚拟控制台,从而节省系统资源。关闭虚拟控制台的方法是修改/etc/inittab文件,具体步骤如下: (1) 使用gedit打开/etc/inittab文件。 (2) 从其中找到“# Run gettys in standard runlevels”行,然后在下面的[4:]、[5:]、[6:]三行前面加上“#”(即注释掉该行),如图所示,保存后退出。关闭虚拟控制台
  • 89. 3.4 Red Hat Linux 9的命令行环境 3.4.1 启动文本模式3. 使用仿真终端进入Linux文本模式 使用前面介绍的方法进入文本模式后,用户会出于纯命令行模式,如果希望在图形模式下使用命令行,可是依次单击“主菜单”→“系统工具”→“终端”菜单项,如图所示,或在桌面的空白处右击,在弹出的快捷菜单中选择“新建终端”,进入文本窗口,如图所示。主菜单进入仿真终端 快捷菜单进入仿真终端
  • 90. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具4. 文本模式和图形模式间间切换 图形模式启动后,如果希望转入文本模式,可以在终端命令提示符下使用init 3命令,随后,系统给出文本的登录提示符:“Login:”。用户输入账号和口令后就可以进入文本模式。在文本模式下可以使用init 5或startx来启动图形用户模式,系统会给出登录界面,用户可以使用自己的账号和口令登录系统。 3.4.2 常用的文本工具 Red Hat Linux 9的文本环境功能非常强大,很多工具必须在命令行模式下完成,如应用程序的编译安装。Red Hat Linux 9文本模式的命令非常丰富,下面介绍几类常用命令。
  • 91. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具1.磁盘管理 对于系统用户来说,为了合理安排磁盘空间,需要随时了解当前磁盘的使用情况。有时候还需要格式化磁盘、调整磁盘空间,基于磁盘管理的所有操作在Red Hat Linux 9中都有相应的命令。 1)df命令 用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点i和磁盘块的使用情况。命令的使用格式如下: df [选项] 常用参数及含义如下表所示。
  • 92. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具df –a用于显示系统中所有文件卷的使用情况,包括虚拟的文件卷,df –T用于显示文件系统的使用情况,不包括虚拟的文件卷,其命令结果如图所示。参 数含 义-a显示所有文件系统的磁盘使用情况-k以k字节为单位显示. 默认-h目前磁盘空间和使用情况 以更易读的方式显示-T显示文件系统 df常用的参数及含义 df –a和df –T命令的执行结果
  • 93. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具2)du命令 用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于目录或者文件的磁盘使用状况。该命令的使用格式如下: du [选项] 目录或文件名 常用参数及含义如下表所示。du常用的参数及含义 参 数含 义-a递归显示指定目录中各文件和子目录中文件占用的数据块-s显示指定文件或目录占用的数据块, 默认-b以字节为单位显示磁盘占用情况
  • 94. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具如图所示为du执行结果,不带参数时,检查当前目录。du执行结果
  • 95. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具4)mount和umount命令 在文本模式下,如果需要使用CD-ROM或者U盘,此时就要首先使用mount命令将它们挂接到系统中,使用完毕后还要使用umount命令卸载。命令的使用格式如下: mount [选项] 设备文件名 挂接点 umount 设备文件名或挂接点 mount常用参数及含义如表所示。
  • 96. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具例3.4 挂接cd-rom,然后卸载。执行结果如图所示。 [root@myhost root]# mount –t iso9660 /dev/cdrom /mnt/cdrom [root@myhost root]# umount /dev/cdrom参 数含 义-a挂接/etc/fstab文件中的所有设备-r以只读方式挂接设备-t 指定设备的文件系统类型,取值有ext3、ntfs、vfat等-w以可读写模式加载设备,默认设置 mount常用的参数及含义
  • 97. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具2. 查看进程信息 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。Red Hat Linux 9是一个多任务的操作系统,通过CPU在各个任务之间进行时间片轮转实现。 可以使用如下的命令来查看系统进程的详细情况。这些命令需要管理员的身份才能使用。 1)ps命令 该命令可以查看进程的详细状况,使用格式如下: ps [选项] 常用参数及含义如下表所示。
  • 98. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具在终端命令提示符下执行ps –aux或ps aux命令后,执行结果如图所示。 ps常用的参数及含义参 数含 义-a显示终端上的所有进程,包括其他用户的进程-u显示进程的详细状态-x显示没有控制终端的进程-r只显示正在运行的进程ps命令回显
  • 99. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具程序执行的结果中,共11个字段,各字段的含义如下: USER字段:进程的属主 PID字段:进程号PID %CPU字段:进程的CPU占用率 %MEM字段:进程内存占用率 VSZ字段:虚拟内存占用量 RSS字段:物理内存占用量 TTY字段:运行进程的终端号 STAT字段:进程状态 START字段:进程的启动时间 TIME字段:进程消耗的CPU时间 COMMAND字段:启动进程的命令参数
  • 100. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具其中,进程状态,即STAT字段,可显示内容如下: D:不可中断的睡眠状态。 R:正在运行的。 S:处于休眠状态。 T:停止或被追踪。 <:高优先级的进程 N:低优先级的进程 W:进入内存交换(从内核2.6开始无效)。 X:死掉的进程。 Z:僵尸进程。
  • 101. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具2)top命令 该命令用来动态显示运行中的进程。与ps命令类似,都是用来显示当前系统中正在运行的进程。但是top命令能够在运行后,在指定的时间间隔更新显示信息,可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。如图所示。top命令执行的返回
  • 102. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具在top命令执行后,可以按下按键得到对显示的结果进行排序: “M”键:根据内存使用量来排序。 “P”键:根据CPU占有率来排序。 “T”键:根据进程运行时间的长短来排序 “q”键:退出。 “h”键:获得帮助。
  • 103. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具3. 关机命令 在Linux的文本模式下,可是使用如下的命令进行系统的注销和关机。 1) logout命令 该命令用于系统的注销,直接在命令提示符下键入该命令即可,也可以使用Ctrl+D来实现。 [root@myhost root]# logout RH9,运行命令,输入logout 2)halt命令 默认的halt命令可以结束Linux当前所有正在运行的程序,停止所有设备,系统进入等待用户切断电源的状态。在Linux系统中绝对禁止在没有进行关机程序而直接切断主机电源。命令格式如下: halt [选项] 常用参数及含义如下表所示。
  • 104. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具3)poweroff命令 默认情况下,该命令用于回写缓冲区,并关闭系统,同时断开主机电源。命令格式如下: poweroff [选项] 常用参数及含义如下表所示。 halt常用的参数及含义参 数含 义-d关闭系统前,不回写缓冲区/var/log/wtmp-f强制关闭系统-h停止所有设备,等待用户关闭系统,默认选项-i关闭系统之前,先断开网络设备-n在关机前不做将内存资料写回硬盘-p关闭系统,同时断开主机电源-w回写缓冲区,而不关闭系统
  • 105. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具4)init 0命令 命令init 0也可以实现关闭系统,同时断开主机电源,因为在inittab文件中,定义了运行级别0为停机。 poweroff常用的参数及含义参 数含 义-d关闭系统前,不回写缓冲区/var/log/wtmp-f强制关闭系统-h停止所有设备,关闭电源,默认选项-i关闭系统之前,先断开网络设备 -w回写缓冲区,而不关闭系统
  • 106. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具5)reboot命令 reboot命令可以用于重新启动Linux系统,格式如下: reboot [选项] 常用参数及含义如下表所示。 reboot常用的参数及含义参 数含 义-d系统重启前,不回写缓冲区/var/log/wtmp-f强制重启系统-i关闭系统之前,先断开网络设备 -w回写缓冲区,而不重启系统
  • 107. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具6)shutdown命令 该命令的功能强于上面给出的halt等命令,它可以实现系统注销,关机和重新启动。命令格式如下: shutdown [选项] 常用参数及含义如下表所示。 shutdown常用的参数及含义参 数含 义-t 设定在几秒钟之后进行关机程序-k并不真正关机,只是将警告讯息传送给所有用户-h关闭系统,断开主机电源-r重启系统
  • 108. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具4. 压缩管理 1)zip和unzip命令 zip格式是广泛使用的压缩格式,被普遍使用在多种操作系统中,在Linux中使用zip压缩工具可以生成.zip格式的压缩文件。其解压的工具为unzip。zip工具的使用格式如下: zip [选项] 压缩文件 被压缩文件... 常用参数及含义如下表所示。 zip常用的参数及含义参 数含 义-d 从压缩文件内删除指定的文件-F尝试修复已损坏的压缩文件,读取zip中文件名称-L显示版权信息-u添加新文件到zip中
  • 109. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具unzip命令的使用格式如下: unzip [选项] 压缩文件 常用参数及含义如下表所示。 unzip常用的参数及含义参 数含 义-x 解压时,排除特定的文件fname-d解压到指定文件夹-l查看压缩文件中包含的文件信息,而不解压
  • 110. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具5. 联机帮助命令 在Red Hat Linux 9中提供了强大的联机帮助功能,使用最广泛的联机帮助命令是man。man命令主要用于显示任何给定命令的在线帮助。常用的格式如下: man [选项] 命令名 常用参数及含义如下表所示。man常用的参数及含义参 数含 义-a显示所有man的帮助页-f只显示命令的功能而不显示详细的手册内容-w只显示帮助文件的位置-q退出
  • 111. 3.4 Red Hat Linux 9的命令行环境 3.4.2 常用的文本工具在通常使用man命令的时候,不用携带选项,即可直接查询命令帮助手册获得查询命令准确的用法,man命令为了方便用户查看帮助手册,设置了如下的功能键,如表所示。 man查看帮助手册时常用的功能键功能键功 能空格键显示手册页的下一屏Enter键一次滚动手册页的一行b回滚一屏f前滚一屏q退出man命令h列出所有功能键/word搜索word字符串
  • 112. 3.5文本编辑器vi的使用 3.5.1 vi概述编辑器是使用计算机的重要工具之一,Linux为了方便各种用户在不同的环境下使用,提供了一系列的编辑器,包括gedit、emas和vi等,其中gedit和emacs是X Window下的编辑器,vi 可以运行于命令行模式。目前使用人数最多的就是vi编辑器。 3.5.1 vi概述 Linux提供的全屏编辑器vi启动快,且支持鼠标,能够胜任所有的文本操作,使得用户的文本编辑更加轻松。在Linux操作系统中使用vi编辑器来处理文件的时候,会先将文件复制一份到内存缓冲区(buffer)。Vi对文本文件的编辑都会首先直接修改缓冲区的内容,再使用w命令后,才将buffer中的内容回写到磁盘文件。
  • 113. 3.5文本编辑器vi的使用 3.5.1 vi概述vi有输入和命令两种工作模式。输入模式用于输入模式。命令模式则是用来运行一些编排文件、存档以及离开vi等操作命令。当执行vi后,首先进入命令模式,此时输入的任何字符都被视为命令。 在RHL9中使用的vi是vim(vi improved)程序,它与vi完全兼容。在RHL9中vi就是到vim的软连接,即在命令行中输入vi的时候启动的就是vim,如图所示。vi编辑器的主界面
  • 114. 3.5文本编辑器vi的使用 3.5.1 vi概述在屏幕的左上方的是光标,在它下面是“~”符号,这些符号中的内容是不会被存入文件的。整个“~”符号标志的区域就是文本的输入区域,最底下的一行显示了在命令模式下输入的命令或是当前编辑的文本的信息。图中还显示了vi版本的信息,并说明vi是免费的。 vi有两种工作模式:命令模式和输入模式。进入vi时默认的模式就是命令模式。在命令模式下,用户所有的输入都被解释成命令,并显示在最下面一行,而不会输入到屏幕的文本输入区域(就是“~”符号所在的区域)。
  • 115. 3.5文本编辑器vi的使用 3.5.1 vi概述在命令模式下,可以使用如下的两个键进入文本输入模式: a:在当前的光标后面添加文本。 i:在当前的光标前面添加文本。 A:在当前光标所在行的行尾添加文本。 I:在当前光标所在行的行首添加文本。 o:在当前光标所在行的下方添加一行,并且在新加行的行首添加文本。 在输入模式下如果用户希望回到命令模式的时候,只能在输入模式下使用Esc键切换到命令模式,之后会在屏幕底部出现光标等待输入命令。
  • 116. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档3.5.2 使用vi编辑文档 1.新建一个文档 在Linux的终端命令主提示符下输入vi后可以打开其主界面,然后按下“a”键,进入输入模式,然后输入文本,如图所示。可以使用Enter键来换行,使用Backspace键删除前面的文字。文本输入完成以后,按下“Esc”键切换到命令模式。 为了保存输入的内容,在命令模式下输入“:w vi_test”,然后按Enter键,此时vi会新建一个vi_test文件,将文本区输入的内容写入该文件。 在命令行模式下输入“:q”(引号内的部分)并按Enter键,退出vi,并回到shell命令提示符。
  • 117. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档在Linux的终端命令主提示符下输入vi后可以打开其主界面,然后按下“a”键,进入输入模式,然后输入文本,如图所示。可以使用Enter键来换行,使用Backspace键删除前面的文字。文本输入完成以后,按下“Esc”键切换到命令模式。 为了保存输入的内容,在命令模式下输入“:w vi_test”,然后按Enter键,此时vi会新建一个vi_test文件,将文本区输入的内容写入该文件。 在命令行模式下输入“:q”(引号内的部分)并按Enter键,退出vi,并回到shell命令提示符。保存文件到vi_test
  • 118. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档2.打开一个文件 使用vi打开文件的方法很简单,在vi命令后面跟上文件名,然后按Enter键即可,如: [root@myhost root]# vi vi_test 由于没有指定路径,vi程序在默认的路径,即当前目录中查找vi_test,用户也可以为其指定路径。如果vi_test文件不存在,此时会新建一个vi_test文件。如果vi_test确实存在,就会被读入缓冲区,并在屏幕上显示出来,如图。用vi打开vi_test文件
  • 119. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档此时,会在底部的状态行显示“‘vi_test’[已转换] 3L,105C”,表示vi_test已被读入缓冲区,共3行105个字符。按下“a”键进入输入模式,底部的状态行显示如图所示。vi底部的状态行 如果用户此时按下的是“i”键,也会进入输入模式,但是这两种方式是有区别的:“a”表示在当前光标后面插入文字;“i”表示在当前光标前面出入文字。
  • 120. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档3.打开多个文件 vi能够在同一个窗口中一次打开多个文件,打开多个文件的方法是在终端的命令主提示符下输入: [root@myhost root]# vi vi_file vi_test 在输入上述命令后按Enter键,vi将第一个文件vi_file读入缓冲区,用户可以在终端中输入“:next”以编辑下一个文件,这里是vi_test。此时vi虽然同时打开了多个文件,但是某一时刻却只能编辑一个文件。在命令模式下输入“:previous”或“:prev”可以切换到前一个文件。
  • 121. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档vi还可以在多个窗口中打开多个文件,如在终端命令主提示符下输入如下命令,打开如图所示的文本,不过需要给vi程序传递一个参数-o。 [root@myhost root]# vi -o vi_file vi_test在这种模式下,有两个两条将屏幕分成上下两个部分,上半部分是vi_file文件,下半部分是vi_test文件,两条上显示对应的文件名。前面所讲的对于文件的操作对于打开多个文件同样适用。
  • 122. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档4.vi的撤销功能 和很多基于图形的编辑器一样vi也提供撤销功能,对于一个编辑器来说,提供撤销功能是必要的。用户可以在命令模式下输入“:u”后按Enter键,就可以撤销上一次操作。 在vi中,撤销功能每一次撤销的是自上次存盘到现在输入的内容,因此撤销能够恢复到最原始的状态,但是此时用户不能使用“:q”命令来退出vi,因为此时用户已经修改了缓冲区的内容。如果确实需要退出vi程序,可以使用在命令模式下“:q!”。
  • 123. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档5.移动光标 光标所在的位置就是用户输入或删除时的位置。在vi中提供了多种移动光标的方法,主要利用方向键,也可使用键盘上vi定义的一些普通键。 1)方向键 使用方向键是最基本的光标移动方法,大多数系统都支持光方向键。如果光标已经移动到了屏幕的尽头,用户再按下方向键时,就会听到系统的警告声,而光标在原地不动。 2)其他键 在命令模式下,vi还支持使用其他键来移动光标。在早期很多终端还没有方向键,因此,vi提供了一些普通按键来移动光标。
  • 124. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档如表所示,其中列出了移动光标所用的按键及其作用。按 键功 能h向左移动一个字符l向右移动一个字符j向下移动一行k向上移动一行b将光标移动到当前单词的第一个字母e将光标移动到当前单词的最后一个字母空格光标向右移动一个字符Backspace(退格键)光标向左移动一个字符并删除字符Enter或+将光标移动到下一行行首-(减号)将光标移动到上一行行首vi提供的移动光标的按键 续表
  • 125. 3.5文本编辑器vi的使用 3.5.2 使用vi编辑文档按 键功 能$将光标移动到当前行的行尾Shift+h将光标移动到屏幕的第一行Shift+m将光标移动到屏幕上中间的一行Shift+l将光标移动到屏幕上最后一行Ctrl+b将光标向下(后)移动一屏Ctrl+f将光标向上(前)移动一屏vi提供的移动光标的按键 (续表)
  • 126. 3.5文本编辑器vi的使用 3.5.3 删除和查找3.5.3 删除和查找 1.删除 在vi的输入模式下,用户可以使用Backspace(退格键)来删除光标前面的内容,还可以使用delete键来删除当前的字符。此外,在vi的命令模式下还提供了几个按键用来删除一个字符或进行整行删除,其热键及其功能如表所示。按 键功 能x删除当前光标所在的字符d w删除光标所在单词字符至下一个单词开始的几个字符d $或Shift+d删除从当前光标至行尾的所有字符d d删除光标所在的行 vi用于删除的热键
  • 127. 3.5文本编辑器vi的使用 3.5.3 删除和查找表中所述的组合键,如dw表示先按下d键,再按下w键。此外,用户还可以在使用删除的组合键的时候指定要删除的行及字符的数量。其用法如下: 3 x:表示删除从当前光标所在位置开始,向后的3个字符。 4 d d:表示删除光标所在的行开始连续向后的4行。 vi提供了以行号表示范围的删除方法,在命令模式下输入set number或set nu以显示行号,再按如下的语法输入删除命令: start_num,end_num d 其中start_num和end_num分别表示开始行号和结束行号,以start_num开始和end_num结束的行都将被删除。 例如,要删除第2行到第5行的内容,可以使用: :2,5 d 命令输入结束后,vi会在状态行中显示被删除的行数。
  • 128. 3.5文本编辑器vi的使用 3.5.3 删除和查找2.查找 在vi中同样提供了丰富的字符串查找功能,用户可以进行从当前光标的位置开始向前和向后的字符串查找操作,还可以重复上一次的查找。当vi查找到文本的头部或尾部的时候,继续循环查找直到全部文本被查找一遍。被找到的字符串会以反白显示,如图所示。vi查找字符串
  • 129. 3.5文本编辑器vi的使用 3.5.3 删除和查找下表给出了vi中常用的查找命令。在vi的查找中可以使用匹配查找,使用“.”代表一个任意字母。如使用“:/s.ecial”可以找到“special”字符串。 另外,vi的字符串查找是大小写敏感的,即“Special”和“special”不同。热 键功 能?字符串从当前光标位置开始向后查找字符串/字符串从当前光标位置开始向前查找字符串n继续上一次查找Shift+n以相反的方向继续上一次查找 vi的查找命令
  • 130. Linux操作系统实用教程 第三章 完
  • 131. Linux操作系统实用教程第4章 Linux文件和磁盘系统 4.1 Linux文件系统概述 4.2 文件的基本操作 4.3 文件权限管理 4.4 文件操作的图形工具 4.5 即插即用设备的使用
  • 132. 第4章Linux文件和磁盘系统 本章概述 文件系统是操作系统的重要组成部分,通过对文件系统的管理,操作系统可以方便地存取所需的数据。Linux系统中所有的程序、语言库、系统文件和用户文件都是存放在文件系统之上的,可靠性和安全性是文件系统的重要因素。本章围绕与文件系统管理有关的各个方面展开叙述,分别介绍磁盘分区的管理,Linux文件系统的建立、挂载与管理、文件的基本操作,以及文件存取权限的管理等方面的内容。
  • 133. 第4章Linux文件和磁盘系统 4.1 Linux文件系统概述文件系统是Linux系统上所有数据的基础。Linux系统是一种兼容性很强的系统,它支持多种文件系统,包括vfat、NTFS、ext2、ext3等。其中vfat文件系统支持读写操作,而NTFS文件系统仅支持读操作。Red hat Linux 9默认使用ext3文件系统。
  • 134. 4.1 Linux文件系统概述 4.1.1 文件系统简介4.1.1 文件系统简介 文件系统是操作系统设计所需解决的一个重要的问题,下面将介绍文件系统的相关概念。 1.什么是文件系统 文件系统是操作系统在硬盘或者分区上保持文件信息的方法和数据结构,也就是文件在硬盘或分区上的组织结构方式,也指用于存储文件的磁盘、分区或文件系统种类。简单地讲,文件系统是指按照一定规则组织的文件结构,用于管理机器上的文件和目录,使之能够被有效地存取。 在操作系统中,每个文件和目录都被指定了一个文件名,用户按文件名存取文件,而实际上,文件和目录在磁盘中是按照柱面、磁道等物理位置存放的,文件系统能够将操作系统对文件的按名存取转化成按磁盘的物理位置进行读写。
  • 135. 4.1 Linux文件系统概述 4.1.1 文件系统简介2.常见的文件系统 不同的操作系统文件系统的类型一般也不尽相同,常见的有如下几种文件系统: (1) vfat文件系统:分为FAT和FAT32两种,是微软Windows 9x/2000/XP/Vista及NT操作系统常用的文件系统,该文件系统对DOS文件系统进行了扩展,提供了对长文件名的支持。 (2) NTFS文件系统:是微软Windows NT起开始使用的文件系统,Windows 2000/Windows XP/Windows 2003和Vista都推荐使用这种文件系统。它除了支持文件权限、压缩、加密以及磁盘限额等功能外,还增加了对文件系统日志的支持,能够在操作系统出现故障时,通过日志恢复用户存储在文件系统中的数据,从而最大程度地保证用户数据的安全。在RHL9中,可以通过重新编译内核的方式提供对NTFS文件系统的支持,但目前只支持对该文件系统的只读访问。
  • 136. 4.1 Linux文件系统概述 4.1.1 文件系统简介(3) ext2文件系统:是一种高效的文件系统,支持长达255个字符的长文件名。由于它不支持文件系统的日志,而且内存数据在回写到文件系统时通常都存在延时,所以使用这种文件系统时,需要及时在内存和磁盘之间进行数据的同步操作,否则容易造成用户数据的丢失。该系统可以很方便地升级为ext3文件系统。 (4) ext3文件系统:是ext2文件系统的增进版本,ext3文件系统继承了ext2系统的高效性,增加了文件系统的日志功能,保证了文件系统的可用性,增加了对文件的完整性保护。在操作系统意外断电或崩溃时,ext3能够利用日志功能快速恢复系统数据。ext3是现在大部分Linux系统默认的文件系统类型,也是RHL9默认使用的文件系统。 Linux系统是一种对文件系统兼容性很强的操作系统,它能够支持多种文件系统,支持对FAT、FAT32读写访问,支持对NTFS的只读访问,
  • 137. 4.1 Linux文件系统概述 4.1.2 Linux文件系统4.1.2 Linux文件系统 和Windows操作系统类似,所有Linux的数据都是由文件系统按照树型目录结构管理的。而且Linux操作系统同样要区分文件的类型,判断文件的存取属性和可执行属性。下面将介绍Linux的文件系统结构以及Linux文件系统的建立、挂载与管理等相关知识。 1.Linux的文件系统结构 在Windows操作系统中,主分区与逻辑分区被称为驱动器,会被分配一个驱动器盘符(如C盘、D盘、E盘),每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示。Windows文件系统结构
  • 138. 4.1 Linux文件系统概述 4.1.2 Linux文件系统与Windows相类似,Linux也采用了树状结构的文件系统,它由目录和目录下的文件一起构成。但Linux文件系统不使用驱动器这个概念,而是使用单一的根目录结构,所有的分区都挂载到单一的“/”目录上,其结构示意图如图所示。Linux文件系统结构其中,“/”目录也称为根目录,位于Linux文件系统目录结构的顶层,必须使用ext文件系统。如果还有其它分区,必须挂载到“/”目录下某个位置。
  • 139. 4.1 Linux文件系统概述 4.1.2 Linux文件系统常见的Linux系统目录如下: /:Linux系统的根目录,包含Linux系统的所有目录和文件。 /etc:有关系统设备与管理的配置文件。 /sbin:存放系统启动时所需的运行程序。 /bin:该目录中含有常用的命令文件,不能包含子目录。 /boot:操作系统启动时的核心文件。 /usr/local:存放用户后期安装的应用程序文件。 /root:超级用户主目录。 /dev:接口设备文件目录,保存外围设备代号。 /mnt:设备文件的挂接点,默认有/mnt/cdrom和/mnt/floppy两个目录,分别用于挂载光驱和软驱。 /home:用户的宿主目录,通常将其设置在独立的分区。
  • 140. 4.1 Linux文件系统概述 4.1.2 Linux文件系统2.Linux存储设备的命名 PC机上最多有4个IDE设备,可能是磁盘,也可能是CD/DVD设备。在Linux中,对于IDE磁盘,使用“hd”表示,并且在“hd”之后使用小写字母表示磁盘编号,磁盘编号之后是分区编号,使用阿拉伯数字表示。主分区的编号依次是1~4,而扩展分区上的逻辑分区编号从5开始。而SATA和SCSI磁盘共同使用“sd”表示。常用存储设备的名称表示如表所示。存储设备设备文件IDE1的主盘/dev/hdaIDE1的从盘/dev/hdbIDE2的主盘/dev/hdcIDE2的从盘/dev/hddIDE1的主盘第一分区/dev/hda1IDE1的从盘第一逻辑分区/dev/hdb5系统的第一个SCSI硬盘/dev/sda软盘驱动器/dev/fd0光盘驱动器/dev/cdrom
  • 141. 4.1 Linux文件系统概述 4.1.2 Linux文件系统3.管理磁盘分区 在安装RHL9的过程中可以使用图形化的Disk Druid工具对磁盘进行分区,系统安装完成后,用户也可以对磁盘分区进行管理。常用的磁盘分区管理工具有fdisk和parted,它们都可以进行创建分区、删除分区、查看分区信息等基本操作,此外parted还可以调整已有分区的尺寸。下面以fdisk为例,讲解磁盘分区方法。 以超级用户登录系统,在shell提示符下输入命令启动fdisk: [root@myhost root]# fdisk /dev/sda 其中,/dev/sda是用户要进行分区的磁盘设备名。进入后可在Command(m for help)后输入命令m以查看该命令的使用方法,执行结果如图所示。
  • 142. 4.1 Linux文件系统概述 4.1.2 Linux文件系统fdisk工具运行后,可以通过按下相应的命令键查看磁盘状态,并进行分区的删除和建立等操作。fdisk命令执行结果
  • 143. 4.1 Linux文件系统概述 4.1.2 Linux文件系统fdisk工具中常用的命令及含义如表所示。命令键含 义a设置活动分区d删除一个分区l列出已知的分区类型m显示帮助信息n建立一个新分区o清空分区表p列出现有的分区表信息q退出fdisk命令且不保存更改v校验分区表w保持更改并退出fdisk常用的命令及含义
  • 144. 4.1 Linux文件系统概述 4.1.2 Linux文件系统要想在分区上存储数据,首先需要建立文件系统。常用的建立文件系统的工具有mkfs命令来实现。 该命令允许根据用户的选择建立相应的文件系统,其格式如下: mkfs [选项] 磁盘设备文件名 [块大小] 常用参数及含义如表所示。参 数含 义-V输出完整信息-t fs_type指定创建的文件系统类型,默认的是ext2-c检查磁盘是否存在坏道mkfs常用参数及含义
  • 145. 4.1 Linux文件系统概述 4.1.2 Linux文件系统例4.2 在分区/dev/sda3上建立ext3文件系统。 在终端提示符下输入如下命令: [root@myhost root]# mkfs –c -V –t ext3 /dev/sda3 该命令,在建立文件系统的同时,还进行了磁盘坏道的检查。 5.文件系统的挂载与卸载 在Windows下,文件系统创建后,就可以通过系统分配的盘符来使用该磁盘。但在Linux系统中,文件系统创建后,还需将其安装到Linux目录树的某个位置上才能使用,这个过程称为挂载,文件系统所挂载到的目录称为挂载点。文件系统使用完毕,还可对其进行卸载。
  • 146. 4.1 Linux文件系统概述 4.1.2 Linux文件系统1) 挂载文件系统 在Linux系统中,磁盘设备被挂接到一个已存在的目录上,以后的磁盘的存取就变成了对该挂接目录的读写访问。通常选择已存在的空目录作为挂接目录,因为如果挂接目录已经包含文件,在挂接操作完成后,原文件将临时被挂接磁盘中的文件覆盖,直到从系统中卸载该磁盘为止。 文件系统的挂载,可以在系统引导过程中自动加载,也可以使用命令手工挂载。
  • 147. 4.1 Linux文件系统概述 4.1.2 Linux文件系统使用命令手工挂载 挂载文件系统的命令为mount,该命令语法如下: mount [选项] [设备文件名] [挂接点] 常用参数及含义如表所示。mount常用的参数及含义参 数含 义-t fs_type指定需挂接的磁盘的文件系统类型-o option用于指明挂载的某些具体选项,常用的option有ro:以只读方式挂载;rw:以读写方式挂载;remount:重新挂载已挂载的文件系统
  • 148. 4.1 Linux文件系统概述 4.1.2 Linux文件系统自动挂载 当用户需要系统启动后立即使用某个文件系统或者需要挂载多个文件系统时,可以通过修改/etc/fstab配置文件实现自动挂载需要使用的文件系统。/etc/fstab文件列出了引导系统需要挂载的文件系统以及文件系统类型和其他挂载参数,系统引导时会读取这个文件并挂载该文件中列出的文件系统。该文件的具体格式如图所示。/etc/fstab文件结构
  • 149. 4.1 Linux文件系统概述 4.1.2 Linux文件系统fstab文件共分为6列: device dirmount fs_type options fs_dump fs_passno 各项含义如表所示。字 段说 明device需要被挂载的设备文件名或标号(label)dirmount文件系统将被挂载到的目录fs_type挂接的磁盘或分区的文件系统类型options 挂载选项,传递给mount命令以决定如何挂载fs_dump备份频度。1,表示需要进行磁盘备份;0,表示无需进行磁盘备份fs_passno由fsck程序决定引导时是否检查磁盘以及检查的次序。0,表示无需进行磁盘检查。1,表示最先检查
  • 150. 4.1 Linux文件系统概述 4.1.2 Linux文件系统例4.4 将磁盘分区/dev/hda3一直加载到/mnt/data目录下。 在/etc/fstab最后一行加入如下一行语句,然后重启计算机,系统将自动挂载该磁盘分区。 /dev/hda3 /mnt/data vfat defaults 0 0 2) 卸载文件系统 如果系统已挂接的磁盘不再使用,为了节省系统资源,可以将该磁盘从系统中卸下。与挂载相比,卸载文件系统简单很多。卸载文件系统使用umount命令,其格式如下: umount [选项] 设备文件名或挂接目录 常用参数及含义如表所示。
  • 151. 4.1 Linux文件系统概述 4.1.2 Linux文件系统注意:umount通常不能卸载正在使用的文件系统。如果必须卸载可以使用-f参数,或重启系统。umount常用的命令及含义参 数含 义-t fs_type卸载已挂接的指定文件系统fs_type的所有文件系统,此时无需指定设备文件名和挂接点-f强制卸载指定的设备-a卸载所以的文件系统,此时,无需指定设备文件名和挂接点
  • 152. 4.1 Linux文件系统概述 4.1.2 Linux文件系统6.Linux的文件类型 文件是操作系统用来存储信息的基本结构,是存储在某种介质上的一组信息的集合,通常通过文件名来标识文件。不同的操作系统对文件的命名方式一般也不同,在Linux系统中,文件的命名必须遵循如下的规则: (1) 文件名最长可以达到256个字符,可由A~Z、a~z、0~9、.、-、_、等符号组成。 (2) 文件名区分大小写。 (3) 文件没有扩展名的概念。 (4) 使用“/”作为根目录和目录层之间的分隔符。 (5) 支持相对路径和绝对路径。
  • 153. 4.1 Linux文件系统概述 4.1.2 Linux文件系统在Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。在Linux系统中文件可以没有扩展名。 文件类型都是和应用程序相关联的,在打开某个文件时,操作系统会自动判断用那个应用程序打开,在Linux系统中,.txt文件由gedit程序打开,.doc文件由OpenOffice.org Writer应用程序打开。 通常,Linux系统中常用的文件类型有5种:普通文件、目录文件、设备文件、管道文件和链接文件。
  • 154. 4.1 Linux文件系统概述 4.1.2 Linux文件系统1) 普通文件 普通文件是计算机操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。普通文件一般包括文本文件、数据文件、可执行的二进制程序文件等。可以通过ls –lh命令来查看文件的属性,如图所示。使用“ls –lh”查看文件属性
  • 155. 4.1 Linux文件系统概述 4.1.2 Linux文件系统图中,可以看到以“-rw-r--r--”开始的3行信息,每一行即对一个文件的描述,包括文件的类型与权限、链接数、文件的属主、文件属组、文件的大小、文件建立或修改的时间、文件名等信息。其中,“-rw-r--r--”用来指明文件类型为普通文件,关于其详细含义,后文将详细介绍。 在RHL9中可以通过file命令来查看文件的类型。如果file文件后面携带文件名,则查看指定文件的类型,如果携带通配符“*”,则可以查看当前目录下的所有文件的类型,如图所示。查看文件类型
  • 156. 4.1 Linux文件系统概述 4.1.2 Linux文件系统2) 目录文件 Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。目录文件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。每个目录文件至少包括两个条目,“..”表示上一级目录,“.”表示该目录本身。 可以用ls –lh查看某个目录文件详细信息,如图所示,后接“/”可以查看根目录下的详细信息。
  • 157. 4.1 Linux文件系统概述 4.1.2 Linux文件系统图中文件类型与权限为“drwxr-xr-x”,第一个字符为“d”,表示文件是根目录下目录文件。 3)设备文件 Linux系统把每个设备都映射成一个文件,这就是设备文件,它是用于向I/O设备提供连接的一种文件,分为字符设备和块设备文件。使用ls –lh查看根目录详细信息
  • 158. 4.1 Linux文件系统概述 4.1.2 Linux文件系统字符设备的存取以一个字符为单位,块设备的存取以字符块为单位。每一种I/O设备对应一个设备文件,存放在/dev目录中,如行式打印机对应/dev/lp,第一个软盘驱动器对应/dev/fd0。设备文件示例如下图所示,/dev/tty的类型与权限是“crw-rw-rw-”,第一个字符为c,这表示为字符设备文件;/dev/hda1的属性是brw-rw----,第一个字符为b,表示为块设备文件。使用ls –lh命令设备文件
  • 159. 4.1 Linux文件系统概述 4.1.2 Linux文件系统4)管道文件 管道文件也是Linux中较特殊的文件类型,这类文件多用于进程间的通信方面。使用ls-lh命令查看文件信息时,可观察到文件类型与权限的第一个字符为“p”,则代表该文件为管道文件。 5)链接文件 链接文件有两种,一种是符号链接,也称为软连接,一种是硬链接。符号链接的工作方式类似于Windows系统中的快捷方式,建立符号链接文件后,如果删除原文件,则符号链接文件将指向一个空文件,符号链接也就失效了。硬链接则不
  • 160. 4.1 Linux文件系统概述 4.1.2 Linux文件系统同,它要求链接文件和目标文件在同一个文件系统上(即同一分区),且不允许链接至目录,它是对原文件数据块的直接引用,建立硬链接后即使删除原文件硬链接也会保留原文件的所有信息。文件类型与权限的第一个字符为l,则代表该文件为链接文件。
  • 161. 4.2 文件的基本操作 4.2.1 查看和搜索文件文件是操作系统组织信息的基本单位,文件和目录实现了操作系统对系统和用户的数据管理。这一节将介绍一些文件与目录的基本操作,以及其他的一些常用的命令。 4.2.1 查看和搜索文件 查看和搜索是文件操作时用户经常要用到的两个功能。 1.查看文件 通过查看文件,可获得文件的许多相关信息,如文件的内容、属性、所有者、大小、创建修改的日期等。下面介绍几个查看文件的操作命令。 1)查看文件信息 ls是英文单词list的简写,其功能为列出目录的内容,使用相应的参数可以查看文件的相关信息,是用户最常用的命令
  • 162. 4.2 文件的基本操作 4.2.1 查看和搜索文件之一,它类似于DOS下的dir命令。对于每个目录,该命令将列出其中的所以子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。输出条目按字母顺序排序。未给出目录名或文件名时,默认情况下就显示当前目录的信息。该命令的语法如下: ls [参数] 目录或文件 常用参数及含义如下表所示。
  • 163. 4.2 文件的基本操作 4.2.1 查看和搜索文件参 数含 义-a显示指定目录下所有子目录与文件,包括隐藏文件-F在列出的文件名后以符号表示文件类型:目录文件后加“/”,可执行文件后加“*”,符号链接文件后加“@”,管道文件后加“|”,socket文件后加“=”-h以用户习惯的单位表示文件的大小,K表示千,M表示兆。通常与-l选项搭配使用ls常用的参数及含义
  • 164. 4.2 文件的基本操作 4.2.1 查看和搜索文件-l以长格式显示文件的详细信息。每行列出的信息依次是:文件类型与权限、链接数、文件属主、文件属组、文件大小、文件建立或修改的时间、文件名。对于符号链接文件,显示的文件名后有“—>”和引用文件路径名;对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。目录中总块数显示在长格式列表的开头,其中包含间接块-r从后向前地列举目录中的内容-s按文件大小排序-t按文件建立的时间排序,越新修改的越排在前面-u按文件上次存取时间排序
  • 165. 4.2 文件的基本操作 4.2.1 查看和搜索文件例4-5 使用ls命令查看root目录下的文件信息。在命令提示符下执行如下命令,执行结果如下图所示。 [root@myhost root]# ls -l使用ls命令查看root目录下的文件信息
  • 166. 4.2 文件的基本操作 4.2.1 查看和搜索文件图中列出的信息共分为7列,各列含义如下图所示。文件信息(1)文件类型:“-”表示常规文件;“d”表示目录;“c”表示字符设备文件;“b”表示块设备文件;“p”表示管道文件;“l”表示链接文件。
  • 167. 4.2 文件的基本操作 4.2.1 查看和搜索文件2)文件存取权限:从左到右每3位为一组,依次代表文件拥有者、同组用户和其他用户的存取权限。通常文件共有3个权限,“r”表示只读;“w”表示可写;“x”表示可执行;“-”表示未设置。图中,file3文件的第一列为-rw-r--r--,可知其为一个普通文件,文件所有者的权限是rw-,可读可写不可执行,文件所属组群的权限是r--,表示可读不可写不可执行,其他人的属性是r--,表示可读不可写不可执行。只有文件的拥有者或超级用户才能设置文件的属性。 (3)文件的属主和组:在Linux下每个文件都属于特定的用户和组,文件的属主和超级用户对文件用户最大的存取权限。
  • 168. 4.2 文件的基本操作 4.2.1 查看和搜索文件2) 查看文件内容 在进行系统管理的时候,经常需要浏览文件的内容,Linux提供了多种方式供用户在查看文件内容。使用这些工具可以以不同的方式浏览整个文件内容,有的可以从文件头部指定行往下浏览,有的则可以从文件尾部逆向浏览。 head命令 该命令用于从文件头部查看文件,默认情况下只能阅读文件的前10行,也可以通过指定一个数字选项来改变要显示的行数。如果没有接文件名,那么将会显示用户从键盘上输入的字符。该命令格式如下:
  • 169. 4.2 文件的基本操作 4.2.1 查看和搜索文件head [参数] 文件名 常用参数及含义如下表所示。参 数含 义-c num显示文件的num个字节-n num显示文件指定的前num行-v先打印文件名,再显示指定文件的内容head常用的参数及含义
  • 170. 4.2 文件的基本操作 4.2.1 查看和搜索文件例4-6 使用head命令显示file1文件的内容。 在终端提示符下执行如下命令,执行结果如下图所示。 [root@myhost root]# head file1使用head命令查看文件内容
  • 171. 4.2 文件的基本操作 4.2.1 查看和搜索文件tail命令 使用tail命令可以查看文件结尾内容,默认显示组后10行。这有助于查看日志文件的最后十行来阅读重要的系统消息,还可以使用tail来观察日志文件被更新的过程。该命令使用命令如下: tail [参数] 文件名 常用参数及含义如下表所示。
  • 172. 4.2 文件的基本操作 4.2.1 查看和搜索文件cat命令 cat命令可以用来查看文件内容,也可以用于即合并文件。还可以利用cat命令从键盘读取数据。该命令格式如下: cat [参数] 文件名 常用参数及含义如下表所示。参 数、含 义-c num查看文件末尾num个字节-n num显示文件指定的后num行-v先打印文件名,再显示指定文件的内容tail常用的参数及含义
  • 173. 4.2 文件的基本操作 4.2.1 查看和搜索文件例4-7 使用cat命令查看文件内容。 在终端提示符下执行如下命令,执行结果如下图所示。 [root@myhost root]# cat file2参 数含 义-b显示文件中的行号,空行不编号-E在文件的每一行行尾加上“$”字符-T将文件的Tab键用字符“^I”来显示-n在文件的每行前面显示行号,所有行-s将连续的多个空行用一个空行来显示-v显示除Tab和Enter之外的所有字符cat常用的参数及含义
  • 174. 4.2 文件的基本操作 4.2.1 查看和搜索文件cat命令后面可以接多个文件名,依次将其内容显示出来。还可以使用重定向符“>”将多个文件合并输出(重定向符“>”的使用,后面将详细阐述)到另一个文件中。下面这条命令将文件file2的内容追加到file3文件中然后重定向到file4文中,即写入file4中。执行结果如下图所示。 [root@myhost root]# cat file2 file3 > file4使用cat命令显示文件内容
  • 175. 4.2 文件的基本操作 4.2.1 查看和搜索文件注意:file2、file3必须是已存在的文件,如果file4文件不存在,那么系统将重建file4文件。如果file4是已经存在的文件,那么它本身的内容将被覆盖,其中的内容是file2和file3合并后的内容。 cat命令合并文件
  • 176. 4.2 文件的基本操作 4.2.1 查看和搜索文件more命令 在文件过长无法在一屏上显示时,如果使用cat命令来查看其内容,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令。和cat命令类似,more可将文件内容显示在屏幕上,但是它每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。此外,该命令还可以在文件中搜索指定的字符串。其格式如下: more [参数] 文件名 常用的参数及含义如下表所示。
  • 177. 4.2 文件的基本操作 4.2.1 查看和搜索文件more常用的参数及含义参 数含 义-num指定屏幕显示的行数-d在屏幕下方显示提示信息-s将连续的多个空行用一个空行来显示+/string在文件中搜索string字符串,然后显示string所在的页+num从文件的第num行显示
  • 178. 4.2 文件的基本操作 4.2.1 查看和搜索文件less命令 less命令作用和more命令类似,可用于浏览文本文件的内容。不同的是,less命令允许用户使用光标键反复浏览文本。另外,less可以不读入整个文本文件,因此在处理大型文件时速度较快。与more命令相比,less命令的功能更加强大。其基本格式如下: less [参数] 文件名 常用的参数及含义如下表所示。
  • 179. 4.2 文件的基本操作 4.2.1 查看和搜索文件less常用的参数及含义参 数含 义-i在查找时忽略大小写-num指定单屏显示的行数-p string在文件中搜索string字符串,从该字符串处显示
  • 180. 4.2 文件的基本操作 4.2.1 查看和搜索文件2. 搜索命令 Linux系统中提供了丰富的工具用于文件的搜索,这些工具既包括了用于根据文件名搜索文件的find、locate等,也包括根据给定的字符串搜索文件内容的grep工具。 1)grep命令 在指定文件中搜索特定的字符内容,并将含有这些字符内容的行输出其格式如下: grep [参数] 文件名 常用参数和含义如下表所示。
  • 181. 4.2 文件的基本操作 4.2.1 查看和搜索文件例4-8 搜索/etc/vsftpd目录下后缀为.conf文件中,其内容中包含“anon”字符串的文本行。 在终端提示符下输入如下命令: [root@myhost root]# grep anon /etc/vsftpd/*.conf 如下图所示。grep常用的参数及含义参 数含 义-v显示不包含匹配文本的所有行-n显示匹配行及行号
  • 182. 4.2 文件的基本操作 4.2.1 查看和搜索文件grep命令返回2)locate命令 该命令用于通过文件名或扩展名搜索文件。locate命令是利用事先在系统中建立系统文件索引资料库的,然后再检查资料库的方式工作的。为了提高locate命令的查出率,在使用该
  • 183. 4.2 文件的基本操作 4.2.1 查看和搜索文件命令前必须拥有最新的资料数据库。可以使用如下的命令更新系统的索引资料数据库: [root@myhost root]# updatedb locate命令的格式如下: locate [参数] 文件名 常用的参数和含义如下表所示。参 数含 义-u建立资料数据库,从根目录开始-U 建立资料数据库,从目录开始-e 排除目录搜索locate常用的参数及含义
  • 184. 4.2 文件的基本操作 4.2.1 查看和搜索文件例4-9 首先建立资料数据库,然后搜索vsftpd.conf文件的存放路径。 在终端提示符下输入如下命令: [root@myhost root]# updatedb [root@myhost root]# locate vsftpd.conf 如下图所示。locate命令执行结果
  • 185. 4.2 文件的基本操作 4.2.1 查看和搜索文件3)find命令 find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。其格式如下: find [路径] [参数] 常用的参数及含义如下表所示。find常用的参数及含义参 数含 义-name 指定搜索的文件名,输出搜索结果-user 搜索指定用户搜索所属的文件-atim
  • 186. 4.2 文件的基本操作 4.2.1 查看和搜索文件例4-10 使用find命令从根目录开始查找httpd.conf文件;从根目录搜索tom用户的文件。 在终端提示符下输入如下命令: [root@myhost root]# find / -name httpd.conf [root@myhost root]# find / -user tom 命令的执行结果如下图所示。find命令执行结果
  • 187. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录4.2.2 新建、删除文件和目录 目录是一组相关文件的集合,一个目录下面除了可以存放文件之外还可以存放其他目录,即可包含子目录。在确定文件、目录位置时,DOS和Linux都采用“路径名+文件名”的方式。路径反映的是目录与目录之间的关系,在目录之间用分割符分开。 1.路径 Linux路径由到达定位文件的目录组成。在Linux系统中组成路径的目录分割符为斜杠“/”,而DOS则用反斜杠“\”来分割各个目录。路径的表示方法有两种:绝对路径和相对路径。 1)绝对路径
  • 188. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录绝对路径是从目录树的树根“/”目录开始往下直至到达文件所经过的所有节点目录,下级目录接在上级目录后面用“/”隔开。例如,假如在图4-2中的etc目录下有一个文件file1,那么file1绝对路径的表示应该是/etc/file1。 注意:绝对路径都是从“/”开始的,所以第一个字符一定是“/”。 2)相对路径 相对路径是指目标目录相对于当前目录的位置。仍然以前面的file1文件为例,若当前目录是etc,如果要指向file1文件,可以直接简单地表示为file1。在当前目录下,或是当前目录的子目录下的文件都可以这样简单地表示。如果不在当前目录下,则需要使用两个特殊目录“.”和“..”了。目录“.”指向当前目录,而目录“..”
  • 189. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录则指向当前目录的上一级目录。若图4-2中的bin目录下有一个文件file2,当前目录为etc,那么file2的相对路径可表示为:../bin/file2。 2.通配符 与DOS下的文件操作类似,在Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。Linux系统中的通配符除了“*”和“?”以外,还可以是使用“[”、“]”和“-”组成字符组,以便确定需要匹配的范围。 通配符*:可以代表文件名中的任意字符或字符串,但不能与句点打头的文件名匹配。在Linux系统中以句点打头的文件是隐藏文件。
  • 190. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录通配符?:可以代表文件名中的任意一个字符。 通配符“[”、“]”、和“-”:用于构成字符组。“[”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。例如,[abc]表示匹配a、b、c中的任意一个,[a-f]表示从a到f范围内的的任意一个字符。 3.创建文件 在Linux系统中,可以利用touch命令来创建文件,同时touch还可以修改文件的存取和修改日期。如果touch命令没有
  • 191. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录指定时间,touch就会将文件的存取时间、修改时间设置为系统的当前时间。该命令的格式如下: touch [参数] 文件名 常用参数及含义如下表所示。参 数含 义-a仅修改存取时间,具体时间有-t参数指定-c如果指定文件不存在,也不生成新文件-m仅修改最后修改时间 -r f_name根据f_name文件的时间记录修改指定文件-t timetime格式[[CC]YY]MMDDhhmm[.SS]touch常用的参数及含义
  • 192. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录例4-11 使用touch命令创建文件file1。 在命令提示符下执行如下命令,执行结果如下图所示。 [root@myhost root]# touch file1使用touch命令创建文件这样就新建了一个名为file1的文件,当然,此文件是一个空文件,里面没有内容。
  • 193. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录例4.12 将上例创建的file1文件的最后修改时间修改为2008年12月28日。 在命令提示符下执行如下命令,执行结果如下图所示。 [root@myhost root]# touch -m -t “12282008” file1设置文件的修改时间4.删除文件 rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下的所有文件及子目录均删除。该命令的
  • 194. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录基本使用格式如下: rm [参数] 文件名 常用参数及含义如下表所示。rm常用的参数及含义参 数含 义-i以进行交互式方式执行-f强制删除,忽略不存在的文件,无需提示-r递归地删除目录下的内容注意:使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。若确认删除,输入y,文件将被删除,否则输入其他任何字符放弃删除。
  • 195. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录例4.12使用rm命令分别进行交互式删除和强制删除。在命令提示符下分别执行如下命令,执行结果如下图所示。 [root@myhost root]# rm –i file1 [root@myhost root]# rm –f file1使用rm命令删除文件使用“rm -i file1”命令时采用了交互式执行方式,询问是否删除file1文件。“rm -f file1”命令时采用了强制执行方式,直接删除指定的文件。
  • 196. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录5.切换工作目录 所谓工作目录,就是当前操作所在的目录。用户在使用Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录,后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。还可以使用“~”、“.”和“..”作为目录名,其中“~”表示当前用户的主目录,“.”表示当前目录,“..”表示当前目录的上层目录,即父目录。该命令使用的格式如下: cd 目录名 例如,切换到/usr/bin/可用如下命令: [root@myhost root]# cd /usr/bin 切换到当前用户的主目录可用如下命令: [root@myhost root]# cd ~
  • 197. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录切换到当前目录的上两层可用如下命令: [root@myhost root]# cd ../.. 6.显示当前路径 使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。 7.新建目录 可使用mkdir命令创建一个新的目录。需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。该命令格式如下: mkdir [参数] 目录名 常用参数及含义如下表所示。
  • 198. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录mkdir常用的参数及含义例4-13 使用mkdir命令分别创建目录dir1、dir2,在dir1中创建目录dir3,在dir2中创建目录dir4,并使用touch命令在dir2中创建文件file2。 在终端提示符下执行如下命令,如下图所示。参 数含 义-m对新建目录设置存取权限-p如果欲建立的目录的上层目录尚未建立,则一并建立其上的所有祖先目录
  • 199. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录使用mkdir和touch分别创建目录和文件注意:例4-13中还使用了cd命令,这是一个用来进行目录切换的命令,Linux下的命令区分大小写,不能写成CD。例题中cd dir1是进入dir1目录中,cd ..是回到上一级目录。注意到当切换到dir1目录中,前面的[root@myhost root]变成了[root@myhost dir1]。
  • 200. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录8.删除目录 删除空目录可以使用rmdir命令,该命令是从一个目录中删除一个或多个子目录项。需要注意的是,一个目录被删除之前必须是空的。如果要删除的目录不空,将产生错误提示。该命令的基本使用格式如下: rmdir [-p] 目录 命令中选项含义如下。 参数-p表示递归删除目录,当子目录删除后,其父目录为空时也一同被删除。命令执行完毕后,显示相应信息。 此外,使用rm –r也可删除目录及其下的文件和子目录。
  • 201. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录例4-14 使用rmdir-p递归删除dir1和dir3目录,使用rm –r命令删除dir2目录及其下的所有文件和子目录。 首先用ls命令查看root主目录下的文件,然后执行过删除目录的命令后再用ls查看一下root目录。在命令提示符中下执行rmdir命令和rm命令,删除完成后再用ls查看一下root目录,结果如下图所示。 [root@myhost root]# rmdir –p /root/dir1/dir3 [root@myhost root]# rm –r dir2
  • 202. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录使用rmdir和rm命令删除目录执行rmdir –p命令递归删除目录时,首先从最里层的子目录进行删除,当dir3删除后,dir1为空目录,所以能够递归
  • 203. 4.2 文件的基本操作 4.2.2 新建、删除文件和目录删除,而dir1删除后,root目录下还有其它文件,故而会显示提示语句“rmdir:‘/root’:目录非空”,说明不能删除root目录。使用rm –r命令删除目录,则会给出提示信息要求确认删除。 执行删除命令之前,用ls命令可以查看到root主目录里有dir1和dir2两个蓝色字体显示的目录文件,成功删除目录后,用ls命令可以看到root目录的这两个目录文件已经被删除了。
  • 204. 4.2 文件的基本操作 4.2.3 复制、移动和重名文件4.2.3 复制、移动和重名文件 复制、移动和重命名文件,是几个较为常用的文件操作,下面将介绍执行这几个操作的命令。 1.复制文件 cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。该命令可以同时复制多个源文件到目标目录中,在进行文件复制的同时,可以指定目标文件的名称。其基本使用格式如下: cp [参数] 源文件或目录 目标文件或目录 常用参数及含义如下表所示。
  • 205. 4.2 文件的基本操作 4.2.3 复制、移动和重名文件cp常用的参数及含义参 数含 义-a该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录-f删除已经存在的目标文件而不提示-i交互式复制,在覆盖目标文件之前将给出提示要求用户确认-p此时cp命令除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中-r若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
  • 206. 4.2 文件的基本操作 4.2.3 复制、移动和重名文件注意:为防止用户在不经意的情况下用cp命令破坏另一个文件,建议用户在使用cp命令复制文件时,最好使用i选项。 例4.15 创建文件file3,使用cp命令将文件file3复制到/tmp目录,并改名成file4。在终端提示符下执行如下命令,执行结果如下图所示。 [root@myhost root]# touch file3 [root@myhost root]# cp –i file3 /tmp/file4使用cp命令复制文件
  • 207. 4.2 文件的基本操作 4.2.3 复制、移动和重名文件2.移动或重命名文件 用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。它的用法相当于DOS下的ren和move的组合。该命令格式如下: mv [参数] 源文件或目录 目标文件或目录 常用参数及含义如下表所示。mv常用的参数及含义参 数含 义-i交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件-f禁止交互式操作,如有覆盖也不会给出提示
  • 208. 4.2 文件的基本操作 4.2.3 复制、移动和重名文件如果mv命令格式为“mv 源文件 目标文件”,且两个文件在同一目录下,则表示将源文件重命名为目标文件; mv命令是移动文件或目录还是重命名文件或目录,视源文件和目标文件的类型而定。 如果源文件和目标文件的类型都为文件,且两个文件同在一个目录,则是将源文件重命名为目标文件。 如果源文件为目录,目标文件为不存在的目录,它们同在一个父目录,则是将源目录重名为目标目录。 如果目标文件为已存在的目录,源文件可以是多个文件或目录,mv命令将指定的源文件或目录均移至目标目录中。
  • 209. 4.2 文件的基本操作 4.2.3 复制、移动和重命名文件例4.16 使用mv命令将file3文件移动到/home目录下,并用ls命令查看结果。 在终端提示符下输入如下命令,执行结果如下图所示。 [root@myhost root]# ls ←查看移动前当前目录下文件 [root@myhost root]# mv file3 /home ←移动file3文件到/home目录 [root@myhost root]# ls ←查看移动后当前目录下文件 [root@myhost root]# ls /home ←查看移动后/home目录下文件使用mv命令移动文件
  • 210. 4.2 文件的基本操作 4.2.3 复制、移动和重名文件例4.17 使用mv命令将file4文件重名为file1,并用ls命令查看结果。 在终端提示符下输入如下命令,执行结果如下图所示。 [root@myhost root]# ls [root@myhost root]# mv file4 file1 [root@myhost root]# ls使用mv命令重命名文件
  • 211. 4.2 文件的基本操作 4.2.4 归档管理4.2.4 归档管理 计算机中的数据经常需要备份,tar是Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。此外,tar命令还可用于压缩和解压缩文件。 1.文件归档 tar用于将文件进行归档,即将一系列的文件归档到一个文件中,需要时也可以将归档的文件解开,归档之后的大小和原来一样。其格式如下: tar [参数] 打包文件名 文件 tar命令很特殊,其参数前面可以使用“-”,也可以不使用。 常用参数及含义如下表所示。
  • 212. 4.2 文件的基本操作 4.2.4 归档管理tar常用的参数及含义参 数含 义-c生成档案文件-C切换到指定的目录-v列出归档解档的详细过程-f指定档案文件名称-r将文件追加到档案末尾-t列出档案中包含的文件-z以gzip格式压缩或解压缩档案文件-j以bzip2格式压缩或解压缩档案文件-x解开档案文件
  • 213. 4.2 文件的基本操作 4.2.4 归档管理例4.18 使用tar命令将/home目录中的所有文件打包到homebak.tar中。 在终端提示符下执行如下命令,执行结果如右图所示。 [root@myhost root]# cd /home [root@myhost home]# tar cvf homebak.tar /hometar归档文件
  • 214. 4.2 文件的基本操作 4.2.4 归档管理例中使用cd命令进入/home目录下,在没有用-C指定目录的情况下,打包的档案文件homebak.tar默认存放在当前用户所在的/home目录下,打包后的档案文件包含/home目录下的所有文件。而要解开这个档案文件,可以运行如下命令: [root@myhost home]# tar xvf homebak.tar 注意:默认情况下tar命令会把档案文中包含的文件恢复到当前工作目录中,也许这不是文件的原始位置,可以使用选项-C指定要恢复到的目录。 2.tar的压缩与解压缩功能 为节省存储空间或减少网络传输时间,许多文件都需要进行压缩,形成了压缩文件,例如test.tar.gz或者test.tgz文件。tar命令也提供了压缩与解压缩的功能。
  • 215. 4.2 文件的基本操作 4.2.4 归档管理提示:tar命令中的参数-z和-j用于压缩文件,前者为以gzip格式压缩,后者则是以bzip2格式压缩,需要注意的是tar的压缩和解压缩功能必须有归档功能一起使用,即-z参数和-j参数必须-c参数一起使用。 例如,若要将例4.18中的/home目录在归档文件的同时对数据进行压缩以节省磁盘空间,如果使用gzip压缩格式进行压缩,则可使用如下命令: [root@myhost root]# tar czvf homebak.tar.gz /home 而要解开这个档案文件,可以运行如下命令: [root@myhost root]# tar xzvf homebak.tar.gz 注意:tar档案文件的扩展名一般为.tar,如果使用了gzip压缩格式,则扩展名通常为.tar.gz或者.tgz;如果使用了bzip2压缩格式扩展名则为.tar.bz2。
  • 216. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限(1)读权限(r):允许用户读取文件内容或者列目录。 (2)写权限(w):允许用户修改文件内容或者创建、删除文件。 (3)可执行权限(x):允许用户执行文件或者运行使用cd命令进入目录。 注意:通常,Linux系统只允许文件的属主或超级用户改变文件的权限。 4.3.2 修改文件/目录的访问权限 在Linux系统中,文件的权限是按照用户来划分的,同一个文件或目录,对于不同的用户赋予不同的读写权限。通过使用ls -l命令列出目录和文件的详细信息,可以查看不同类型用户所对应的权限。使用chmod命令修改文件或目录的访
  • 217. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限问权限。该命令的基本使用格式如下: chmod [参数] 文件或目录名 说明:该命令的参数部分可以使用符号表达式,也可以使用八进制数充当。当使用字符表达式时,包括三部分,即用户对象、操作符号和读写权限。 (1)用户对象,分为属主用户、属组、其他用户和所有用户,分别以如下的符号表示: u:属主,即文件或目录的所有者,拥有对文件最大的读写权限。 g:属组,即与文件属组有相同组ID的所有用户。 o:表示其他用户,通常只具有浏览权限。
  • 218. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限a:表示以上所有用户。 (2)操作符号包括添加权限、取消权限和赋予权限操作,分别以如下的符号表示: +:添加某个权限。 -:取消某个权限。 =:赋予给定权限并取消其他所有权限(如果有的话)。 (3)读写权限包括可读权限、可写权限和可执行权限,分别以如下的符号表示: r:可读权限。如果文件可读,表示用户可以读取该文件的内容;如果目录可读,表示用户可以列出该目录的信息。
  • 219. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限w:可写权限。如果文件可写,表示用户可以修改该文件的内容,或删除该文件;如果目录可写,表示用户可以在其中创建新的目录或文件,或删除目录内的文件或子目录。 x:可执行。对于文件来说,可执行权限表示具有该权限的用户可以运行该程序;对于目录来说,可执行权限表示具有该权限的用户可以进入该目录。 注意:上述3种读写权限可以任意组合使用。另外,如果用户对某文件仅具有可执行的权限时,也并不能真正被运行,它还必须具有该用户的可读属性。 例4-21 取消系统中的所有用户对file1文件的可执行权限,给file1属组用户添加可写权限。
  • 220. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限在终端提示符下如下的两条命令: [root@myhost root]# chmod a-x file1 [root@myhost root]# chmod g+w file1 执行的结果如下图所示。字符方式修改文件权限
  • 221. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限如果使用r、w、x和-这4个字符代表用户的权限有些过于麻烦,此时可以使用数字来表示权限:r对应4;w对应2;x对应1;-对应0,对每一类用户的各项权限进行相加,就会得到3个从0到7的数字。chmod的参数也可以使用三位八进制数来表示读写权限,这样的数字称为权限数字。例如,644的3位数从左到右,第一位表示属主的读写权限,6(=4+2)表示该文件的属主对该文件拥有可读、可写的权限;第二位表示属组的读写权限,4表示文件的属组对该文件拥有可写的权限;第三位表示非属主和非属组用户的读写权限,4表示非属主和非属组用户对该文件拥有可读的权限。 例4-22 对文件file1设置读写权限,使得其属主和属组用户拥有读取写入权限,其他用户只能读取。
  • 222. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限在终端提示符下输入如下命令: [root@myhost root]# chomd 664 file1 执行结果如下图所示。数字方式修改文件权限
  • 223. 4.3 文件权限管理 4.3.2 修改文件/目录的访问权限上述命令中的第一个6即代表用户权限为4(可读)+2(可写),第二个6即代表同组用户权限为4(可读)+2(可写),第三个4则代表其他用户的权限只能是4(可读)。 注意:默认情况下,新创建的普通文件的权限被设置为-rw-r--r--,即文件属主对该文件可以读取写入,而同组用户和其他用户都只可读。此外,每个用户主目录的权限都设置为drwx------,即只有文件属主对该目录可以读取、写入和查询,用户不能读其他用户目录中的内容。
  • 224. 4.3 文件权限管理 4.3.3 改变文件/目录的所有权4.3.3 改变文件/目录的所有权 文件和目录的所有权是Linux文件安全模型的另一个组成部分。用户可以使用chown命令来修改文件的所有者和归属的组从而限制文件或目录的访问权限。使用chgrp命令也可以改变文件的归属组。只有用户本身或超级用户才能更改文件的所有权限。 1.chown命令 该命令用于更变指定文件或目录的属主和属组信息。通常,只能系统的超级用户才能使用该命令来更改指定文件或目录的属主和归属组。chown命令基本格式如下: chown [参数] 属主[.属组] 文件或目录 常用参数及含义如下表所示。
  • 225. 4.3 文件权限管理 4.3.3 改变文件/目录的所有权chown常用的参数及含义参 数含 义-v显示拥有者变更的信息-R对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help显示辅助说明--version显示版本
  • 226. 4.3 文件权限管理 4.3.3 改变文件/目录的所有权例4.23 将file1文件修改为tom组中tom用户所有。 首先使用who命令确认是以超级用户登录系统的,然后在终端提示符下下执行如下命令: [root@myhost root]# chown tom.tom file1 其执行结果如下图所示。修改文件所有者
  • 227. 4.3 文件权限管理 4.3.3 改变文件/目录的所有权说明:先使用了who命令查看当前登录系统的账号是不是超级用户root,然后使用ls -l |grep file1查看file1文件当前的属主和组,然后修改之,最后在使用ls命令确定修改的结果。 2.chgrp命令 该命令用于变更文件与目录的所属组。只有文件的所有者并且是该组成员或者是超级用户才能够修改文件的属组。chgrp命令基本格式如下: chgrp [参数] 属组 文件或目录 常用参数及含义如下表所示。
  • 228. 4.3 文件权限管理 4.3.3 改变文件/目录的所有权修改文件所有者参 数含 义-v显示指令执行过程-R递归处理,将指定目录下的所有文件及子目录一并处理
  • 229. Linux操作系统实用教程 第四章 完
  • 230. Linux操作系统实用教程第5章 Red Hat Linux 9用户管理 5.1 认识用户和组 5.2 root 账号 5.3 管理用户账号 5.4 管理用户组
  • 231. 第5章 Red Hat Linux 9用户管理 本章概述 用户管理是Red Hat Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。所谓账号管理是指账号的新增、删除和修改、账号规划以及权限的授予等问题。本章主要阐述了Red Hat Linux 9的账户管理机制,包括用户管理和组管理。在本章的最后介绍了Red Hat Linux 9中常用的用户管理工具。
  • 232. 5.1 认识用户和组 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。在Red Hat Linux中系统账号可分为两种类型: (1)用户账号:通常一个操作者拥有一个用户账号,这个操作者可能是一个具体的用户,也可能是应用程序的执行者,比如apache、ftp账号。每个用户都包含一个惟一的识别码,即用户ID(UID,User Identity),以及组识别码,即组ID(GID,Group Identity)。在Linux系统中可以有两种用户账号:管理员root用户和普通用户。 (2)组账号:一组用户账号的集合。通过使用组账号,可以设置一组用户对文件具有相同的权限。管理员以组为单位分配对资源的访问权限,例如读取、写入或执行的权限,从而可以节省日常的维护时间。
  • 233. 5.1 认识用户和组 1. 标准用户 在Red Hat Linux 9安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。这些用户账号除了“root”代表超级用户之外,其余账号都是系统账号。需要注意的是,标准账号是操作系统安装时,自动建立的用户启动相应的应用程序,超级用户在向系统添加普通用户的时候,不能和系统中已有的标准用户同名。系统中的部分标准账号见下表。
  • 234. 5.1 认识用户和组 用户名称用户ID组ID主目录root00/rootbin11/bindaemon22/sbinadm34/var/admlp47/var/spool/lpdsync50/sbinshutdown60/sbinhalt70/sbinmail812/var/spool/mailnews913/etc/newsuucp1014/var/spool/uucpoperator110/rootLinux系统的部分标准账号
  • 235. 5.1 认识用户和组 2. 标准组 在Red Hat Linux 9安装的过程中,系统除了会自动创建默认的用户账号外,也会新增“标准组”账号。同样,除了“root”组是用来组织管理者之外,其余的账号都是提供给应用程序在执行时使用。Red Hat Linux 9的部分标准组见下表。组名称组ID(GID)组成员root0rootbin1root,bin,daemondaemon2root,bin,daemonsys3root,bin,admadm4root,bin,daemontty5disk6rootlp7daemon,lpLinux系统的部分标注组账号
  • 236. 5.2 root 账号 Linux系统中的root账号通常用于系统的维护和管理,它对Linux操作系统的所有部分具有不受限制的访问权限。 值得注意的是,系统真正关心的并不是该账号的用户名,而是该账号的用户ID,即UID。/etc、passwd文件中定义的超级用户UID为0,也就是说,如果某个账号的uid为零,系统将会认为该用户就是超级用户。在Linux中超级用户登录系统的时候,系统不会对该用户进行存取限制和安全性验证,所以超级用户root可以操作任何人的文件或者就像文件的拥有者一样管理文件。
  • 237. 5.2 root 账号 在大多数版本的Linux中,都不推荐直接使用root账号登录系统。当系统管理员需要从普通用户切换到超级用户时,可使用su或su -命令,然后输入root账号的密码即可,而不用重新登录。 例如,使用su命令切换用户: [tom@myhost tom]$ su 在tom账号下使用su命令 Password: 输入root账号密码 [root@myhost tom]# 进入root账号 使用su –命令切换用户: [tom@myhost tom]$ su - 在tom账号下使用su命令 Password: 输入root账号密码 [root@myhost root]# 进入root账号
  • 238. 5.2 root 账号 需要返回原来的普通用户账号时,直接输入exit命令即可。如果要进入别的普通用户账号,可在su命令后直接加上其他账号,然后输入密码。 su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户的主目录。输入后,系统将提示输入相应用户的口令,只有输入的口令正确才能完成身份的转换。如果su命令后没有携带用户名,系统默认从当用户切换到超级用户,并提示用户输入超级用户口令。
  • 239. 5.3 管理用户账号 5.3.1 Linux的影子密码体系5.3.1 Linux的影子密码体系 在Linux的早期版本中,用户的账号数据,包括用户名、用户ID、组ID、用户的主目录和用户使用的shell等都保存在/etc/passwd文件中。由于该文件对于任何用户都是可读的,因而存在口令安全隐患。在RedHat Linux 9中,为了确保用户的口令安全,在/etc/passwd文件中不再保存用户的口令数据,用户的口令被加密后存放在/etc/shadow文件中,passwd文件仍然保持了所有用户的可读性,而shadow文件只有root账号才可读。这种机制称为影子密码体系。在默认安装RedHat Linux 9的时候,shadow文件中的口令使用MD5加密。
  • 240. 5.3 管理用户账号 5.3.1 Linux的影子密码体系 1.用户账号信息——/etc/passwd 通常在Linux中的所有账户信息都记录在/etc/passwd中,该文件的存取属性为644,也就是对所有用户可读,但只用root组中的用户才能修改。 在/etc/passwd文件中,每一行都代表一个用户的账号信息,而每个用户的信息都是以“:”来分隔不同的字段记录,其中包含7个字段,见下表。字段1字段2字段3字段4字段5字段6字段7用户名口令UIDGID账号信息主目录登录shellrootx00root/root/bin/bash/etc/passwd中包含的字段
  • 241. 5.3 管理用户账号 5.3.1 Linux的影子密码体系各字段的含义如下: 用户名:是用户登录系统时的登录名,它由root或是具有和root相同权限的管理员指定,每个用户在登陆系统时都必须使用指定的登录名。 口令:即用户的登录系统时使用的密码。通常该字段是一个“x”,表示是一个经过加密处理的口令,加密后的密码给放置在/etc/shadow文件中,且该文件只能被root组的账号访问。如果该字段显示“*”则表示对应账号停用。 UID:每个账号唯一的识别号,最大可谓65535。UID在500之前的账号是提供系统服务使用的,管理员新增的第一个普通用的UID为500,然后依次是501、502…以此类推。
  • 242. 5.3 管理用户账号 5.3.1 Linux的影子密码体系GID:组账号的唯一的识别号。用户组的信息被存放在/etc/group文件中,root组的GID为0。管理员创建的第一个组的GID为500,然后依次是501、502…以此类推。 账号信息:主要存放用户的附加信息,如用户名称、电话或该用户的详细说明等。用户可以使用finger命令来查看该字段的内容,还可以利用chfn命令来修改其内容。 主目录:用户登录后直接进入的目录,在默认的状态下,每个用户都有一个主目录。root用户的主目录为/root,管理员创建的用户的主目录通常为/home/<用户名>,如tom用户主目录为/home/tom。
  • 243. 5.3 管理用户账号 5.3.1 Linux的影子密码体系登录shell:用户在登录系统时使用的shell,Red Hat Linux 9默认使用的是/bin/bash, 2. 用户口令文件——/etc/shadow 在Linux系统中通常使用影子口令机制(Shadow Password),用户的身份信息被存放在/etc/passwd文件中,用户的口令信息加密后保存在另一个文件/etc/shadow中,并只设置root账号的可读属性,因而大大提高了系统的安全性能。
  • 244. 5.3 管理用户账号 5.3.1 Linux的影子密码体系在/etc/shadow文件中有9个字段,每个字段使用“:”分隔。其中保存了用户名、加密后的口令等信息。各字段的含义见下表。字 段说 明1用户账号名称,如root2用户加密后的口令。如果该字段的值为“!!”和“*”,则表示该用户当前没有密码,也不能登录系统,这些用户通常是标准账号。其他的用户密码都是经过MD5加密后的内容。另外,用户任何时候都不能通过直接修改该字段的方法,来更变用户口令3由1970年1月1号算起,到最后一次修改密码的时间间隔(以日为单位)4密码自上次修改后,要间隔多少天数后才能再次被修改,如果为0则无限制/etc/shadow中包含的字段
  • 245. 5.3 管理用户账号 5.3.1 Linux的影子密码体系5密码自上次修改后,最多间隔多少天数后密码必须被修改6如果密码有时间限制,那么在过期前多少天向用户发出警告,默认为7天7如果密码设置为必须修改,到期后仍未修改,系统自动关闭账号的天数8从1970年1月1号算起,到账号过期的天数9系统保留,尚未使用使用影子密码机制可以提供以下的优点: (1)将原本/etc/passwd文件中的密码移至/etc/shadow文件中,而shadow文件只允许管理员root账户读取,可以提
  • 246. 5.3 管理用户账号 5.3.1 Linux的影子密码体系高系统的安全性。而且其中的密码是采用MD5算法加密的,root账户也无法直接获得口令的内容,但是root账户可以变更用户密码或停用每个账户。 (2)可记录密码变更的时间。 (3)可以设置密码使用的时间,以避免用户的密码变更过于频繁。 (4)可以使用/etc/login.defs文件来设置密码的安全性原则,例如密码的最小长度或密码最短的使用时间等。 用户管理的工作包括建立一个合法的账号、设置和管理用户的口令、修改账号的属性以及在必要时删除账号。
  • 247. 5.3 管理用户账号 5.3.2 setuid和setgid 5.3.2 setuid和setgid 用户存储用户信息的/etc/passwd文件只有超级用户才能进行修改,而用于存储用户口令的文件/etc/shadow甚至只有超级用户才可以访问。只有在普通用户执行passwd命令的时候,能够读取和修改/etc/passwd和/etc/shadow文件,才能使普通用户修改自己的口令。为了解决在用户修改口令时,文件系统存取权限矛盾,Linux给/usr/sbin/passwd命令设置了setuid属性。 setuid是一种文件的拥有者具备的特殊属性,它使得被设置了setuid位的程序无论被哪个用户启动执行,都会自动具有文件拥有者的权限,在Linux中典型拥有setuid属性的文件就是/usr/bin/passwd程序,见下图。通常setuid属性只会设置在可执行的文件上,因为尽管理论上可以给不可执行的文件加上setuid属性,但是这样做通常是没有意义的。
  • 248. 5.3 管理用户账号 5.3.2 setuid和setgid文件属性中的s占据的位即为setuid位,“s”代表对应的文件被设置了setuid属性,因为passwd程序的拥有者是超级用户root,因此passwd程序执行的时就自动获取了超级用户的权限,所以无论是哪个用户执行了passwd程序都可以修改系统的口令文件。 要给一个文件加上setuid属性,可以使用如下的命令: chmod u+s <文件名> 或 chmod 4xxx <文件名> passwd文件的setuid属性
  • 249. 5.3 管理用户账号 5.3.2 setuid和setgid 其中,u+s表示给文件的拥有者添加setuid属性,其属性字为4000,xxx代表文件原来的存取属性。 setgid与setuid类似,只是setgid是文件归属的组具备的特殊属性,具有setgid的可执行文件运行时,自动获取文件对应的组权限,因为组权限不像用户权限那样精确,所以使用setgid的程序很少。要给某个文件添加setgid属性,可以命令: chmod g+s <文件名> 或 chmod 2xxx <文件名> 其中,g+s表示给文件的归属组添加setgid属性,其属性字为2000,xxx代表文件原来的存取属性。 setuid和setgid属性都是对正常的Linux安全机制开的后门,原则上,只有在明确的非用不可的功能中才使用它们。特别是,具有超级用户权限的setuid属性的应用程序经常是系统遭受攻击的目标。因此要千万慎用。
  • 250. 5.3 管理用户账号 5.3.3 使用命令行管理用户5.3.3 使用命令行管理用户 1.添加用户账号 在RedHat Linux 9中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。 useradd命令的使用格式如下: useradd [参数] 新建用户账号 常用参数和含义见下表。参 数含 义-d 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录useradd命令的参数及含义
  • 251. 5.3 管理用户账号 5.3.3 使用命令行管理用户例5.1 建立jack账号,其主目录为/home/tom、归属于tom组、账号信息为general user、用户shell为/bin/bash、账号有效期到2015年12月1日。命令的执行过程如图所示。-s 设置用户登录系统时使用的shell,默认为/bin/bash-g 指定用户所属的组,该组的GID必须是在/etc/group文件中登记过的,即该组已存在。如果不使用该参数,系统自动建立用户同名的组,并将该用户纳入该组-c 用于指定账号信息字段的内容-u 指定用户的UID-e 指定账号的有效期限,格式为YYYY-MM-DD
  • 252. 5.3 管理用户账号 5.3.3 使用命令行管理用户 [root@myhost root]# useradd –d /home/tom –g 500 -c “general user” –s /bin/bash –e 2008-12-1 jack2.变更用户口令 在Linux系统中,每个用户除了拥有账号外,还应该拥有相应的口令。系统管理员root应该在创建用户账号的时候为每个用户指定一个初始密码,用户利用此密码登录系统后,再自行修改。用户应该选择一个自己容易记忆的口令,同时还应该保证该密码的健壮性。useradd命令示例
  • 253. 5.3 管理用户账号 5.3.3 使用命令行管理用户 由于入侵者可以使用自动化的工具软件多次尝试登录系统,简单的口令很容易被破解,因此,一个健壮性高的口令应该具备以下特点:不包含个人信息,不存在键盘顺序规律,不使用字典中的单词,最好包含非字母符号,长度不小于8位,同时还用方便记忆。 在RedHat Linux 9中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。该命令的常用格式为: passwd [参数] 用户名 常用的参数及含义如表所示。
  • 254. 5.3 管理用户账号 5.3.3 使用命令行管理用户例5.2 使用passwd的--stdin参数为例5.1中建立的jack账户设置初始口令。 在终端中输入如下命令,结果如图所示。 [root@myhost root]# passwd jack --stdin参 数含 义-d删除用户口令,此后该用户登录系统是无需口令-l临时锁定用户账号,该账号此后无法登录系统,直到解锁-u解除账号的锁定--stdin在用户设置口令的时候,通常并不显示内容,并且需要用户输入两次口令以便验证两次输入是否一致。使用该参数表示在用户设置口令的时候,显示口令内容,同时只需要用户输入口令一次。passwd命令的参数及含义
  • 255. 5.3 管理用户账号 5.3.3 使用命令行管理用户 例5.3 tom登录系统后,更变自己的口令。命令执行的过程如下图所示。 [root@myhost tom]# passwdroot账号设置jack用户初始口令tom用户变更自己口令
  • 256. 5.3 管理用户账号 5.3.3 使用命令行管理用户 3.查看用户信息 1) whoami命令 该命令用户查看当前系统当前账号的用户名。由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。 该命令的使用格式如下: whoami 2) who命令 该命令用于查看当前所有登录系统的用户信息,使用格式如下: who [选项] 常用的参数及含义如下表所示。
  • 257. 5.3 管理用户账号 5.3.3 使用命令行管理用户 例5.4 使用who命令查看当前登录系统的用户详细信息。在终端中输入如下命令,结果如图所示。 [root@myhost root]# who –uH参 数含 义-m或am I只显示运行who命令的用户名、登录终端和登录时间-q或--count只显示用户的登录账号和登录用户的数量-u在登录时间后显示该用户最后一次操作到当前的时间间隔-H或--heading显示列标题who命令的参数及含义
  • 258. 5.3 管理用户账号 5.3.3 使用命令行管理用户 其中,IDLE字段显示为“.”表示该用户前一秒仍然在操作系统。who命令输出的常用标题及含义如下表所示。NAMELINETIMEIDLEPIDCOMMENT用户名用户登录时的终端登录时间用户空闲时间登录进程PID用户网络地址who命令查看登录账号who命令输出的常用标题
  • 259. 5.3 管理用户账号 5.3.3 使用命令行管理用户 3) w命令 该命令也可以查看登录当前系统的用户信息。与who命令相比,w命令的功能更强大,它不但可以显示当前有哪些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据。 w命令的格式如下: w [选项] [用户名] 如果w命令携带用户名,则只显示指定用户的信息,否则显示当前所有登录用户的信息。其常用参数和含义如表所示。
  • 260. 5.3 管理用户账号 5.3.3 使用命令行管理用户 例5.5 使用w命令查看当前登录系统的用户的详细信息,显示结果如下图所示。参 数含 义-h不显示各列的标题-l显示详细信息列表,此为预设值-s使用短列表,不显示用户登录时间、JCPU和PCPU时间 who命令的参数及含义w命令查看登录账号信息
  • 261. 5.3 管理用户账号 5.3.3 使用命令行管理用户 w命令输出的常用标题及含义如下表所示。4) finger命令 该命令用于查找指定用户,并显示该用户的相关信息。该命令常用格式如下: finger [参数] [用户名]USERTTYFROMLOGIN@IDLEJCPUPCPUWHAT用户名用户登录时的终端用户网络地址登录时间用户空闲时间用户终端所有进程占用的时间当前进程占用的时间用户当前执行的命令w命令输出的常用标题
  • 262. 5.3 管理用户账号 5.3.3 使用命令行管理用户 该命令常用的参数有-l,可以显示特定用户的详细信息。finger -l命令的执行结果如下图所示。4.修改用户信息 1) chfn命令 该命令用于修改系统中存放的用户信息。这些用户信息包括:用户全名、工作单位、工作电话和家庭电话等。finger –l命令执行
  • 263. 5.3 管理用户账号 5.3.3 使用命令行管理用户 在新建一个用户时,通常没有设置用户信息,如果需要可以使用chfn命令设置,这些信息也是finger命令显示的内容,如果chfn命令没有携带任何用户名,表示更改当前登录系统的用户的信息,此时系统会出现一个交互式界面等待用户输入,录入完毕后,信息将被保存到/etc/passwd文件的账号信息字段中。 该命令使用格式如下: chfn [用户名] 例如,修改root账号的信息,如图所示。
  • 264. 5.3 管理用户账号 5.3.3 使用命令行管理用户 2) usermod命令 在RedHat Linux 9中,除了在添加用户时指定用户的主目录、登录时的shell和所属的组外,还可以在用户创建后,使用usermod命令来修改用户的这些信息。usermod命令的使用格式如下:chfn命令修改root信息
  • 265. 5.3 管理用户账号 5.3.3 使用命令行管理用户 usermod [选项] [用户名] 常用参数和含义见下表。参 数含 义-d 重新指定用户登录系统时的主目录 -s 设置用户登录系统时使用的shell-g 指定用户主组-G 重新指定用户所属的组名-u 重新指定用户的UID-e 指定账号的有效期限,格式为YYYY-MM-DD-c 用于指定账号信息字段的内容usermod命令的参数及含义
  • 266. 5.3 管理用户账号 5.3.3 使用命令行管理用户 例5.6 将jack用户归于root组(GID为0),主目录指定到/home/jack。命令执行如下图所示。 [root@myhost root]# usermod –G 0 –d /home/jack5.删除用户 为了保证系统的安全,在Linux系统中,如果某个用户账号不再使用,就应该从系统中删除。在Linux系统中可以通过直 usermod命令执行
  • 267. 5.3 管理用户账号 5.3.3 使用命令行管理用户 接删除/etc/passwd和/etc/shadow文件中对应行的办法来删除系统账号,但这种方法不利于初学者,更增加了管理员的负担。因此在Linux系统中提供了userdel命令来实现从系统中删除已有账户。 该命令的使用格式如下: userdel [-r] [用户名] 如果使用参数-r,则表示在删除用户的同时,将该用户的主目录一并删除。 6. 在登录的用户间传递消息 在Linux系统中,提供了几个用于向登录用户发送消息的工具,以便管理员在需要的时候使用这些工具向其他登录用户发送系统消息。
  • 268. 5.3 管理用户账号 5.3.3 使用命令行管理用户 1) mesg命令 该命令用于设置终端机的写入权限,即如果mesg使用y参数表示允许其他用户将消息传到自己的终端机界面上。如果mesg使用n参数表示不允许其他用户将消息传到自己的终端机界面上。该命令的使用格式如下: mesg [选项] 常用参数和含义见下表。参 数含 义y允许其他用户将消息传到自己的终端机界面上n不允许其他用户将消息传到自己的终端机界面上mesg命令的参数及含义
  • 269. 5.3 管理用户账号 5.3.3 使用命令行管理用户 2) wall命令 该命令能将消息内容发送给每一个在线的用户,但是该用户的必须首先使用mesg命令允许其他用户将消息传到其终端上。改名的使用格式如下: wall 也可以直接使用wall,然后输入信息,不过信息结束时需加上 EOF (使用键盘键Ctrl+D)。
  • 270. 5.3 管理用户账号 5.3.4 批量建立用户账号5.3.4 批量建立用户账号 在Red Hat Linux 9中,提供了newusers和chpasswd工具用户创建批量用户,以减轻管理员的工作量,并减少错误的发生率。步骤如下: (1)创建用户信息文件。其中按照/etc/passwd文件的字段格式和次序,一行一个用户信息。 (2)执行newusers工具,读取用户信息。 (3)将读取的信息依次在/etc/passwd和/etc/shadow文件中创建记录,以新建批量用户。 以下配合一个实例,来介绍如何使用RedHat Linux 9提供的newusers和chpasswd等工具新建批量用户账号。
  • 271. 5.3 管理用户账号 5.3.4 批量建立用户账号1.创建用户信息文件 批量创建用户的第一步就是为用户准备信息文件,该用户信息文件必须按照/etc/passwd定义的字段含义和次序来创建。同时,每个用户账号的名称及用户ID都不能相同,而口令字段可以先使用空白,或使用x代替以增加安全性。假设新增用户的信息存放在/root/account.txt文件中,其内容见下图。account.txt用户信息文件
  • 272. 5.3 管理用户账号 5.3.4 批量建立用户账号2.使用newusers工具批量创建用户 在/usr/sbin/目录下的newusers工具主要的功能就是利用用户信息文件来更新或创建用户账号。在Linux系统中,提供了输入重定向符<和<<来将account.txt文件作为newusers工具的输入。newusers工具使用很简单,系统会根据用户信息文件中的数据来新建用户账号,如下图所示。 [root@myhost root]# newusers < /root/account.txt利用newusers工具创建用户
  • 273. 5.3 管理用户账号 5.3.4 批量建立用户账号3.取消影子口令机制 在Linux系统的/usr/sbin目录下,提供的pwunconv程序能够将/etc/shadow产生的影子口令译码,然后回写到/etc/passwd文件中,同时也将/etc/shadow文件中的口令字段删除,以取消影子口令机制。该命令的执行及执行后/etc/passwd文件和/etc/shadow文件的变化如下图所示。 [root@myhost root]# pwunconv取消影子口令机制
  • 274. 5.3 管理用户账号 5.3.4 批量建立用户账号4.创建密码文件 按照account.txt文件的账号创建对应的口令表文件,该文件仅需两个字段,第一个字段是account.txt文件中的用户名,第二个字段是明文口令,以“:”分隔。这里以新增的/root/password.txt文件为例,其内容如下图所示。 密码文件password.txt
  • 275. 5.3 管理用户账号 5.3.4 批量建立用户账号5.使用chpasswd工具设置用户口令 在创建对应的密码表文件后,需要使用工具chpasswd程序将密码文件中的口令导入/etc/passwd文件。该工具通过利用管道符,使得密码表文件/root/password.txt作为输入,其用法如下图所示。 [root@myhost root]# chpasswd < /root/password.txt向/etc/passwd文件导入口令
  • 276. 5.3 管理用户账号 5.3.4 批量建立用户账号该工具执行成功是没有任何信息,此时再次查看/etc/passwd文件时,发现其中的口令已经被更改。这说明对应的密码表文件中的口令已经被导入了。为了确保系统口令的安全性,接着应该恢复系统的影子口令机制。 6.重设影子口令机制 在成功地将用户口令写入/etc/passwd文件之后,就应该启用系统的影子口令机制,以增强系统的安全性能。在这一步骤可以使用/usr/sbin/pwconv工具,将密码进行MD5加密后,写入/etc/shadow文件中。在执行/usr/sbin/pwconv程序后,原来出现在/etc/passwd文件中的密码会使用“x”记号取代。该命令执行的过程见下图。 [root@myhost root]# pwconv
  • 277. 5.3 管理用户账号 5.3.4 批量建立用户账号完成第六步后,就可以利用新建的账户登录系统了。使用上述的方法在向系统新增大量用户的时候是非常有效的。如果能够配合shell脚本使用上面的工具,就可以大大降低管理员在批量创建用户时的工作负担,同时也能防止由于管理员的过失而导致的错误,增进系统的日常维护能力。重设影子口令
  • 278. 5.4 管理用户组 5.4.1理解组账号信息文件/etc/group在Linux中通常将已有的用户账号归属于某个组,这样在进行账号管理时,就可以组为基本单位,然后再授予组对某些资源的存取权限,此后,该组中的所有成员都可以拥有对该资源同样的存取权限,管理员也可以节省日常维护的时间。 5.4.1理解组账号信息文件/etc/group 在RedHat Linux 9中,所有的组账号信息被放置在/etc/group文件中,和/etc/passwd文件类似,/etc/group文件的每一行都代表一个组,并且每个字段使用“:”进行分隔,各字段的含义如下表所示。
  • 279. 5.4 管理用户组 5.4.1理解组账号信息文件/etc/group字 段说 明1组账号名称2组账号口令,通常不使用,并以“x”填充3组ID(GID),系统内置的组,其GID在500以内,管理员建立的组从500开始,依次是500、501…4属于该组的用户列表,每个用户使用“,”区隔/etc/group中包含的字段和用户影子口令机制类似,/etc/group文件也包含了一个对应的/etc/gshadow文件,用来提升其口令的安全性。如果系统中启用了/etc/gshadow文件,那么直接利用/etc/group文件创建组账号的方法就会失败,因而必须使用稍后介绍的专用工具。
  • 280. 5.4 管理用户组 5.4.2 使用命令行方式管理组5.4.2 使用命令行方式管理组 1. groupadd命令 该命令用于向系统新增一个组,新增的组账号在默认的情况下最小从500开始。通常的情况下,其命令格式如下: groupadd [选项] [组名] groupadd工具无需使用参数,但在某些特殊情况下,需要使用如下表所示的参数。参 数含 义-g 指定组GID号-r添加一个系统组,即GID小于499的组groupadd命令的参数及含义
  • 281. 5.4 管理用户组 5.4.2 使用命令行方式管理组例5.7 向系统新增一个系统组testg组,其GID为480。具体操作如下,完成后用使用tail命令查看详细情况,过程如下图所示。 [root@myhost root]# groupadd –g 480 testg新增testg组2. groupmod命令 管理员有时候可能需要更改组账号的内容,此时可以使用groupmod命令。其命令格式如下:
  • 282. 5.4 管理用户组 5.4.2 使用命令行方式管理组groupmod [选项] [组名] 常用参数和含义如下表所示。groupmod命令的参数及含义参 数含 义-g 重新指定组GID号-o重复使用组GID号-n 重设组账号名称例5.8 将testg组更名为troot,其GID变更为0,具体操作如下,操作完成后使用more命令查看结果,如下图所示。 [root@myhost root]# groupmod –g 0 –o –n troot testg
  • 283. 5.4 管理用户组 5.4.2 使用命令行方式管理组groupmod命令示例3. groupdel命令 在向系统创建用户账号的时候,系统会自动创建与该账号同名的组,但是在删除该用户账号的时候,系统并不会自动删除该组,因此需要系统管理员手动删除该组账号。groupdel命令提供了删除特定组账号的工具,该命令无需任何参数。其使用格式如下: groupdel <组账号>
  • 284. 5.4管理用户组 5.4.2使用命令行方式管理组了解了Linux中组账号信息的管理机制后,就可以使用Linux提供的组管理工具来进行Linux组账号的管理了。 1.groupadd命令 该命令用于向系统新增一个组,新增的组账号在默认的情况下从500开始。其命令格式如下: groupadd [参数] [组名] 2.groupmod命令 管理员有时可能需要更改组账号的内容,此时可以使用groupmod命令,其格式如下: groupmod [参数] [组名] 3.groupdel命令 在创建用户账号的同时,系统会自动创建与该账号同名的组,但是在删除该用户账号时,系统并不会自动删除该组,因此需要系统管理员手动删除该组账号。可以使用groupdel命令删除特定组账号,该命令无须任何参数,其格式如下: groupdel <组账号>
  • 285. Linux操作系统实用教程 第五章 完
  • 286. Linux操作系统实用教程第6章 Red Hat Linux 9的shell程序 6.1 shell简介 6.2 创建和执行shell程序 6.3 shell环境变量及设置文件 6.4 shell脚本编程 6.5 shell程序跟踪
  • 287. 第6章 Red Hat Linux 9的shell程序本章概述 Shell的原意是外壳,用来形容物体外部架构。各种操作系统都有自己的shell,在DOS系统中,它的shell就是command.com程序,而Windows操作系统的程序shell是explorer.exe程序。与Windows等操作系统不同,Linux系统中将shell独立于操作系统核心程序之外,使得用户可以在不影响操作系统本身的情况下进行修改,更新版本或添加新的功能。
  • 288. 6.1 shell的简介 6.1.1 shell及shell编程操作系统的shell程序,介于用户和操作系统内核(Kernel)之间,负责将用户的命令解释成操作系统可以接受的指令,然后由操作系统来执行这些指令,并将操作系统执行的结果以用户可以了解的方式反馈给用户。 6.1.1 shell及shell编程 在Linux系统中,shell是操作系统的外壳,为用户提供使用操作系统的接口,它是命令语言、命令解释程序和程序设计语言的统称。 shell是用户和操作系统之间的一个接口。用户在命令提示符下输入的每个命令都首先由shell程序进行解释,然后再传给Linux内核的。
  • 289. 6.1 shell的简介 6.1.1 shell及shell编程shell是一个命令解释器。它拥有自己内建的shell命令集,可以用它来启动、挂起、停止一些程序。此外shell也能被系统中的其他有效的Linux应用程序所调用。 shell还是一个解释型的程序设计语言。shell程序设计语言支持绝大多数高级程序设计语言中常用的元素,比如函数、变量、数组和控制结构。shell编程简单易学,在任何命令提示符中能键入的命令都可以在shell程序中使用。而且一旦掌握,它将成为工作中的得力工具。 和DOS和Windows不同,Linux提供了多种shell程序供用户选择使用,使用不同类型shell的原因是它们都有各自的特点。一般某个用户登录系统时的shell都在/etc/passwd
  • 290. 6.1 shell的简介 6.1.1 shell及shell编程文件的最后一个字段中定义,用户可以通过修改该字段来替换其使用的shell。 另外,用户在文本模式下登录系统后,Linux的初始化程序initd就会为每个用户启动一个shell,可以使用“Alt+F1~F6”来获取shell提供的多个虚拟控制台,使用虚拟控制台的最大好处就是,当一个虚拟控制台上的程序由于出错给锁住输入时,用户可以进入另一个虚拟控制台,然后杀死该进程。如果系统使用了X Window的图形模式,那么虚拟终端的切换就要使用“Ctrl+Alt+F1~F6”。
  • 291. 6.1 shell的简介 6.1.2 bash6.1.2 bash 在Linux中,用户可以选择使用多种不同类型的shell。在RedHat Linux 9的/etc/shells文件中,列出了目前系统可以使用的shell。并且给出了这些shell程序的位置。具体如下图所示。RedHat Linux 9中的shell
  • 292. 6.1 shell的简介 6.1.2 bash最常用的几种shell是Bourne shell(sh)、C shell(csh)、Ash shell(ash)、Korn shell(ksh)和Bourne Again shell(bash)等。每种shell都有自己的特点,一般的Linux系统默认使用bash。 1.bash简介 Bourne shell是最早被大量使用及标准化的shell,几乎所有的Linux都支持它。它是由贝尔实验室开发的,由于开发者是Steven Bourne,所以被命名为“Bourne shell”。Bourne Again shell(bash)是Bourne shell的扩展,与Bourne shell完全兼容,并且在其基础上增加和增强了很多功能。其中包括了很多csh和ksh的优点。bash不仅有非常灵活和强大的编程接口,同时又有非常友好的用户界面。它内建40个shell命令和12个命令行参数。目前bash
  • 293. 6.1 shell的简介 6.1.2 bash是大多数Linux默认的shell,RedHat Linux 9也默认使用bash。 bash有许多特色,可以使用方向键查阅以前输入的命令,即history功能。可以对命令行进行编辑,甚至可以在忘记了命令名时请求shell通过命令行补齐进行帮助,方法就是在敲入命令的一部分时,再按下Tab键即可。例如,在命令行提示符下输入ls,再按下“Tab”键,bash会帮助用户列出所有以“ls”打头的命令名,供用户选择。如图下所示。bash的命令行补齐
  • 294. 6.1 shell的简介 6.1.2 bashbash也内建了帮助功能,可以给出所有内建命令和每个系统命令的帮助信息。可以使用“help <命令名>”的方法获得指定命令的帮助信息。 在RedHat Linux 9中环境表变量SHELL记录了系统当前使用的shell程序的名称,可以通过返回环境变量SHELL的值来查看当前系统使用的shell程序,如图下所示。查看系统当前的shell
  • 295. 6.1 shell的简介 6.1.2 bash2.bash的功能 shell是操作系统的外壳。RedHat Linux 9中默认使用的shell是bash,它为用户提供使用操作系统的接口,承担着用户与操作系统内核之间进行沟通的任务。除此之外,bash程序还兼备如下的功能: 1)交互式处理 从用户登录系统开始,shell程序就是在系统终端中显示不同的命令行提示符(root用户登录系统则提示符显示“#”,普通用户登录则显示“$”),然后等待用户输入命令。在接收来自用户输入的命令后,bash会根据命令的 不同的类型(包括程序或shell内置命令)来执行,在执行完 毕后,bash将结果回传给用户,并且再次回到命令提示符,以等待用户的下一次输入。这种模式会一直继续下去,直
  • 296. 6.1 shell的简介 6.1.2 bash到用户执行exit或是按下Ctrl+D来注销,bash才会结束,bash的这种与用户沟通的方式称为“交互式处理”。 2)命令补全功能 所谓“命令补全”是指在用户输入命令的时候,无需输入完整的命令行,Linux系统的shell会自动查找出最符合的命令名 称,供用户选择。这样的功能可以帮用户节省输入长串命令的 时间。例如,在/root目录下有一个testexecvp.c文件,如果想查看其中的内容,并不需要完整输入该文件的名称,而只要输入开头的几个字母,即输入“more /root/teste”,然后按下Tab键一次,Linux的bash会自动补足完整的命令(more /root/testexecvp.c)。
  • 297. 6.1 shell的简介 6.1.2 bash另一种情况就是,如果系统中有多个文件都与输入的前缀相同,那么当用户连续按下2次Tab键时,系统会显示当前目录下所有具有相同前缀的文件名称,供用户选择。例如,输入“more test”后按2次Tab键,结果如图下所示。bash的补齐功能
  • 298. 6.1 shell的简介 6.1.2 bashshell的补全功能,不但方便,而且可以避免由于用户输入错误的路径而执行错误的程序。 3)查阅历史记录—history命令 在RedHat Linux 9中,每当用户输入的命令并按下Enter后,都会被记录在命令记录表中,默认情况下,bash默认使用的命令记录表文件为用户主目录下的.bash_history(文件名前面的“.”表示这是一个隐藏文件)文件。可以使用环境变量HISTSIZE来定义命令记录表的条数,默认的记录条数为1000条。
  • 299. 6.1 shell的简介 6.1.2 bash在RedHat Linux 9中可以直接浏览.bash_history文件,或使用history命令来查看目前的命令记录。如下图所示。 bash的补齐功能
  • 300. 6.1 shell的简介 6.1.2 bash系统提供的history命令可以列出完整的系统在该用户登录时执行过的所有命令,并以命令执行的先后顺序列出记录的号码。如果要查看最近执行的命令,则可以使用“history n”命令,其中,n表示需要查看的最近执行的命令的条数。如下图所示,列出系统最近执行的10条命令。 查看最近的10条命令记录
  • 301. 6.1 shell的简介 6.1.2 bashbash的history功能提供了一种执行命令的最快的方法,就是使用命令记录号码。在RedHat Linux 9的命令记录中,每条用户执行过的命令都会被赋一个记录号码,用户可以利用这些记录号码来执行指定的要执行的旧命令。其语法如下: !<记录号> 例如,要执行478条记录标记的命令,可以在命令行提示符下执行如下: [root@myhost root]# !478 结果如右图所示。使用!执行命令
  • 302. 6.1 shell的简介 6.1.2 bash4)别名(alias)功能 Linux中的别名功能是指提供给用户使用自定义的简单字符串,来替换复杂的命令选项,或是替换连续多个命令的连续组合的功能,从而使得用户可以自定义符合自己习惯的操作命令。 例如,对于熟悉DOS和Windows的用户来说,dir命令可以方便地显示当前目录的内容,但是在Linux中完成该功能的命令是“ls –l”。如果希望使用dir来代替ls –l,则可以使用alias功能来创建一个到ls –l的别名,如下图所示。bash的alias功能
  • 303. 6.1 shell的简介 6.1.2 bash如果希望查看当前Linux系统中使用的别名命令,可以直接输入“alias”命令。如果需要取消特定的别名命令,可以使用unalias命令。例如,取消dir别名命令可使用如下命令。 [root@myhost root]# unalias dir 使用alias命令查看并取消别名命令的结果如下图所示。查看并取消别名命令
  • 304. 6.1 shell的简介 6.1.2 bash5)后台处理 Linux是多用户多任务的操作系统,它允许多个用户同时登录系统,也允许多个程序同时执行。但因为shell使用交互式模式,目前执行的命令会一直掌握系统的控制权,直到该程序结束为止,这类程序称为前台程序(Foreground)。shell采用的这种前台程序接管系统控制权的模式,使得个别用户无法使用Linux提供的多任务功能来增加效率,因此,shell提供了后台处理功能来解决上述问题。
  • 305. 6.1 shell的简介 6.1.2 bash通常,Linux后台运行的都是比较耗时的程序,如编译核心或是下载Linux的安装文件等,但是后台任务在执行期间,用户仍然可以和shell继续交互,以下达其他的命令。要在RedHat Linux 9中要执行后台程序,只要在输入命令的时候,在命令后面加上“&”符号。系统就会开始以后台的方式执行该命令,屏幕将显示该后台运行程序的进程PID,然后shell将回到命令提示符状态,以等待用户的下一个命令的输入。例如,将top命令投入后台运行。如下图所示。后台运行top
  • 306. 6.1 shell的简介 6.1.2 bash当前某个任务在前台运行之后,就无法使用“&”将它投入后台运行,但是可以先使用“Ctrl+z”组合键暂停该程序,然后在命令提示符下输入“bg”命令,即可将该任务投入后台执行。 如果要查看目前系统中正在运行的后台程序,可以使用jobs命令。 6)输入/输出重定向 在Linux系统中,标准输入和输出有3种形态: 标准输入(stdin):通常是指键盘。 标准输出(stdout):通常是指将命令执行的结果输出到终端机或屏幕上。 标准错误输出(stderr):是指在命令发生错误时,将其错误信息输出到屏幕上。
  • 307. 6.1 shell的简介 6.1.2 bash一般情况下,程序的输入对象都是标准输入,输出是标准输出。在Linux中提供了输入(<和<<)和输出(>和>>)的重新定向功能,它可以将程序的输入和输出由标准设备重定向到文件、打印机或其他装置(/dev/null)。 这里重定向(>和<)是改写重定向,就是会删除原来的文件,而重定向(>>和<<)是追加重定向,就是新的内容将被添加到文件原来内容的后面。 例如,先使用ls命令查看/etc/pam目录的内容,然后将查看结果重定向到ls_result.txt文件中。其命令和执行结果如图所示。
  • 308. 6.1 shell的简介 6.1.2 bash然后使用输入重定向查看ls_result.txt文件,可在命令提示符中输入如下命令: [root@myhost root]# cat < ls_result.txt 7)管道 管道功能可以将多个命令集成到一起,以执行一个较为复杂的工作,除了第一个和最后一个命令之外,每个命令的输入都是前一个命令的输出,而每个命令的输出也将成为下一个命令的输入。例如: [root@myhost root]# ls –l /usr/bin | grep lib |less 以上的命令执行的过程是先列出/usr/bin目录的所有内容,然后通过管道(|)将ls命令的结果传给grep命令,当成其标准输入,接着grep会由此输入中查找含有lib的字符串文件,最后将搜索的结果再通过管道传给less命令。
  • 309. 6.1 shell的简介 6.1.2 bash3.bash中的特殊字符 在Linux下有一些符号会被shell特殊对待,这些符号可以用来指定特殊的范围或功能,除了前面介绍的外,例如>、>>、<、<<、|和!,还有以下可以在shell中使用的特殊字符。 1)通配符(*和?) “*”和“?”是Linux系统中最常用的两个通配符,在字符串查找的时候,通配符可以代替任意的字符。其中“?”可以代替一个任意字符,“*”可以代替任意多个字符。 例如,执行“ls –l /root/test*”命令就会列出/root目录下所有以test打头的所有文件名,如下图所示。
  • 310. 6.1 shell的简介 6.1.2 bash2)命令取代符(`) 命令取代符“`”在Esc键下方,与“~”符号在同一个键上。两个“`”符号包围的命令,是该命令行中首先被执行的命令。例如,“echo `date`”命令,首先执行date命令,然后使用echo来显示date命令的结果,而不是显示字符串date,如下图所示。命令取代符“`”的使用
  • 311. 6.1 shell的简介 6.1.2 bash3)命令分隔符(;) 如果需要执行一连串的命令,可以一次输入这些命令,而在命令间使用“;”分隔,Linux的shell会一次解释并执行这些命令。 例如,在Linux的终端中,从/root目录下先执行cd /etc命令,然后再执行more passwd命令来查看/etc/passwd文件的内容,其过程如下图所示。 [root@myhost root]# cd /etc ; more passwd命令分隔符“;”的使用
  • 312. 6.1 shell的简介 6.1.2 bash4)注释符(#) 注释符“#”通常使用在Linux的shell脚本程序或应用程序的配置文件中,使用“#”开头的行为注释行,shell在解释该脚本程序的时候不会执行该行。对于有经验的程序员来说,注释行的使用可以增加程序的可读性,也可以使日后的维护更加简单。
  • 313. 6.2创建和执行shell程序 随着Linux图形界面的日益完善,依靠GNOME或KDE提供的图形界面已经能够完成大部分基本的应用。但是图形界面的功能是有限的,只能完成一些可以预见的功能。例如,如果需要大批量地创建系统用户,使用图形界面是非常耗时的。此时就可以选择使用shell脚本程序。Linux的shell程序是一个非常有用且很容易掌握的工具,可以帮助用户轻松地完成繁重的任务,提高使用和维护系统的效率。另外,Linux的图形界面也是通过shell脚本解释启动的,很多应用程序本身就是一个shell程序。
  • 314. 6.2创建和执行shell程序 shell程序与C语言等高级语言程序不同,shell程序是通过shell命令解释器解释执行的,不生成二进制的可执行代码,这一点和DOS下的批处理文件类似。不同的shell解释器对应的shell程序的语法也不完全相同。由于bash是Linux下默认提供的shell解释器,并且bash也是使用最广泛、与其他shell兼容性最好的解释器,因此下面介绍的shell程序的知识都是基于bash解释器的。 创建和执行一个shell程序非常简单,一般需要以下3个步骤: (1)利用文本编辑器创建脚本内容。 (2)使用“chmod”命令设置脚本的可执行属性。 (3)执行脚本。
  • 315. 6.2创建和执行shell程序 一个合法的shell脚本程序,都是以如下图所示的shell解释器声明开始的,即在shell程序的第一行。其中“#!”后面的“/bin/bash”,表示实际使用的解释器。例如,以perl作为shell解释器,则可以该声明可以是“/usr/bin/perl”。shell解释器声明注意:与其他行不同,这里前面虽然以“#”开头,但不是注释行。
  • 316. 6.2创建和执行shell程序 在5.3.4节中,我们介绍了使用Linux的命令批量建立用户账号的方法,下面以此应用为例介绍如何创建和执行shell脚本程序。 1.创建shell程序 在RedHat Linux 9的命令提示符下使用gedit addusers.sh或vi addusers.sh,创建文本文件addusers.sh.,在系统打开的文本编辑窗口中输入如下的语句(其中行首编号除外)。输入完毕后保存退出。 1 #!/bin/bash 2 if [ -f $1 ] ; then 3 if [ -f $2 ] ; then 4 /usr/sbin/newusers < $1 5 /usr/sbin/pwunconv 6 /usr/sbin/chpasswd < $2 7 /usr/sbin/pwconv
  • 317. 6.2创建和执行shell程序 8 echo "the users add successfully!!" 9 else 10 echo "the password file does not exist!" 11 exit 2 12 fi 13 else 14 echo "the username file does not exist!" 15 exit 1 16 fi 第一行表示这是一个shell脚本文件,其内容由/bin/sh程序来解释执行。第二行到第八行表示当该shell程序执行时,如果从命令行中接受的两个文件存在,就执行添加用户的步骤,并给出“the users add successfully!!”提示。否则给出文件不存在的提示。
  • 318. 6.2创建和执行shell程序 2.设置addusers.sh文件的可执行属性 addusers.sh文件编辑完毕并保存后,在命令提示符下执行如下命令,设置其可执行的属性(假设addusers.sh文件保存在/root目录下)。 [root@myhost root]# chmod a+x addusers.sh 3.执行addusers.sh脚本 shell脚本的执行方法也很简单,只需要在命令提示符下输入如下命令即可: [root@myhost root]# ./ addusers.sh account.txt password.txt 其中account.txt是用户账号文件,password.txt是用户口令文件。
  • 319. 6.3 shell环境变量及设置文件 6.3.1 shell的环境变量在Linux的shell中使用的变量分为以下环境变量、内部变量和用户变量3类。环境变量是Linux系统环境的一部分,通常不需要用户去定义。shell使用环境变量来存储系统信息,这些变量可以提供给在shell中执行的程序使用,不同的shell会有不同的环境变量及其设置的方法。内部变量是由系统提供的,用户不能修改它们。用户变量是用户在编写shell脚本的时候定义的,可以在shell脚本中任意使用和修改。 提示:如果希望一个用户定义的变量能够在定义它的shell脚本以外使用,就必须使用export命令。例如,“export var”命令就是将用户定义的变量var添加到系统变量列表中,这样就可以在定义var变量脚本以外的地方使用。
  • 320. 6.3 shell环境变量及设置文件 6.3.1 shell的环境变量在Linux的bash中可以使用set命令来查看系统当前的环境变量及其取值。如下图所示。查看Linux的环境变量说明:由于Linux的环境变量很多,这里利用管道符和tail命令与set命令结合只显示系统环境变量的最后10个。
  • 321. 6.3 shell环境变量及设置文件 6.3.1 shell的环境变量若要查看当前某个环境变量的值,可以使用echo命令,并在环境变量的前面加上“$”即可。例如,查看当前的命令主提示符,可以输入如下命令: [root@myhost root]# echo $PS1 结果如下图所示。查看环境变量PS1命令主提示符是Linux的shell程序为用户输入命令而设置的提示符。环境变量PS1的值就是命令主提示符,默认为“[\u@\h \W]\$”,其中“[”、“]”和“@”原样显示;
  • 322. 6.3 shell环境变量及设置文件 6.3.1 shell的环境变量“\u”相应位置显示当前登录的用户账号;“\h”表示相应位置显示主机名;“\W”相应位置当前工作目录;“\$”表示如果当前登录账号是超级用户就显示“#”,如果是普通用户就显示“$”。例如,当超级用户登录myhost主机时,命令提示符显示为“[root@myhost root]#”。 环境变量PATH记录了命令执行时的默认的搜索路径,即当用户在命令提示符后输入命令时,Linux系统会按照PATH设置的路径搜索该命令,然后再执行该命令。PATH变量的值由多个路径组成,各路径之间使用“:”隔开。
  • 323. 6.3 shell环境变量及设置文件 6.3.2 shell配置文件6.3.2 shell配置文件 用户可以通过set命令来查看和设置常用的环境变量,但是在系统启动的时候,Linux并不是通过set命令来设置这些变量的,而是通过读取相应的shell配置文件来获取环境变量的值的。在Linux的bash中其配置文件有全局的配置文件,也有用户个人的配置文件,shell在检查这些文件的时候,遵循如下的顺序:/etc/profile→~/.bash_profile→~/.bashrc→/etc/bashrc。其中/etc/profile和/etc/bashrc文件中包含了全局环境变量的设置,~/.bash_profile和~/.bashrc文件中包含了个人环境变量的设置。
  • 324. 6.4 shell脚本编程 6.4.1 shell变量shell脚本程序,简称shell脚本或shell程序,是使用系统提供的命令编写的文本文件,该文件具有可执行的属性,能够帮助系统管理员自动管理系统。在Linux的发行版本中就包含了很多的shell程序,这些脚本有的是为了完成系统参数的设置,例如前面介绍的/etc/profile等文件;有的是为了完成某项系统服务的启动工作,例如/etc/rc.d/init.d目录下的所有脚本。 6.4.1 shell变量 shell程序语法和其他高级语言程序类似,包括变量、控制结构和函数等。
  • 325. 6.4 shell脚本编程 6.4.1 shell变量1.变量类型与使用 bash脚本是一种弱类型的脚本语言。所谓弱类型脚本语言,就是在bash脚本中,对类型的要求不严格,同一个变量可以随着使用场合的不同,存储不同类型的数据。弱类型语言变量使用灵活,但是编程者需要注意对变量当前存储的数据类型的检查。 1)变量的声明 在bash中,变量的使用不需要显式的声明,或者说赋值就可以认为是变量的声明。通常,给一个变量赋值应采用如下的格式: 变量名=值 注意:等号两边不能存在分隔符(包括空格,制表位和回车符)。
  • 326. 6.4 shell脚本编程 6.4.1 shell变量例如: a1="hello" b1=90 2)变量的引用 通常,要引用一个变量,可以采取在变量名前加一个$的方法,即“$变量名”或者是${变量名}。 例如,要引用上面定义的变量a1可以采用如下的方法: echo "a1 is $a1" 但是,有时候这种方法会产生混淆。例如,希望使用变量a1来输入“hello Linux”字符串。如果使用echo “$a1Linux”就会得不到期待的字符。这是因为bash把“a1Linux”作为一个变量来处理了。 echo ${a1} "Linux"
  • 327. 6.4 shell脚本编程 6.4.1 shell变量${变量var:-value}:如果指定的变量var存在,则返回var的值,否则返回value。 ${变量var:=value}:如果指定的变量var存在,则返回var的值,否则先将value赋给var,然后再返回value。 ${变量var:+value}:如果指定的变量var存在,则返回value,否则返回空值。 ${变量var:?value}:如果指定的变量var存在,则返回该var的值,否则将错误提示消息value送到标准错误输出并退出shell程序。 ${变量var:offset[:length]}:offset和length是整数,中括号表示可选部分。表示返回从变量var的第offset+1个字符开始长度为length的子串。如果中括号部分省略,则表示返回变量var第offset+1个字符后面的子串。
  • 328. 6.4 shell脚本编程 6.4.1 shell变量例6-1 演示bash中变量的使用。如图下所示。各行的说明如下:bash变量的使用[root@myhost root]# var="hello" 定义变量var,并被赋值为“hello”
  • 329. 6.4 shell脚本编程 6.4.1 shell变量[root@myhost root]# echo $var ${title:-"marry"}! hello marry! 变量title在前面都没有被赋值,所以${title:-"marry"}返回“marry”。 [root@myhost root]# echo $var ${title:+"tom"}! hello ! 变量title仍然没有被赋值,即不存在,所以${title:+"tom"}返回空值。 [root@myhost root]# echo $var ${title:?"title is null or empty"}! bash: title: title is null or empty 变量title仍然没有被赋值,即不存在,所以${title:?"title is null or empty"}返回了错误信息,即“bash: title: title is null or empty”。
  • 330. 6.4 shell脚本编程 6.4.1 shell变量[root@myhost root]# echo $var ${title:="tom and marry"}! hello tom and marry! 到此为止变量title仍然没有被定义,所以title被赋值为“tom and marry”,并返回该值。 [root@myhost root]# echo $var ${title:+"somebody"}! hello somebody! 此时变量title已经存在,故返回“somebody”。 [root@myhost root]# echo $var ${title:8:5}! hello marry! 此处变量title已经存在,且值为tom and marry,取其第9个字符,即“m”开始后面5个字符,也就是“marry”。
  • 331. 6.4 shell脚本编程 6.4.1 shell变量3)特殊变量 在shell程序中存在一些特殊变量,当shell程序运行时,这些变量能够记录shell程序的命令行参数。这些变量分别是$0、$1、…$n,以及$#、$*和$@。其中$0存放的是脚本本身的名字,$1存放的是命令行中传递给命令的第一个参数,依次类推,$n存放的是传递给命令的第n个参数。$#存放传递给命令的参数的个数(不包括命令),$*和$@均用于存放传递给命令的所有参数, 2. shell表达式 和高级程序语言一样,shell程序的表达式由运算符和参加运算的操作数构成。操作数通常可以是变量、常量。
  • 332. 6.4 shell脚本编程 6.4.1 shell变量1)shell的运算符 shell的运算符的使用规则都与C语言非常类似。 2)shell表达式 利用运算符将变量或常量连接起来就构成了表达式。但是由于在bash中变量和常量没有特定的数据类型,在bash中单纯使用一个表达式作为命令或语句是错误的,而必须使用expr或let命令来指明表达式是一个运算式。expr命令会先求出表达式的值,然后送到标准输出显示。let命令会先求出表达式的值,然后赋值给一个变量,而不显示在标准输出上。expr和let命令的使用方法如下: expr <表达式> 也可以使用var=`expr<表达式>` let <表达式1> [表达式2 ...]
  • 333. 6.4 shell脚本编程 6.4.1 shell变量expr 3 “*” 2 或者expr 3 \* 2 或者 expr 3 ‘*’ 2 使用双引号将操作符*括起或者使用\,此时bash返回乘积6。 let s=(2+3)*4 s结果为5*4=20。 3.条件判断 在编写程序的时候,经常需要根据某个条件的测试进行程序执行分支的选择。这里的条件可能是某个表达式的值、文件的存取权限、某段代码的执行结果,或者是多个条件结果按照逻辑运算后的值。条件测试的结果只有真或假2种。需要注意的是,这里“真”的数值表示为0,“假”的数值表示为非0
  • 334. 6.4 shell脚本编程 6.4.1 shell变量在bash中条件测试的使用方法是,利用test命令或一对中括号[]包含条件测试表达式,这两种方法是等价的。它们的格式如下: test cond_expr 或 [ cond_expr ] 注意:利用一对中括号时,左右的中括号与表达式之间都必须存在空格。 cond_expr是需要测试的条件表达式,可以是以下几种情况: (1)文件存取属性测试:包括文件类型,文件的访问权限等。 (2)字符串属性测试,包括字符串长度,内容等。 (3)整数关系测试,包括大小比较,相等判断等。 (4)上述3种关系通过逻辑运算(与、或、非)的组合。
  • 335. 6.4 shell脚本编程 6.4.1 shell变量例6-2 练习使用文件测试命令。利用shell提供的文件测试命令,测试文件的属性,如下图所示。文件属性测试首先使用test命令测试test.sh是否存在其可写,从ls –l命令返回的结果看,确实是test.sh文件存在且可写的,所以“echo $?”命令返回0表示真。然后又使用中括号测试
  • 336. 6.4 shell脚本编程 6.4.1 shell变量tdir是不是目录以及是否可写,从ls –l命令的返回来看,tdir同样是目录且可写的,所以返回真。其中“$?”表示引用变量“?”,而变量“?”是一个特殊变量,可以返回紧邻的前驱命令的返回值。 例6-3练习使用字符串测试命令利用shell提供的字符串测试命令,字符串测试,如下图所示。字符串测试
  • 337. 6.4 shell脚本编程 6.4.1 shell变量例中首先定义了root_home变量,值为/root,变量tom_home,值为/home/tom,然后测试这两个字符串变量的值是否相等,结果为1表示不相等。 例6-4练习使用数值关系测试命令。数值关系测试,如下图所示。数值关系测试
  • 338. 6.4 shell脚本编程 6.4.2 shell控制结构首先定义变量var1,值为200,变量var2,值为300,接着测试var1的值是否等于var2的值。返回值为1,表示这两个变量不等。然后又测试var1是否小于var2,返回值为0,表示var1的值小于var2。 6.4.2 shell控制结构 shell程序的控制结构是用于改变shell程序执行流程的结构。在shell程序的执行过程中可以根据某个条件的测试值,来选择程序执行的路径。在shell程序中,控制结构可以简单地分为分支和循环结构2类。bash支持的分支结构有if结构和case结构,支持的循环结构有for结构、while结构和until结构。它们的使用方法与C语言等高级程序设计语言中相应的结构类似。
  • 339. 6.4 shell脚本编程 6.4.2 shell控制结构1.if分支结构 if结构是最常用的分支结构,其格式如下: if 条件测试1 ; then command_list_1 [elif 条件测试2 ; then command_list_2 ] [else command_list_3 ] fi
  • 340. 6.4 shell脚本编程 6.4.2 shell控制结构其中,中括号部分为可选部分。当“条件测试1”为真时,执行command_list_1,否则如果存在elif语句,则测试“条件测试2”,如果为真,执行command_list_2。如果elif语句不存在或“条件测试2为假,则执行command_list_3。条件测试部分一般可以是test或[]修饰的条件表达式。 例6-5 根据用户输入的目录名称判断该目录是否存在,如果存在则进入该目录,否则测试同名文件是否存在,如果存在,则退出shell程序,否则新建同名目录,并进入该目录。 #!/bin/bash #an example script of if clear echo "input a directory name, please!"
  • 341. 6.4 shell脚本编程 6.4.2 shell控制结构read dir_name #测试$dir_name目录是否存在 if [ –d $dir_name ] ; then cd $dir_name > /dev/null 2>$1 echo "$dir_name has already existed,enter directory succeed" #测试是否存在与$dir_name同名的文件 elif [ -f $dir_name ] ; then echo "file: $dir_name has already existed,create directory failed" exit
  • 342. 6.4 shell脚本编程 6.4.2 shell控制结构else mkdir $dir_name > /dev/null 2>$1 cd $dir_name echo "$dir_name has not existed,create and enter directory succeed" fi 在该例中,“cd $dir_name > /dev/null 2>$1”表示cd命令可能产生的标准输出信息和标准错误输出信息重定向的到一个空设备/dev/null,从而实现隐藏cd命令错误输出的功能。“mkdir $dir_name > /dev/null 2>$1”命令行的作用类似。由于Linux不允许在同一目录下存在同名的文件和目录,所有如果$dir_name不存在时,还要测试是否有同名的文件存在,然后才能新建该目录。
  • 343. 6.4 shell脚本编程 6.4.2 shell控制结构注意:then命令可以和if结构写在同一行,但是如果then命令和if结构在同一行时,then命令的前面一定要有一个分号,且分号与条件测试表达式之间用空格隔开。 2.case分支结构 if结构用于存在两种分支选择的情况下,当程序存在多个分支的选择时,如果使用if结构,就必须使用多个elif结构,从而使得程序的结构冗余,此时可以选在使用case结构。case结构可以帮助程序灵活地完成多路分支的选择,而且程序结构直观、简洁。case分支结构的格式如下: case expr 模式1 )
  • 344. 6.4 shell脚本编程 6.4.2 shell控制结构command_list_1 ;; [ 模式2 ) command_list_2 ;; …… * ) command_list_n ;; ] esac 其中,expr可以是变量、表达式或shell命令等,模式为expr的取值。通常一个模式可以是expr的多种取值,使用或(|)连接。模式中还可以使用通配符,星号(*)表示匹
  • 345. 6.4 shell脚本编程 6.4.2 shell控制结构配任意字符值,问号(?)表示匹配任意一个字符,[..]可以匹配某个范围内的字符。 在case分支结构中,首先计算expr的值,然后根据求得的值查找匹配的模式,接着执行对应模式后面的命令序列,执行完成后,退出case结构。需要注意的是,在case结构的命令序列后面需要使用双分号(;;)分隔下一个模式。 例6-5 使用case语句编写程序,根据上网地址的不同为计算机设置不同的IP地址参数。 #!/bin/bash #an example script of case clear echo "please enter current location(home,h,H,office,o,O):"
  • 346. 6.4 shell脚本编程 6.4.2 shell控制结构read nettype case $nettype in home|h|H ) /sbin/ifconfig eth0 192.168.0.118 netmask 255.255.255.0 /sbin/route add default gw 192.168.0.1 ;; office|o|O) /sbin/ifconfig eth0 192.168.1.58 netmask 255.255.255.0 /sbin/route add default gw 192.168.1.1 ;;
  • 347. 6.4 shell脚本编程 6.4.2 shell控制结构 *) echo "input error!" exit ;; esac echo “Success!!!” 本例程中,如果用户输入home、h或H则表示上网地点是在家中,此时IP地址为192.168.0.118,网络掩码为255.255.255.0,默认网关为192.168.0.1。如果用户输入office、o或O则表示上网地点是在办公室内,此时IP地址为192.168.1.118,网络掩码为255.255.255.0 ,默认网关为192.168.1.1。其他的输入无效,并给出提示“input error!”。其中ifconig和route命令在后面的章节中将详细介绍。
  • 348. 6.4 shell脚本编程 6.4.2 shell控制结构3.for循环结构 for循环用于预先知道循环执行次数的程序段中,它是最常用的循环结构之一。for的格式如下: for var [ in value_list ] do command_list done 其中,value_list是变量var需要取到的值,随着循环的执行,变量var需要依次从value_list中的第一个值,取到最后一个值。do和done结构之间的command_list是循环需要执行的命令序列,变量var每取一个值都会循环执行一次command_list中的命令。同样中括号部分为可选部分,如果省略了该部分,bash会从命令行参数中为var取值,即等同于“in $@”。
  • 349. 6.4 shell脚本编程 6.4.2 shell控制结构例6-6 使用for语句编写程序,向系统添加10个用户,其名称分别是student1、student2、…student10。 #!/bin/bash # an example script of for for i in [ 1 – 10 ] do if [ -d /home/student$i ] ; then echo "the directory /home/student$i exist." echo "the content of directory /home/student$i is moved to /home/stu$i" mv student$i stu$i
  • 350. 6.4 shell脚本编程 6.4.2 shell控制结构 fi adduser student$i > /dev/null 2>$1 echo "student$i" |passwd usr$i$j --stdin echo "user add succeed,the home directory is: /home/student$i" done 由于在Linux中adduser命令会在/home目录下创建与用户同名的子目录作为用户的主目录,所以,该例程首先检查/home目录下是否存在与student1、student2、...student10同名的子目录,如果存在则将其重命名为stu1、stu2、…stu10,然后在执行创建用户的任务,并且用户的初始口令与用户名相同。
  • 351. 6.4 shell脚本编程 6.4.2 shell控制结构4.while和until循环结构 while和until循环结构的功能基本相同,主要用于循环次数不确定的场合。while的格式如下: while expr do command_list done until的格式如下: until expr do command_list done
  • 352. 6.4 shell脚本编程 6.4.2 shell控制结构从格式上看,二者的使用方法完全相同,但是二者对循环体执行的条件恰恰相反。在while循环中,只有expr的值为真时,才执行do和done之间的循环体,直到expr取值为假时退出循环。而在until循环中,只有expr的值为假时,才执行do和done之间的循环体,直到expr取值为真时退出循环。 从上面的while和until循环的执行流程可以看出,expr的取值直接决定command_list的执行与否以及能否正常退出循环,因此通常在命令序列command_list中都存在修改expr取值的命令。否则while和until就无法退出command_list的执行循环,从而陷入死循环。通常,同一个问题如果可以使用while循环,就可以使用until循环。 例6-7 while和until循环结构示例。
  • 353. 6.4 shell脚本编程 6.4.2 shell控制结构上面两段程序都是完成对循环变量loop加1的任务,两段程序的输出结果完全相同。对比两个程序可以发现,只有循环条件的设置不同。while循环示例until循环示例#!/bin/bash #an example script of while clear loop=0#!/bin/bash #an example script of until clear loop=0while [ $loop –le 10 ]until[ $loop –gt 10 ]do let loop=$loop+1 echo "the loop current value is: $loop" donedo let loop=$loop+1 echo "the loop current value is: $loop" done
  • 354. 6.4 shell脚本编程 6.4.3 shell函数6.4.3 shell函数 和其他的高级程序设计语言一样,在bash中也可以定义使用函数。函数是一个语句块,它能够完成独立的功能,而且在需要的时候可以被多次使用。利用函数,shell程序将具有相同功能代码块提取出来,实现程序代码的模块化。在程序需要修改的时候,只需要修改被调用的函数,减少了程序调试和维护的强度。 在bash中,函数需要先定义后使用。函数定义的格式如下: [function] fun_name ( ) { command_list }
  • 355. 6.4 shell脚本编程 6.4.3 shell函数其中,function表示下面定义的是一个shell函数,可以省略。fun_name就是定义的函数名。command_list就是实现函数功能的命令序列,称为函数体。函数一旦定义就可以被多次调用,而且函数调用的方法与shell命令的方法完全一致。函数调用的格式如下: fun_name [param_1 param_2 … param_n] 其中,fun_name是被调用的函数名,param_1、param_2、…param_n是调用时传递给函数的参数,各参数之间使用空格隔开。函数调用时是否需要传递参数,由函数的定义和功能决定。如果函数确实需要传递参数,此时可以使用$0、$1、…$n,以及$#、$*和$@这些特殊变量。其中$0存放的是命令行的命令名(也就是执行的shell脚本名),$1存放的是命令行中传递给命令的第一个参数,依次类推,
  • 356. 6.4 shell脚本编程 6.4.3 shell函数$n存放的是传递给命令的第n个参数。$#为传递给命令的参数的个数(不包括命令),$*和$@均用于存放传递给命令的所有参数,两者的区别在于$*把所用的参数作为一个整体,而$@则把所有的参数看作是类似于字符串数组一样,可以单独访问这些参数。 例6-8 向bash函数传递参数的示例。在bash脚本中定义函数,然后在该脚本时通过命令行传递参数。 #!/bin/bash #an example script of function #fun1函数定义 function fun1 ( ) { echo "Your command is:$0 $*"
  • 357. 6.4 shell脚本编程 6.4.3 shell函数 echo "Number of parameters ( \$# ) is: $#" echo "Script file name ( \$0 ) is: $0" echo "Parameters ( \$* ) is: $*" echo "Parameters ( \$* ) is: $*" count = 1 for param in $@ do echo "Parameters ( \$$count ) is: $param" let count=$count+1 } clear fun1 $@
  • 358. 6.4 shell脚本编程 6.4.3 shell函数本例通过命令行参数$0向函数fun1传递执行的命令名,通过$*给函数fun1传递所有的命令行参数;通过$#给函数fun1传递命令行参数的个数;通过$@来访问命令行中的每个参数。 如果该例程保存为demo.sh,可以采用如下的命令行方式运行: ./demo.sh hello red hat linux 此时,$0存放“./demo”,$*和$@都存放“hello red hat linux”,$#参数为4。 函数的返回值用来给函数的调用者带回特定的变量值,shell
  • 359. 6.4 shell脚本编程 6.4.3 shell函数程序中的函数也可以有返回值,使用return命令可以从函数返回值。一般函数正常结束时返回真,即0,否则返回假,即非0值。return使用的格式如下: return [expr] expr存在,0表示程序正常结束,非0值表示程序出错。如果expr省略,则以函数的最后一条命令的执行状态作为返回值。另外,测试函数的返回值的方法可以使用和shell命令的返回值相同的方法,即使用测试$?值,也可以采用直接测试命令函数的返回值。
  • 360. 6.5 shell程序跟踪 和高级语言开发程序一样,在编写shell程序的开发过程中,出错是在所难免的,因此shell程序的调试就变得至关重要了。下面给出在6.2节中编写的addusers.sh脚本为例,给出在shell程序调试中的技巧。 在RedHat Linux 9的命令提示符下输入如下的命令开启sh程序的跟踪模式,这样sh程序在解释执行addusers.sh脚本的时候,启用单步执行的方式,如图右所示。 图中给出了adduser.sh脚本每步运行的结果,可以很好的判断程序执行的情况。sh跟踪模式
  • 361. Linux操作系统实用教程 第六章 完
  • 362. Linux操作系统实用教程第7章 Linux网络配置 7.1 网络配置基础 7.2 使用命令工具配置网络参数 7.3 使用文件配置网络 7.4 使用图形工具管理网络 7.5 使用ADSL连接Internet
  • 363. 第7章 Linux网络配置 本章概述 TCP/IP协议是Internet网络的标准协议,采用TCP/IP协议的主机连接到Internet上,就能实现与同在网络上的其他主机进行数据交换。通常把计算机中连接到网络上的设备称为网络接口设备。计算机连接到网络上,需要配置其网络接口信息,包括计算机的IP地址、子网掩码、默认网关,域名解析服务器地址等。本章将介绍在Red Hat Linux 9如何使用不同的方法给联网的计算机配置这些接口信息,以便用户在不同的环境下选择使用。
  • 364. 7.1 网络配置基础 7.1.1 TCP/IP协议Internet是一个基于TCP/IP协议簇的国际互联网络。而TCP/IP协议是以UNIX系统作为基础平台开发的,因而UNIX内核中默认支持TCP/IP协议簇。作为典型的类UNIX系统,Linux系统同样在其内核中支持并默认使用TCP/IP协议。 7.1.1 TCP/IP协议 TCP/IP协议主要分为两个部分:传输控制协议(TCP)和网际互联协议(IP)。 1.网际互联协议(IP) 连接在以太网的用户希望自己的主机能够突破局域网的限制连接到其他网络,在不用考虑其他网络硬件类型以及各部分组成的情况下就能够使用这些资源。比如某个大学中的网络,就需要
  • 365. 7.1 网络配置基础 7.1.1 TCP/IP协议簇将各系局域网连接起来。这种网络之间的连接是通过网关主机来实现的,它通过在连接的网络间进行数据的复制来处理输入和输出数据。这种数据的处理方式称为路由(routing),它是通过一个独立于硬件的协议——IP协议来控制的。IP协议主要功能是使主机可以把分组发往任何网络并使分组独立地传向目标。因此IP协议可以将物理上不相似的网络连接起来,构成一个同构的网络。 为了能在不同硬件类型和数据分组网络中,实现数据的转发,IP需要一种独立于硬件的寻址方式。这种寻址方式是基于IP地址的,在Internet上的每台主机都被设置了一个32位的IP地址。为了方便记忆,IP地址通常被写成点分十进制的结构,即将32位的二进制数利用句点(.)分成4个部分,然后每个部分转换成一个十进制数,例如:192.168.0.45。
  • 366. 7.1 网络配置基础 7.1.1 TCP/IP协议簇2.传输控制协议(TCP) 如果用户登录到一台指定的网络主机上,希望登录进程,比如telnet进程,能与该主机的shell建立稳定的连接。这样来回传递的信息必须在发送端分解成多个分组(这是因为在IP协议中,规定了一个数据分组最大的字节数),然后由接收方重新将这些分组组装成字符流。此时,只有IP协议显然是不能完成网络数据通信的。 另外IP协议并不是可靠的协议,当路由器的缓冲区已经满负载时,此时接收到的数据分组就会被丢弃。这样,被丢弃的分组是不能恢复的。因此,需要负责通信的主机对数据传输进行完整性和正确性进行检验,在发生错误后进行数据重发。传输控制协议TCP,可以负责上述的任务,它是在IP协议之上建立可靠的连接服务。TCP协议主要功能就是在本地主机和远程主机
  • 367. 7.1 网络配置基础 7.1.1 TCP/IP协议簇的两个进程之间建立一个简单的连接关系,这样,用户就不必担心数据是如何传输以及通过什么线路传输的。TCP通过两个主机的IP地址以及两个主机的端口来识别连接的端点,端口号用于标记用户需要使用的应用服务。TCP在两个端点之间建立的连接是可靠的连接,它能够在网络出现错误的时候,通知对应的主机重发该分组。 3.用户数据报协议(UDP) 用户数据包协议UDP也是工作在IP协议的基础之上的,用于在数据传输量较大,且对传输的可靠性要求不高的时候替代TCP协议。与TCP协议一样,UDP协议允许一个应用程序与远程主机的一个端口相关联。UDP并不为数据的传输创建一个连接,而是直接向目标发送单个的数据报。 因为UDP才传输数据的过程中,并不对数据报的丢失和冲突进程检验,所以使用UDP协议进行数据传输的应用程序必须自行检查接收到的数据的完整性和正确性。
  • 368. 7.1 网络配置基础 7.1.2 网络配置基本概念7.1.2 网络配置基本概念 在了解了TCP/IP的基础知识后,就可以进行TCP/IP网络信息配置工作了,下面先介绍与网络信息配置工作相关的几个基本概念。 1.IP地址 在Internet中,每台连接在网络上的主机都有唯一的IP地址。IP地址是一个点分十进制的结构,即将32位的二进制数利用句点(.)分成4个部分,然后每个部分转换成一个十进制数。IP地址能够唯一表示一台Internet网络上的主机。例如192.168.0.1.IP地址是由“.”分开的4段十进制数,每个数占用8位二进制位,故它可以表示的范围是0~255,即IP地址每段数字的取值是0~255范围内的任意数。
  • 369. 7.1 网络配置基础 7.1.2 网络配置基本概念IP地址由两部分组成:网络号net_id与主机号host_id,所以IP地址不仅仅表示一个主机的编号,而是指出了连接在某个网络上的某台主机,它是由因特网名字与号码指派公司ICANN进行分配的。根据网络号的不同可以将Internet网络的IP地址分为五类,即A类到E类,其中D类作为组播地址保留,E类保留今后使用。下面详细介绍A类、B类和C类。 A类网络地址:IP地址的第1个字节表示网络号net_id,其中第一位为0,后面的3个字节表示主机号host_id。A类网络共能容纳的主机数为224-2=16 777 214台。 B类网络地址:IP地址的前面2个字节表示网络号net_id,其中第1、2位为10,后面的2个字节表示主机号host_id。B类网络共能容纳的主机数为216-2=65534台。
  • 370. 7.1 网络配置基础 7.1.2 网络配置基本概念C类网络地址:IP地址的前面3个字节表示网络号net_id,其中第1、2和3位为110,最后1个字节表示主机号host_id。C类网络共能容纳的主机数为28-2=254台。 如下表所示,不同类型IP地址中的网络地址net_id和主机地址host_id。IP地址网络类型网络地址net_id主机地址host_id60.45.12.40A类6045.12.40130.50.10.15B类130.5010.15212.78.42.212C类212.78.42212IP地址中的net_id和host_id
  • 371. 7.1 网络配置基础 7.1.2 网络配置基本概念由于Internet的飞速发展,IP地址已经变得非常紧张,可获取的IP地址越来越少。现在,Internet网技术人员已经开发出新的IP地址的构成方法,这种IP地址就是IPv6。IPv6采用128位存储方式,即全世界的IP地址由原来的232个,扩展成2128个。这样就可以满足Internet发展的要求。 2.子网和子网掩码 由于同一个IP地址可能代表不同网络中的主机,如果不能确定它所属的子网,就会导致无法访问该主机。那么如何确定一个IP地址所属的网络呢?这时就需要用到TCP/IP协议簇中一个重要的概念——子网掩码。 子网掩码也是一组由“.”分隔的4段数字组成,它可以用于定义一个IP地址所属的网络,说明IP地址中哪些部分表示网络地址,哪部分表示主机地址。具体办法就是,首先,将IP地址和子网
  • 372. 7.1 网络配置基础 7.1.2 网络配置基本概念掩码转换成二进制数,然后用转换后的二进制数进行按位“与”运算,得到的结果就是该IP地址所属的网络地址,那么IP地址中剩下的部分就是主机地址。 通常定义标准A、B、C类IP地址的子网掩码分别为: A类子网掩码:255.0.0.0 B类子网掩码:255.255.0.0 C类子网掩码:255.255.255.0 例7.1设有 IP地址为210.45.211.12的主机,其子网掩码为255.255.255.0,求出其网络号和主机号。
  • 373. 7.1 网络配置基础 7.1.2 网络配置基本概念将IP地址210.45.211.12和子网掩码255.255.255.0转换成二进制数: 210.45.211.12=011010010.000101101.011010011.00001100 255.255.255.0=11111111.11111111.11111111.00000000 进行按位“与”运算的结果为:011010010.000101101.011010011.00000000,因此210.45.211.0就是IP地址为210.45.211.12主机所在的网络地址,其主机地址为0.0.0.12。 3.广播地址 广播地址使用中特殊的地址,如果使用广播地址作为数据发送的目的地址,那么该数据将被发往广播地址所在网络内的所有主机。
  • 374. 7.1 网络配置基础 7.1.2 网络配置基本概念通常在一个子网中广播地址是唯一的,就是将IP地址中主机地址部分替换成255后的地址。例如,上述IP地址210.45.211.12所在网络的广播地址就是210.45.211.255。 在一个特定的网络内,广播地址是保留的,因此不能用于网络中的主机名。因此,有了网络地址和广播地址后,一个特定类型的网络中,可用于标志主机的IP地址就减少了两个,例如,C类地址主机地址占8位,其能够容纳的主机数为28-2=254台,C类能容纳的主机数为216-2=65 534台。 4.端口 端口可以看作是网络连接的附着点。如果一个应用程序希望提供某种服务,就会附着在某个特定的网络端口上等待用户请求的到来(也称为对端口的监听)。使用该服务的客户机则在某个
  • 375. 7.1 网络配置基础 7.1.2 网络配置基本概念端口上建立与该远程主机的连接,客户机的端口通常是随机选择且端口号大于1024。 在网络中,一旦客户机和服务器之间建立连接,就必须生成服务器的另一个拷贝来为客户机提供服务,原拷贝则继续监听,以等待更多用户的请求。这样,提供网络应用的服务器就允许多个用户登录,并且这些连接都使用服务器同一个端口。TCP可以根据连接的IP地址和端口来区分不同的连接。假如用户两次从infosec主机登录myhost主机,那么第一个telnet客户机使用本地的1025端口,第二个客户机则使用本地的1026端口,但是它们都连接服务器myhost的23端口。 从上例可以知道,可以把渡口作为一个集结点,客户端通过连接这些特殊的端口获取特定的网络服务。为了使客户端知道这些
  • 376. 7.1 网络配置基础 7.1.2 网络配置基本概念特定的端口,服务的提供方和使用方必须达成一致,对端口的分配必须统一集中管理,在Linux系统中,通过/etc/services文件进行服务名到端口号的映射。 通常,端口号在0~1023之间的网络端口由系统统一分配,用户无权重新分配这些端口,端口号大于1023的端口允许用户使用。客户机通常随机生成一个大于1023的端口去连接服务器的特定端口。 需要注意的是,TCP和UDP连接都依赖于端口,但这些端口不会相互冲突。因为同一端口在TCP和UDP连接中的服务是不同的。例如TCP的513端口关联的是rlogin服务,而UDP的513端口关联的是rwho服务。
  • 377. 7.1 网络配置基础 7.1.2 网络配置基本概念5.域名 在Internet上使用主机的IP地址来定位和标识主机,尽管为了方便记忆这些IP地址,采用了4段点分十进制的数字来表示,但是要记住这些枯燥的数字,还是非常枯燥的。为了解决这个问题,提出了网络域名的概念。Internet域名是Internet网络上的一个服务器或一个网络系统的名字,在全世界,域名都是唯一的。通俗的说,域名就相当于每台服务器或主机的别名。 域名是一个层次结构的名称,由若干个引文字母和数字组成,由“.”分隔成几部分,一般的域名格式为: 主机名称.三级域名.二级域名.顶级域名
  • 378. 7.1 网络配置基础 7.1.2 网络配置基本概念例如,域名infosec.aust.edu.cn表示安徽理工大学信息安全教研室的一个域名。infosec反映的是信息安全教研室的一台服务器,aust是安徽理工大学的域名,edu是教育部域名,cn是顶级域名,代表中国。 顶级域名一般分为两类:组织性顶级域名(见表1)和地理性顶级域名(见表2)。组织性顶级域名用于指明网站的属性,而地理性顶级域名用于指明网站的地址上属于哪个国家或地区。
  • 379. 7.1 网络配置基础 7.1.2 网络配置基本概念域名缩写机构类型域名缩写机构类型com商业系统firm商业或公司edu教育系统store提供购买商业的业务部门gov政府机关web主要活动与www有关的实体mil军队系统arts以文化为主的实体net网管部门rec以消遣性娱乐活动为主的实体org非盈利性组织inf提供信息服务的实体表1 组织性顶级域名
  • 380. 7.1 网络配置基础 7.1.2 网络配置基本概念表2 地理性顶级域名域名缩写国家或地区域名缩写国家或地区cn中国ca加拿大au澳大利亚es西班牙de德国hk中国香港fr法国tw中国台湾jp日本sg新加坡uk英国us美国
  • 381. 7.1 网络配置基础 7.1.2 网络配置基本概念当以域名方式访问某台远程主机时,域名系统首先将域名翻译成对应的IP地址(执行域名与IP地址相互转换的网络服务器,被称为域名服务器),然后使用得到的IP地址作为网络通信地址。因此在网上访问主机时,可以使用域名作为登录地址,也可以使用其IP地址作为登录地址,二者的效果一致。 需要注意的是,域名与IP地址并不是一一对应的,既有多个域名对应一个IP地址的,也有多个IP地址对应一个域名的情况存在。 6.路由 由于从物理拓扑来说Internet是一个典型的网状网络,也就是说从一个网络节点(通常是网络主机)到达另一个节点的路径不止一条,那么网络上传输的数据分组是如何选择到达目的主机的路径呢?通常这是靠网络中的特殊主机来完成的,这些特殊
  • 382. 7.1 网络配置基础 7.1.2 网络配置基本概念主机被称为路由器。路由器负责将到来的数据分组根据其中的路由算法选择一条最有效的路径投递出去。路由器中可选择的一个网络节点到达另一节点的路径,就称为路由。通常,路由器中都设置一个路由表用于缓存系统的路由信息。 由于一个公司或单位的内部网络只通过一个路由器与外部网络建立连接,这个连接外部网络的路由器通常被称为默认网关。当公司内部网络上的主机与外部网络进行连接时,就将数据分组发给默认网关,由该网关负责数据分组的路由选择。
  • 383. 7.1 网络配置基础 7.1.3 常用的网络命令7.1.3 常用的网络命令 为了方便的管理网络,查看当前的网络连接信息,Linux系统提供了网络测试命令和远程登录命令。 1.网络测试命令 为了便于Linux用户判断当前网络的连接情况,Linux系统提供了ping、traceroute和netstat等网络测试命令。 1) ping命令 ping命令用于测试当前系统的网络是否连通。该命令能够不间断地向目标主机发送ICMP协议的数据包,目标主机接收到数据包后返回应答。用户可以在屏幕上看到 数据包返回的信息,并根据这些信息判断网络的连通状态。该命令的格式如下: ping [选项] 目标主机名或IP地址
  • 384. 7.1 网络配置基础 7.1.3 常用的网络命令常用的参数及含义如下表所示。参 数含 义-c packet_count指定ping命令发送数据包的个数-i interval指定每个数据包发送的时间间隔-f快速发送指定数量的数据包,然后查看统计结果-l packet_count快速发送指定个数内的数据包-s b_count设定数据包的大小,默认为64字节-t ttl_time设置存活数值TTL的大小-R记录数据包的路由信息ping命令常用参数
  • 385. 7.1 网络配置基础 7.1.3 常用的网络命令例7.1 使用ping命令向安徽理工大学网站(域名为www.aust.edu.cn)发送5个数据包,检查网络连通状态。 在终端命令提示符下输入如下的命令,其执行结果如下图所示。 [root@myhost root]# ping –c 5 www.aust.edu.cnping命令的使用
  • 386. 7.1 网络配置基础 7.1.3 常用的网络命令注意:如果不使用-c参数指定发送的数据包的个数,ping命令会不间断地发送数据包,直到用户使用Ctrl+C结束发送,然后给出统计信息。 2) traceroute命令 该命令向目的主机发送数据包,每经过一个网关或路由就返回一行信息,内容包括网络或路由的主机名或IP地址、每次经过该网关或路由的时间(单位为ms)。系统默认的数据包长度为38字节,最大跳数(Hop)为30次。该命令格式如下: traceroute [选项] 目的主机名或IP地址 常用的参数及含义如表所示。
  • 387. 7.1 网络配置基础 7.1.3 常用的网络命令例7.2 使用traceroute命令测试到目的主机www.aust.edu.cn的路由。参 数含 义-f first_ttl设置第一个检测数据包的存活时间TTL - g gateway_ip设置数据包经过的网关,最多可设置8个-m max_ttl设置检测数据包的最大存活时间TTL -n ip_addr直接使用目的主机的IP地址-p port指定UDP协议使用的端口-w timeout设置等待远端主机回应的时间-x开启数据包的正确性检验traceroute命令常用参数
  • 388. 7.1 网络配置基础 7.1.3 常用的网络命令在终端命令提示符下输入如下命令,执行结果如下图所示。 [root@myhost root]# traceroute www.aust.edu.cntraceroute的使用3)netstat命令 netstat命令用于查看网络连接、路由表信息和网络接口的状态信息,其格式如下:
  • 389. 7.1 网络配置基础 7.1.3 常用的网络命令nestat [选项] 常用参数及含义如表所示。参 数含 义-a显示所有套接口,包括正在监听的-c每个1秒刷新一次结果,直到用户终止-i显示所有网络接口信息-l显示处于监听状态的套接口信息-n显示结果直接使用IP地址,而不使用域名-t显示TCP协议的连接状况-u显示UDP协议的连接状况-w显示RAW协议的连接状况-r显示当前核心路由表的信息-v显示命令执行过程netstat命令常用参数
  • 390. 7.1 网络配置基础 7.1.3 常用的网络命令例7.3 使用netstat命令查看本机的网络连接状态。 在终端命令符下输入如下的命令,其执行结果如下图所示。 [root@myhost root]# netstatnetstat查看网络连接
  • 391. 7.1 网络配置基础 7.1.3 常用的网络命令说明:netstat的输出结果可以分为两个部分,一部分显示有源TCP连接(Active Internet connections)的情况,一般有4行,另一部分显示有源UNIX域套接口(Active UNIX domain sockets)的连接情况。Proto显示连接使用的协议;RefCnt表示连接到本套接口上的进程号;Types显示套接口的类型;State显示套接口当前的状态;I-Node表示连接的i索引结点号;Path表示连接到套接口的其他进程使用的路径名。
  • 392. 7.1 网络配置基础 7.1.3 常用的网络命令例7.4 使用netstat命令来查看当前路由表的详细信息。 在终端提示符下输入如下的命令,其执行结果如图所示。 [root@myhost root]# netstat -nrnetstat查看网络连接
  • 393. 7.1 网络配置基础 7.1.3 常用的网络命令2.远程登录工具 Linux系统为了方便用户在远程管理和使用系统,为用户准备了远程登录工具,其中最常用的就是telnet工具。telnet命令是远程登录命令,该命令允许用户使用telnet协议登录到远程计算机,在用户提供了合法的用户账号和登录口令后,就可以像操作本地计算机一样操作远程主机。telnet工具只提供Linux终端的仿真,不支持X Window等图形环境。该命令格式如下: telnet 远程主机名或IP地址
  • 394. 7.1 网络配置基础 7.1.3 常用的网络命令如果该命令执行成功,将从远程主机上获得“login:”提示符,如图所示。用户在“login:”提示下输入登录账号,按Enter键后在系统给出的“password:”提示符下输入登录口令后即可登录远程主机。telnet的使用在Linux系统除了提供telnet远程登录工具外,还提供了xlogin、ssh等远程登录工具,有兴趣的读者可以自行查阅资料。
  • 395. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数在Linux系统中,可以使用3种不同的方法来配置网络接口:使用命令工具配置网络参数、直接修改网络配置文件和使用图形工具配置网络参数的办法。本节将介绍在命令模式下使用ifconfig工具和route工具配置网络接口参数和使用netconfig工具配置网络接口参数的方法。 7.2.1使用命令工具配置网络参数 在终端命令模式下,可以首先使用ifconfig工具配置网络接口中的IP地址、网络掩码、广播地址等信息,然后再使用route工具配置网络的默认网关信息。 1.ifconfig工具的使用 该工具既可以用于查看网络接口的信息,也可以用于配置网络的TCP/IP参数,还可以用于启动和停用指定的网络接口。
  • 396. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数 1) 查看网络接口信息 ifconfig命令格式如下: ifconfig [网络接口设备名] 其中网络接口设备名为可选参数,如果没有指定网络接口,ifconfig将返回系统所有的网络设备的TCP/IP参数,包括回环网络接口的信息,否则返回指定的接口参数。在终端命令提示符中输入如下命令,可以查看网络接口eth0的TCP/IP参数信息,如下图所示。 [root@myhost root]# ifconfig eth0
  • 397. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数从图中可看到IP地址为192.168.0.128,网络掩码为255.255.255.0,广播地址为192.168.0.255。查看eth0的TCP/IP信息
  • 398. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数2) 配置网络信息 ifconfig工具可以配置系统中指定的网络接口的TCP/IP参数信息,其格式如下: ifconfig 网络接口设备名 IP地址 [netmask 网络掩码] [broadcast 广播地址] 其中netmask部分和broadcast部分可以任选其一,因为从网络掩码和广播地址可以互相推算。上述命令可以用指定的IP地址和网络掩码来配置命令中指定的网络接口。 例7.5 使用ifconfig工具,给当前主机的eth0网络接口配置网络参数,其网络IP地址为192.168.0.138,子网掩码为255.255.255.0。
  • 399. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数在终端命令提示符中输入如下命令,命令执行结果如下图所示。 [root@myhost root]# ifconfig eth0 192.168.0.138 netmask 255.255.255.0配置eth0的TCP/IP信息此处使用了ifconfig eth0命令来查看网络接口eth0的TCP/IP参数,也可以使用前面介绍的ping命令来查看该接口是否连通,以确定网络参数是否设置成功。具体如下图所示。
  • 400. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数说明:ping命令返回“64 bytes from 192.168.0.138: icmp_seq=1 ttl=64 time=0.152 ms”表示ifconfig工具的网络参数设置成功。配置eth0网络参数并使用ping检查
  • 401. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数3) 网络接口的启用和禁用 当网络接口的配置更改以后往往需要重启网络接口,以应用新的配置。使用ifconfig工具可以完成启用和禁用指定的网络接口的工作,具体方法如下: ifconfig 网络接口设备名 [up|down] 其中参数up表示启用指定的网络接口,参数down表示禁用指定的网络接口。 此外还可以使用network命令和ifup/ifdown命令来完成网络接口的启用和禁用。 其中,network是一个shell脚本程序,用于启用、禁用或重启所有网络接口,其格式如下: /etc/rc.d/init.d/network [选项]
  • 402. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数常用的参数及含义如右表所示。 ifup和ifdown命令分别用启用和禁用指定的网络接口,其格式如下: ifup 网络接口设备名 ifdown 网络接口设备名 例如,在终端命令提示符中使用如下命令禁用eth0,然后使用ifconfig eth0来查看该网络设备的状态。如右图所示。 [root@myhost root]# ifdown eth0参 数含 义start启动所有网络接口stop禁用所有网络接口restart重启网络network脚本参数禁用网络设备eth0
  • 403. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数2.route工具的使用 使用ifconfig工具配置了网络接口的IP地址、网络掩码等参数后,该主机就可以在局域网络内和其他主机通信了,但是还不能访问外网的主机。此时需要使用route工具配置网络的路由记录或默认网关。 route工具可以用于查看当前的路由信息,也可以设置网络的默认路由信息。 1) 查看路由信息 route命令在不带任何信息时,系统将返回当前路由表的信息,如图所示。
  • 404. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数route返回理由信息系统返回的路由信息包括8个字段,各字段含义如下表所示。
  • 405. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数network命令参数字 段说 明Destination目标地址,可以是网络地址或主机地址Gateway与目标连接时通过的网关地址,*表示没有设置网关Genmask目的网络的网络掩码Flags路由标记,U表示路由可用,G表示连接目标是一个网关,H表示连接目标是一个主机Metric从源网络到达目标网络连接时经过的跳数Ref连接路由的参考数据Use查找该路由的次数Iface连接该路由的网络接口,其中lo表示本地回环设备
  • 406. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数2) 添加/删除路由记录 使用route命令添加或删除一条到达目标网络的路由记录,其格式如下: route add|del -net 网络地址 netmask 网络掩码 [gw 网关地址] [dev 网络接口] 其中参数add表示向路由表中添加一条路由信息,del表示删除路由表中的一条路由信息。gw参数和dev参数任选其一。gw参数用于指定网关地址,dev参数用于指定到达目标地址时数据分组投递的网络接口。 使用router命令添加或删除一条到达目标主机的路由记录,其格式如下:
  • 407. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数route add|del -host IP地址 [gw 网关地址] [dev 网络接口] 在该命令中无需网络掩码,其中add参数、del参数、gw参数和dev参数含义同上。 3) 添加/ 删除默认网关 默认网关通常是一个公司或单位内部网络与外部网络通信的唯一通路,当公司内部网络上的主机与外部网络进行连接时,就将数据分组发给默认网关,由该网关负责数据分组的路由选择。可以使用route命令来添加或删除网络中的默认网关,其格式如下: route add|del default gw 网关地址
  • 408. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数其中add参数、del参数、gw参数和dev参数含义同上。 例7.6 使用route命令,给当前主机添加默认网关。其中,当前主机的默认网关地址为192.168.0.1。 在终端命令提示符下输入如下命令,为当前主机添加默认网关: [root@myhost root]# route add default gw 192.168.0.1 再输入route命令查看当前路由信息,如下图所示。添加默认网关
  • 409. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数由route命令返回的最后一行可以看到默认网关添加成功。 尽管ifconfig和route工具非常有效,但是它们的命令效果只能维持在命令执行到网络重启或系统重启的时限内,如果希望系统重启后ifconfig和route工具配置的参数仍然有效,可有以下的两个办法实现: (1)修改网络接口的配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0文件)中的指定内容。这种方法可以同时解决网络重启和系统重启后网络配置失效的问题。这种方法将在下面的小节中给予介绍。 (2)将相应的ifconfig和route配置命令,分别按行写入/etc/rc.d/rc.local文件。这种方法可以解决系统重启后ifconfig和route命令失效的问题,但是不能解决网络重启后ifconfig和route命令失效的问题。
  • 410. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数/etc/rc.d/rc.local文件是一个具有可执行属性的shell脚本文件,如下图所示。它在RedHat Linux 9系统启动时执行。通常,rc.local文件中的每一行都是一条命令,用于在系统启动时运行一个需要随系统一起运行的程序,类似于MS Windows的随机启动。rc.local文件
  • 411. 7.2 在终端中配置网络参数 7.2.1使用命令工具配置网络参数图中文件属性区域的首行“#!/bin/sh”则表示该文件是一个shell脚本文件。如图在该文件末尾添加两行就可以实现设置网络参数的命令ifconfig和route随系统启动后自动执行,从而保证系统重启后原先使用ifconfig和route命令设置的网络参数仍然有效。如果,我们希望其他的程序随系统启动一起自动运行,可以采取类似的办法。
  • 412. 7.2 在终端中配置网络参数 7.2.2 使用netconfig配置网络参数7.2.2 使用netconfig配置网络参数 在终端的命令提示符下输入命令netconfig,出现如图7-13所示的Network configuration配置界面,询问用户是否需要配置网络信息。网络配置确认
  • 413. 7.2 在终端中配置网络参数 7.2.2 使用netconfig配置网络参数用户可以使用Tab键移动光标,在“Yes”和“No”按钮间选择。这里将光标移动到“Yes”按钮后,按下空格键表示确认选择,进入如右图所示的TCP/IP配置界面。这里允许用户选择是使用本网络的DHCP服务器提供的动态地址分配服务来动态的获取TCP/IP配置信息,还是使用手工设置TCP/IP信息。手工设置的TCP/IP信息包括IP地址、网络掩码、默认网关和主域名服务器等信息。TCP/IP配置界面
  • 414. 7.2 在终端中配置网络参数 7.2.2 使用netconfig配置网络参数将光标定位到“Use dynmic IP configuration(BOOTP/DHC)”,按下空格键,使其前面的方括号中标上“*”,表示选择使用DHCP服务来动态获取TCP/IP配置信息。 或取消上面的选择,并将光标定位到“IP address”处,输入IP地址“192.168.0.128”;将光标定位到“Net mask”处,输入网络掩码“255.255.255.0”;将光标定位到“Default gateway”处,输入默认网关“192.168.0.1”;将光标定位到“Primary nameserver”处,输入域名解析服务器地址“210.45.144.18”,如右图所示。使用Tab键将光标定位到“OK”按钮上,然后使用空格键确认,完成TCP/IP网络接口信息配置。TCP/IP配置信息
  • 415. 7.3 使用文件配置网络 7.3.1 网络接口配置文件在上节中介绍使用netconfig工具配置网络参数的方法。实际上,使用netconfig配置的网络参数最终都被写入了相应的网络配置文件中,这些文件包括/etc/sysconfig/network-scripts/ifcfg-eth0文件、/etc/sysconfig/network文件、/etc/hosts文件和/etc/resolv.conf文件等。在RedHat Linux 9中允许用户通过直接修改这些网络配置文件的办法来修改自己主机的网络接口参数。 7.3.1 网络接口配置文件 在RedHat Linux 9中用于记录网络接口配置信息的文件有两个,一个是/etc/sysconfig/network文件,其中包含了网络的主机名和默认网关信息。另一个是/etc/sysconfig/network-scripts/ifcfg-eth0文件,其中包含了主机获取TCP/IP参数的方式、主机的IP地址等信息。
  • 416. 7.3 使用文件配置网络 7.3.1 网络接口配置文件1.network文件 该文件中存放的网络默认网关参数和主机名是网络接口配置中的重要信息,当Linux系统重启或网络被重置时将从该文件中读取当前主机的主机名和默认使用的网关。如下图所示即为使用cat命令查看的network文件。其基本语法如下: 变量名 = 参数值network文件
  • 417. 7.3 使用文件配置网络 7.3.1 网络接口配置文件network文件中的常用变量的含义如表7-9所示。由于主机名通常在Linux系统安装时已经确定,因此,此处只要修改默认网关的地址即可。当然用户也可以通过修改其中的HOSTNAME变量的值来修改主机名。network文件中的变量变 量含 义NETWORKING当前网络是否启用HOSTNAME当前主机的主机名GATEWAY当前网络的默认网关
  • 418. 7.3 使用文件配置网络 7.3.1 网络接口配置文件2.ifcfg-ethN文件 在RedHat Linux系统中,系统以太网的网络设备的配置文件ifcfg-ethN保存在/etc/sysconfig/network-scripts/目录中,Linux系统启动时从中读取信息来初始化网络接口。其中该文件用于ifcfg-eth0保存当前主机的第一块网卡的配置信息,如果当前主机有多块网络接口卡,那么该目录还会包含ifcfg-eth1、ifcfg-eth2等文件,分别表示主机的第二个网络接口、第三个网络接口。此外,/etc/sysconfig/network-scripts/目录下还包括ifcfg-lo文件,其中设置了回环网络接口的网络配置信息。
  • 419. 7.3 使用文件配置网络 7.3.1 网络接口配置文件所谓回环网络接口,是一种特殊的网络接口,该接口是在内核中实现的抽象接口,通过lo接口发送的数据并不会被投递到物理网络上,而只是在操作系统内核中传递,通常该接口用于测试网络TCP/IP协议安装是否正确。在网络地址指派公司ICANN分配IP地址的时候,将127开头的地址都留作了回环网的测试地址。另外,回环网的默认主机名为localhost,所以在Linux的命令提示符下输入如下两个命令中的一个,可以测试当前系统中TCP/IP协议是否正常。 [root@myhost root]# ping -c 5 127.0.0.1 [root@myhost root]# ping -c 5 localhost
  • 420. 7.3 使用文件配置网络 7.3.1 网络接口配置文件测试网络协议如果命令能够得到类似于如下图所示的返回信息,则表示当前系统的网络协议正常。
  • 421. 7.3 使用文件配置网络 7.3.1 网络接口配置文件ifcfg-eth0文件使用cat命令查看本机ifcfg-eth0文件的内容,如下图所示,其中常见阐述的含义如下表所示。
  • 422. 7.3 使用文件配置网络 7.3.1 网络接口配置文件变 量含 义DEVICE指定该文件配置的网络接口BOOTPROTO获取TCP/IP参数的方式,static表示手工配置,dhcp表示动态获取BROADCAST当前网络的广播地址IPADDR当前主机的IP地址NETMASK网络掩码NETWORK主机所在的网络ONBOOT是否在系统启动时激活该网络接口ifcfg-eth0文件中的变量
  • 423. 7.3 使用文件配置网络 7.3.1 网络接口配置文件可以根据实际的网络状况来修改ifcfg-eth0文件,保存后需要重启网络才能生效。重启网络的方法有如下几种: (1)使用reboot或shutdown –r now命令重启Linux操作系统。 (2)在命令命令提示符下执行network脚本。 (3)在命令命令提示符下使用service命令。service命令的功能是启动、停止或重启Linux系统的某些服务,其格式如下: service 服务名 [参数] 其参数及含义如右表所示。
  • 424. 7.3 使用文件配置网络 7.3.1 网络接口配置文件例如,在命令提示符下使用如下命令重启网络: [root@myhost root]# service network restart 其执行过程如下图所示。ifcfg-eth0文件中的变量参 数含 义start启动指定的服务stop停用指定的服务restart或reload重启指定的服务status获取指定服务当前的状态
  • 425. 7.3 使用文件配置网络 7.3.1 网络接口配置文件注意:其实,service命令用于调用/etc/init.d/目录下相应的服务启动脚本来实现启动、停止或重启系统服务。本例中service命令就是调用了/etc/init.d目录下的network脚本。图中返回的“确定”信息表示网络重启成功。重启网络服务
  • 426. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 7.3.2 域名解析客户端配置 域名的使用帮助了用户记忆Internet上的主机,方便了人们使用Internet网上的资源。但是网络设备能够识别的仍然是IP地址,当用户使用域名(这种域名被称为完全限制域名FQDN)访问Internet网络上的主机时,特定的网络设备都是首先将域名翻译成IP地址,再利用IP地址去访问指定的主机的。这个将域名翻译成IP地址以及将IP地址翻译成域名的过程,称为域名解析。 网络上的域名解析的方式有两种,一种是使用本地主机上的hosts文件,由于该文件中的解析数据需要用户自行更新,故称为静态解析,另一种是通过网络上能够提供域名解析服务的主机进行统一解析,该主机称为域名解析服务器或DNS服务器,由于DNS服务器上的解析数据无需发送域名解析的用户进行更新和管理,故称为动态解析。
  • 427. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 1.静态域名解析 在RedHat Linux 9的/etc/目录下放置了hosts文件,其中记录了主机域名和对应的IP地址信息,一行为一条记录。在进行静态域名解析的时候,通过查询该文件中信息,就可以将域名解析成IP地址。该文件共分为3个字段,内容如下图所示。hosts文件内容
  • 428. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 从上图可以看到hosts文件共包含3个字段,每个字段使用空格或制表位Tab分隔。以上图hosts文件的第一行为例讲述该文件各字段的含义如下表所示。hosts文件内容字 段示 例含 义1127.0.0.1主机IP地址2localhost.localdomain主机的FQDN域名3localhost主机别名(可选)用户可以在该文件的末尾添加相应的行,以实现静态域名解析,例如,在hosts文件中添加如下图所示的行,以实现作者主机域名的解析。
  • 429. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 使用静态解析的优势在于hosts文件语法简单,其缺点也是明显的,就是用户需要自行管理hosts文件。当使用新的主机域名是,用户必须自行向hosts文件中添加解析信息,这就意味着用户必须首先知道给域名和IP地址的对应关系,通常这是比较难以办到的。而动态域名解析则无需用户自行管理域名解析所需的资源。hosts文件修改
  • 430. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 2.动态域名解析 动态域名解析被设计成客户机/服务器模式,这种模式也称为C/S模式。被解析的主机域名和IP地址的对应信息有DNS服务器提供。其过程是:客户机,也就是使用FQDN域名进行网络访问的主机,在访问Internet之前现将被访问的主机域名发送给DNS服务器,服务器查询自己的数据库,找到该主机域名的IP地址,然后发送给客户机。 为了使用DNS服务,在RedHat Linux 9系统的/etc/目录下存放了一个resolv.conf文件,记录了能够为用户提供动态域名解析服务的DNS服务器的IP地址。该文件的内容如下图所示。
  • 431. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 该文件一般包含3到4行,其中“search test.com”行是可选内容,它定义默认搜索的域名清单,“search”后面最多可以携带6个域名,域名之间使用空格隔开。“nameserver”行记录了DNS服务器的IP地址,在Linux中resolv.conf文件里“nameserver”打头的行最多只能出现3行,多余的无效。其中,第一个“nameserver”行是主DNS服务器的IP地址,其余的“nameserver”行记录的是辅助DNS服务器的IP地址。resolv.conf文件内容
  • 432. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 在RedHat Linux 9操作系统中,可以同时使用静态域名解析和动态域名解析,并且通过/etc/host.conf文件指定这两种方式的优先使用顺序。该文件通常包含如下的信息: 1)order bind,hosts 表示优先使用动态域名解析,失败后在使用静态域名解析。其中bind是DNS服务器使用软件包名称。 2)multi on 表示允许一个域名绑定多个IP地址的现象,在进行域名解析时,将返回该主机域名对应的所有IP地址。 3.域名查询命令 当用户使用主机的FQDN主机名访问网络的时候,域名解析的过程通常相对于用户来说是透明的。如果用户确实希望直到某
  • 433. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 个FQDN主机名对应的IP地址或某个IP地址对应的FQDN主机名,可以使用下面host和nslookup命令。 1)host命令 该命令用于查询域名信息,这些信息包括主机对应的IP地址、邮件服务器的信息,还可以返回指定域中所有主机的名称和IP地址的对应信息。其基本使用格式如下: host [参数] 域名或主机名 常用的参数及含义如下表所示。
  • 434. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 host命令参数参数含 义-t A查询指定主机名对应的IP地址,host命令的默认值-t MX查询指定域下邮件服务器的主机名 ­-t CNAME查询指定主机名的别名-t NS查询指定域内的DNS服务器信息-t PTR查询指定IP地址对应的主机名-r禁用递归查询-a返回指定域中所有主机信息
  • 435. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 例7-8 使用host命令查询aust.edu.cn域下,邮件服务器的信息。 在命令提示符下使用如下的命令: [root@myhost root]# host –t MX aust.edu.cn 其执行结果如下图所示。host命令的使用
  • 436. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 2)nslookup命令 和host命令稍有不同,nslookup命令除了可以进行域名查询外,还可以诊断当前的DNS服务器是否正常。在命令提示符下直接输入“nslookup”,会进入该命令的提示符“>”。在nslookup命令的提示符下输入要查询的IP地址域名,并按Enter键即可获取主机信息。在提示符下输入“exit”可以退出该命令,如下图所示。nslookup命令使用
  • 437. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 在nslookup命令中包含了许多子命令,这些子命令可以使用set在其提示符下执行,用于指定nslookup的命令行选项。其使用方法是: set keyword=value 其中常用的keyword参数和value的常用取值及含义如下表所示。keyword参数value取值含 义all-显示当前的所有选项和可用DNS服务器信息domaindomain_name指定默认搜索的域名portport_num指定域名解析服务器使用的端口号常用keyword参数和value的取值
  • 438. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 querytype、type、 qA正向查询,即主机名转换成IP地址,默认选项CNAME查询主机名的别名HINFO返回主机的CPU、操作系统等信息MX返回指定域中所有主机信息NS返回该域中的所有域名解析服务器PTR反向查询,即由IP地址查询主机名retrynum设置域名查询是重试的次数timeouttime_num设置域名查询的超时时间,单位秒例7-9 使用nslookup命令,查询当前安徽理工大学的邮件服务器(域名为aust.edu.cn)邮件服务器的信息。 命令执行的过程如下图所示。
  • 439. 7.3 使用文件配置网络 7.3.2 域名解析客户端配置 首先,在Linux的终端提示符下输入如下命令: [root@myhost root]# nslookup 然后,在nslookup的提示符下输入如下的子命令: >set q=MX 设置查询选项,通知nslookup命令返回指定域中的邮件服务器信息 >aust.edu.cn 指定需要查询邮件服务器信息的域 最后使用exit命令退出nslookup命令。nslookup查询邮件服务器信息
  • 440. 7.4 使用图形工具管理网络 在Red Hat Linux 9中,除了提供基于命令方式的网络配置工具外,还提供了基于X Window的图形配置工具。 1.配置网络接口的IP地址 在GNOME的主菜单中依次选择“主菜单”→“系统设置”→“网络”菜单项,或者在GNOME的终端命令提示符下输入redhat-config-network命令,打开如右图所示的网络配置窗口。GNOME网络配置窗口
  • 441. 7.4 使用图形工具管理网络 网络配置工具启动时自动读取当前主机上所有以太网接口信息,并将其显示在窗口中。用户可以完成网络接口、硬件驱动、DNS服务器和主机名列表等信息的配置。 用户选择需要配置的网络接口,然后单击工具栏上的“编辑”按钮,弹出如右图所示的“以太网设备”窗口。“以太网设备”窗口
  • 442. 7.4 使用图形工具管理网络 在“常规”标签中,“绰号”文本框列出了当前配置的网络接口的别名,用户可以通过确定网络接口的别名来配置和查看该接口的网络参数及状态。复选框“当计算机启动时激活设备”被选中时,Linux系统启动时将启用该网络接口。如果用户需要动态获取网络配置信息,可以选中“自动获取IP地址设置使用”单选按钮,并在其后的下拉列表中选择相应的选项,各选项含义如下: dhcp:表示使用动态主机配置协议(即DHCP服务器使用的协议)自动获取网络配置参数,该选项是最常用的选项,也是默认选项。 bootp:表示采用BOOTP自举协议配置网络参数,该协议多
  • 443. 7.4 使用图形工具管理网络 用于无盘站,使其从一个中心服务器上获得网络配置参数。 拨号:表示从拨号服务器中获取网络配置参数。 这里在该列表中选择“dhcp”选项,如果需要从DHCP服务器中获取域名解析服务,可以一并选中“自动从提供商处获取DNS信息”复选框,如下左图所示。 如果用户拥有固定的网络配置参数,则可以使用静态配置的方式。选择“静态设置的IP地址”单选按钮,此时其下的“手工设置IP地址”部分被激活,可在其中填入IP地址、子网掩码和默认网关,如下右图所示。
  • 444. 7.4 使用图形工具管理网络 手工设置网络参数动态获取网络参数
  • 445. 7.4 使用图形工具管理网络 2.设置路由信息 如果当前主机安装了多块网络接口,就需要向系统添加路由信息。在“以太网设备”窗口中,选择“路由”标签,如下左图所示。 单击“添加”按钮,弹出如下右图所示的“添加/编辑IP地址”对话框。在“地址”文本框中填入欲到达的目标网络或主机地址;在“子网掩码”文本框中输入目标网络的子网掩码;在“网关”文本框需要输入欲到达目标网络或主机需要经过的下一跳地址。“路由”标签静态网络路由
  • 446. 7.4 使用图形工具管理网络 单击“确定”按钮,返回如右图所示的静态网络路由窗口,其中列出了刚才添加的路由信息。 路由信息配置完成后,如果希望Linux能够根据数据包的目的地址进行网络路由选择,还需要打开Linux内核对路由的转发功能,具体方法是在终端提示符下输入如下命令: [root@myhost root]# echo 1 > /proc/sys/net/ipv4/ip_forward添加的路由信息
  • 447. 7.4 使用图形工具管理网络 3.绑定MAC地址 在“以太网设备”窗口中,单击“硬件设备”标签,进入如右图所示的窗口绑定MAC地址。所谓MAC地址绑定,就是将一个IP地址和一个物理MAC地址关联到一起,这样可以有效防止以太网内的ARP攻击。 首先在“硬件”下拉列表中选择需要绑定的网络接口,然后选中“关联到MAC地址”复选框,如果用户知道该被绑定接口的MAC地址,可以直接在其后的文本框中输入,也可以单击“探测”按钮,工具会自动探测所选接口的MAC地址,并填入该文本框。单击“确定”按钮结束配置。绑定MAC地址
  • 448. 7.4 使用图形工具管理网络 4.配置DNS地址 在“网络配置”窗口中,选择“DNS”标签,弹出“DNS配置”窗口,如右图所示。在“主机名”文本框输入当前主机的主机名,在“主DNS”、“第二DNS”和“第三DNS”文本框中可分别根据实际ISP提供的域名解析服务器的地址,输入主DNS服务器的IP地址和两个辅助DNS服务器IP地址。在“DNS搜寻路径”文本框输入目前默认搜索的域名。 DNS地址配置
  • 449. 7.4 使用图形工具管理网络 5.静态解析配置 在“网络配置”窗口中,选择“主机”标签出现“主机”窗口。单击“新建”按钮,弹出“添加/删除主机项目”对话框,如下左图所示,来向系统添加一条静态主机名到IP地址的映射条目。 添加IP地址、主机名和别名后,单击“确定”按钮结束配置,返回如下右图所示的“主机”窗口。添加静态解析条目“主机”窗口
  • 450. 7.4 使用图形工具管理网络 单击“文件”→“保存”菜单项,保存配置信息后退出,此时网络配置工具弹出如下图所示的对话框询问用户是否需要重新激活网络接口,只有重新激活网络接口,才能将上述配置的参数应用到网络接口。激活接口对话框
  • 451. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接对于家庭用户来说,使用宽带(ADSL)连接Internet更加常用,在Red Hat Linux 9中提供了两种方法配置ADSL拨号,一种是基于终端命令工具,另一种是图形工具。 7.5.1 使用命令工具建立ADSL连接 在Red Hat Linux 9中提供了命令模式下的ADSL连接创建工具,使用该工具可以让用户方便的ADSL连接。 1.设置网络接口参数 在ADSL中,网络接口的配置参数由拨号服务器通过DHCP协议动态分配,因此需要配置网络接口使用该协议来获取TCP/IP配置参数。
  • 452. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接设置动态获取网络参数修改/etc/sysconfig/network-scripts/ifcfg-eth0,如下图所示,将其中的“BOOTPROTO”参数的值,修改为“dhcp”,保存后退出。
  • 453. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接2.设置ADSL拨号参数 RedHat Linux 9提供了命令模式下的adsl-setup工具,帮助用户设置ADSL拨号参数,在终端提示符下输入如下命令,系统会给出ADSL拨号参数设置向导,如下图所示。 [root@myhost root]# adsl-setupADSL拨号参数设置向导
  • 454. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接向导启动后,首先要求用户提供ADSL访问的用户账号,该账号是由ADSL的服务提供商提供的,通常是电信或网通。输入指定的账号后,按下Enter键,进入如左图所示的设置ADSL连接使用的网络接口界面。设置ADSL使用的网络接口ADSL在线设置该步骤需要用户填入ADSL连接使用的以太网接口,这里使用系统的第一块以太网接口,输入eth0后,按下Enter键,进入如右图所示的在线设置界面。
  • 455. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接默认设置是“no”表示一直在线,这里可以使用默认选项,直接按下Enter键后,进入如左图所示的DNS服务器地址设置。DNS服务器地址设置设置用户口令此处,向导允许用户设置特定的DNS服务器地址,也可以使用DHCP提供的DNS服务器,此时应该输入“server”,然后按下Enter键,进入如右图所示的设置用户口令的界面。
  • 456. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接该步骤用于设置用户的ADSL拨号口令,初始的口令由ISP提供商提供,为了防止用户口令输入出错,提供了两次口令输入,以便验证用户输入的口令是否一致。按Enter键进入如左图所示界面,设置普通用户是否可以启动ADSL连接。设置启动ADSL连接的用户防火墙设置默认使用“yes”,表示普通用户可以启动ADSL连接,如果希望只有超级用户组的用户才可以使用ADSL连接Internet,应该使用“no”,然后按下Enter键,进入如上右图所示的界面。
  • 457. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接ADSL连接提供了3种防火墙设置模式供用户选择:模式0表示无防火墙;模式1表示防火墙单独运行;模式2表示使用网络地址转换模式,即NAT。对于家庭用户,应该选择模式0,然后按下Enter键,进入到如左图所示界面,设置是否随系统拨号。设置是否随系统启动拨号参数设置询问窗口默认值为“no”,表示不随系统自动启动拨号;“yes”表示随系统启动拨号。此处选择默认值,直接按下Enter键进入如右图所示的询问窗口。
  • 458. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接3.ADSL拨号和断开ADSL连接 ADSL连接是通过拨号连接的,根据ADSL连接建立向导完成相应的设置后,就可以进行ADSL拨号了,在命令提示符下输入如完成界面确认向导列出的用户设置的参数,输入“y”后按下Enter键,进入如下图所示的界面,完成连接的建立。
  • 459. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接ADSL拨号下的命令进行拨号,如下图所示。然后再使用相应的命令检测ADSL连接的TCP/IP参数。 [root@myhost root]# ifup ppp0 ←ADSL拨号 [root@myhost root]# adsl-status ←检测ADSL连接的TCP/IP参数
  • 460. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接断开连接在终端提示符下,使用ifdown命令可以断开ADSL连接,如下图所示。 [root@myhost root]# ifdown ppp0说明:ifup和ifdown命令的参数ppp0为ADSL的拨号接口。
  • 461. 7.5 使用ADSL连接Internet 7.5.1 使用命令工具建立ADSL连接浏览网页4.浏览Internet的Web页面 单击菜单项“主菜单”→“互联网”→“Mozilla万维网浏览器”,启动如右图所示的网页浏览器,在地址栏中输入网址,比如www.baidu.com,进行正常的网页浏览。 到此,使用命令工具建立ADSL连接成功。
  • 462. 7.5 使用ADSL连接Internet 7.5.2 使用图形工具建立ADSL连接7.5.2 使用图形工具建立ADSL连接 除了使用上述的命令工具建立ADSL连接外,也可以使用图形工具建立ADSL连接。1.设置网络接口参数 在ADSL中,网络接口的配置参数由拨号服务器通过DHCP协议动态分配,因此首先需要配置网络接口使用该协议来获取TCP/IP配置参数。在GNOME的主菜单中选择“主菜单”→“系统设置”→“网络”菜单项,或者在GNOME的终端命令提示符下输入redhat-config-network命令,打开如左图所示的“网络配置”窗口。GNOME网络配置窗口
  • 463. 7.5 使用ADSL连接Internet 7.5.2 使用图形工具建立ADSL连接选中用作ADSL连接的以太网接口,单击工具栏中的“编辑”按钮,弹出如右图所示的“以太网设备”窗口。 单击“常规”标签,选中“当计算机启动时激活该设备”复选框和“自动获取IP地址设置使用:”单选按钮,并在其后的下拉列表中选择“dhcp”,同时选中“自动从提供商处获取DNS信息”复选框。完成后单击“确定”按钮,返回“网络配置”窗口。 获取TCP/IP参数的方式
  • 464. 7.5 使用ADSL连接Internet 7.5.2 使用图形工具建立ADSL连接2.设置ADSL拨号参数 在“网络配置”窗口中,单击工具栏中的“新建”按钮,弹出如左图所示的“添加新设备类型”窗口。 配置DSL连接添加新设备类型在“设备类型”列表中选择“xDSL连接”后,单击“前进”按钮进入如右图所示的“配置DSL连接”窗口。
  • 465. 7.5 使用ADSL连接Internet 7.5.2 使用图形工具建立ADSL连接“以太网设备”列表框列出了当前系统可用于建立ADSL连接的以太网接口设备,可以根据需要选择实际使用的接口。“提供商名称”文本框用于设置ADSL服务提供商的名称。“登录名”和“口令”用于设置用户建立ADSL连接使用的账号和口令。设置完毕后,单击“前进”按钮进入如右图所示的设置完成窗口。设置完成窗口
  • 466. 7.5 使用ADSL连接Internet 7.5.2 使用图形工具建立ADSL连接在确认配置信息后,单击“应用”按钮,返回“网络配置”窗口,可以观察到列表中多了一个行,如图所示。完成建立ADSL连接的操作,保存设置即可。网络配置窗口
  • 467. 7.5 使用ADSL连接Internet 7.5.2 使用图形工具建立ADSL连接此时,“网络配置”窗口中已经列出了ADSL拨号设备ppp0。单击菜单项“文件”→“保存”。 3.进行ADSL拨号 在“网络配置”窗口中,选择ppp0所在的行,单击工具栏中的“激活”按钮,启动ADSL拨号,建立连接,此后就可以正常使用网络服务了。
  • 468. Linux操作系统实用教程 第七章 完
  • 469. Linux操作系统实用教程第8章 Linux图形工具的使用 8.1 OpenOffice办公软件的使用 8.2 阅读PDF文件 8.3 网络工具的使用 8.4 多媒体工具的使用
  • 470. 第8章 Linux图形工具的使用 本章概述 Red Hat Linux 9除了给用户提供完善的文本模式外,还给用户准备了易用的图形界面,用户可以使用图形工具完成Linux下大部分工作,让读者可以像使用Windows一样,操作Linux系统。
  • 471. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述从Red Hat Linux 9开始,OpenOffice被集成到Linux操作系统中,作为标准的办公软件。OpenOffice办公软件功能强大,集成了文字处理、表格处理工具和幻灯片工具等,其使用方法类似于微软的Microsoft Office办公软件。本节着重介绍OpenOffice集成办公软件中,常用的文字处理、表格工具和幻灯片工具的使用。 8.1.1 OpenOffice概述 1.OpenOffice集成办公软件简介 制作优良的办公软件可以极大地提高工作效率,但是占据市场超过80%的Microsoft Office却一直是价格昂贵的专有软件,其中的大部分功能用户很少用到,所以越来越多的用户希望能出现一种替代的廉价、稳定,且具有足够功能的办公软件,OpenOffice正符合人们的需要。目前在各版
  • 472. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述的Linux安装盘中都捆绑有OpenOffice集成办公软件,在安装Linux的过程中,可以选择安装OpenOffice。在RedHat Linux 9系统中,默认就安装了OpenOffice 1.0版本。用户也可以在其官方网站www.openoffice.org中下载最新版本升级安装。OpenOffice的启动界面如下图所示。OpenOffice启动界面
  • 473. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述与Microsoft Office软件类似,OpenOffice也包含了若干个组件,如OpenOffice Writer组件用于文字处理;OpenOffice Cacl组件用于制作电子表格;OpenOffcie Impress组件用于制作幻灯片;OpenOffice Draw用于创建各种专业化的流程图;OpenOffice Math用于创建数学公式等。 2. Openoffice的升级安装 由于RedHat Linux 9中集成的OpenOffice 1.0在中文支持方面存在一定的问题,这里首先将其升级到2.4版本。从官方网站下载最新版本且包含Java运行时jre的OpenOffice软件包OOo_2.4.0_LinuxIntel_install_wJRE_zh-cn.tar.gz,然后按下列步骤进行升级安装:
  • 474. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述1)卸载OpenOffice 1.0 单击菜单项“主菜单”→“系统设置”→“添加/删除应用程序”,弹出如下图所示的“软件包管理”窗口。“软件包管理”窗口
  • 475. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述向下拖动右边的垂直滑块,在“应用程序”组中的找到“办公/生产”选项,单击其后的“细节”链接,弹出如下图所示的“Office/Productivity软件包细节”窗口。“Office/Productivity软件包细节”窗口
  • 476. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述从中找到“openoffice – OpenOffice.org的办公套件”复选框,单击去掉对该复选框的选择,然后单击“关闭”按钮,回到“软件包管理”窗口。单击“更新”按钮转入如下左图所示的“系统筹备完毕”询问窗口。 可以单击“显示细节”按钮查看卸载的软件包,如果确实需要删除,单击“继续”按钮,软件包管理工具将用户选择的软件包,完毕后转入如图下右所示的“更新完毕”确认窗口。“系统筹备完毕”窗口“更新完毕”窗口
  • 477. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述单击“确定”按钮,回到“软件包管理”窗口,再单击“退出”按钮结束OpenOffice 1.0软件包卸载。 2)安装OpenOffice 2.4 假设OpenOffice 2.4软件包OOo_2.4.0_LinuxIntel_install_wJRE_zh-cn.tar.gz放置在/tmp目录中,接下来是安装OpenOffice 2.4的具体步骤。 (1)在终端提示符下输入如下命令,解压OpenOffice 2.4软件包: [root@myhost root]# cd /tmp [root@myhost tmp]# tar zxvf OOo_2.4.0_LinuxIntel_install_wJRE_zh-cn.tar.gz
  • 478. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述解压完成后,/tmp目录生成的OOH680_m12_native_packed-1_zh-CN.9286目录就是安装程序所在的目录。 (2)安装jre。由于OpenOffice需要Java虚拟机的支持,所以在安装OpenOffice软件包之前,首先要安装最新版的jre版本。进入/tmp/OOH680_m12_native_packed-1_zh-CN.9286/RPMS/目录,在终端提示符下使用如下命令安装jre-6u4-linux-i586.rpm: [root@myhost tmp]# cd /tmp/OOH680_m12_native_packed-1_zh-CN.9286/RPMS [root@myhost RPMS]# rpm –ivh jre-6u4-linux-i586.rpm 安装过程如下图所示。
  • 479. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述(3)安装OpenOffice 2.4。在OpenOffice软件包中有29个相互关联的分软件包,需要注意的是,这些软件包不能独立安装,因为它们之间存在相互的依赖关系,必须按照一定的循序才能安装。RedHat的RPM工具可以帮助用户jre安装
  • 480. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述解决这些依赖关系。在终端提示符下输入如下的命令可以安装OpenOffice软件包: [root@myhost RPMS]# rpm –ivh openoffice.org-*.rpm 安装过程如下图所示。OpenOffice软件包安装
  • 481. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述(4)安装桌面控制台。在OpenOffice软件包中,给用户准备了桌面配置工具,在终端提示符下输入如下命令安装: [root@myhost RPMS]# cd desktop-integration/ [root@myhost desktop-integration]# rpm -ivh openoffice.org-redhat-menus-2.4-9268.noarch.rpm 过程如下图所示。安装桌面配置工具
  • 482. 8.1 OpenOffice办公软件的使用 8.1.1 OpenOffice概述至此,OpenOffice 2.4升级完成。可以通过如图所示的方法,启动OpenOffice的组件。启动OpenOffice组件
  • 483. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具8.1.2文字处理工具 OpenOffice的文字处理工具是OpenOffice Writer,和Windows下的Microsoft Word文字处理软件非常类似。用户可以使用OpenOffice Writer来进行诸如文字录入、编辑字体、调整字号、设置段落格式等文字处理工作。OpenOffice Writer几乎包含了Microsoft Word中的全部功能, 甚至在可扩展性方面功能更强。
  • 484. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具1. 创建文档 启动OpenOffice Writer后,在菜单栏中,依次单击“文件”→“新建”→“文本文档”,如图所示,可以新建一个空白文档,用户可以在其中输入文字并对其进行处理。新建文档
  • 485. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具2. 保存文档 文档编辑处理以后,需要及时进行保存,此时可以单击“文件”→“保存”菜单项进行保存。根据文档状态,可分为两种情况: (1)文件新建后,第一次使用保存操作,系统弹出 “另存为”窗口。 用户选择好路径后,在“文件名”文本框中输入文件名后,通过“文件类型”下拉列表选择保存的文档类型,然后单击“保存”按钮,完成保存。
  • 486. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具(2)如果文件创建后已经进行过保存,此时该操作只是在原文件上增量保存,而不会弹出“另存为”对话框。 用户也可以单击“文件”→“另存为”菜单项,将文档重新保存到其他地方或重名名文档,OpenOffice Writer会弹出如右图所示的“另存为”窗口,操作方法同上。“另存为”对话框
  • 487. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具3. 设置字体 在新建的空白文档中,完成文字的录入后,可以对其进行字体、字型和字号的处理。使用鼠标选中需要进行字型调整的文字,单击“格式”→“字符”菜单项,弹出如右图所示的“字符”对话框。“字符”对话框
  • 488. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具其中,常用的有“字体”和“字体效果”选项卡。“字体”选项卡允许设置西文字符和中文字符的字体、字体形状、字体大小等;在“字体效果”选项卡中可以设置文字的下划线、删除线、字体颜色等。设置完毕后,单击“确定”按钮,字体效果如下图所示。字体效果
  • 489. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具4. 设置段落格式 选中需要设置段落格式的文字,单击“格式”→“段落”菜单项,弹出如右图所示的“段落”对话框。 其中,常用的有“缩进和间隔”、“对齐”和“背景”选项卡。“缩进和间隔”选项卡常用于设置首行缩进、段前间距、段后间距等;“对齐”选项卡可以设置段落的对齐方式和字符高度的对齐方式等;“段落”对话框
  • 490. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具“背景”选项卡用于设置段落的背景图案。设置完毕后,单击“确定”按钮,段落设置效果如图所示。段落效果
  • 491. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具5. 表格操作 在OpenOffice Writer中,不但可以进行文字编辑,还可以插入表格,并能设置表格的格式。 1)插入表格 单击“表格”→“插入”→“表格”菜单项,弹出如下图所示的“插入表格”对话框。“插入表格”对话框
  • 492. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具在“插入表格”对话框中,可以设定所-插入表格的列数和行数。完成后,单击“确定”按钮,在文档中就可以看到自己设计的表格了,如下图所示。文档中插入表格
  • 493. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具2)设置表格属性 选中表格,单击“表格”→“表格属性”菜单项,弹出如下图所示的“表格格式”对话框。“表格格式”对话框
  • 494. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具其中,“表格”选项卡可以设置表格的宽度、对齐方式等;“换行和分页”选项卡可以设置表格的垂直对齐方式等;“列”选项卡可以设置表格中每列的宽度等;“边框”选项卡可以设置表格边框的线条类型以及表格中文字距离边框的间隔。设置完成后,可以得到如下图所示的效果图。表格效果
  • 495. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具6. 图形与多媒体文件插入 OpenOffcie Writer也允许在文档中插入图片和多媒体文件。 1)插入和编辑图片 单击“插入”→“图片”→“来自文件”菜单项,弹出如下图所示的“插入图片”对话框。“插入图片”对话框
  • 496. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具选择需要插入的图片后,单击“打开”按钮可以将图片插入到当前的文档中。在文档中单击插入的图片,即可选中该图片,此时弹出如下左图所示的“图片”工具栏。 利用“图片”工具栏,可以设置图片的黑白度或灰度,还可以旋转图片,如下右图所示。“图片”工具栏图片编辑
  • 497. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具2)插入多媒体 在OpenOffice Writer的文档中,还可以插入多种格式的多媒体文件,此后当打开该文档时,就可以播放该媒体了。单击菜单项“插入”→“影片和声音”,即可打开如下图所示的“插入影片和声音”对话框。 单击“文件类型”下拉列表框,选择欲插入的媒体格式,然后在文件名文本框中输入要插入文件的文件名,然后单击“打开”按钮即可。“插入影片和声音”对话框
  • 498. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具7. 格式与样式 样式是指一组已经命名过的字符格式和段落格式的组合。用户可以使用OpenOffice Writer中定义的标准样式,也可以自定义样式。 1)样式的使用 单击菜单项“格式”→“样式和格式”可以打开如右图所示的“样式和格式”工具栏。 “样式和格式”工具栏
  • 499. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具首先选中需要应用样式的段落,然后单击“样式和格式”工具栏中的某一个样式,即可在应用该样式。对第一段使用“默认”样式后的效果如下图所示。应用“默认”样式
  • 500. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具2)修改样式 在“样式和格式”工具栏中,右击某一样式,弹出的快捷菜单,如下图所示。“样式和格式”工具栏
  • 501. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具选择“修改”菜单项,弹出如下图所示的“段落样式:默认”对话框,允许用户对样式的名称、字体、字体效果、对齐方式、背景和边框等进行修改。“段落样式:默认”对话框
  • 502. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具8. 排版和预览 当在OpenOffice Writer中录入文档后,可以通过排版使其版面更加美观。此时,除了可以使用设置“样式和格式”,还可以利用“格式”菜单中的各种工具对文章进行排版,其中包括环绕、定位、排列、翻转和组合等,如右图所示。 如果文档需要打印,那么在打印之前应该进行预览,以查看并调整打印效果。单击菜单项“文件”→“页面视图”,即可出现如下图所示的预览窗口。排版工具
  • 503. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具9. 输出成PDF文件 在OpenOffice的组件中提供了将文档直接转换成PDF的方法。在将OpenOffice文档转换成PDF文件之前,应该设置PDF选项。 1)PDF选项 单击“文件”→“转换成PDF” 菜单项,打开如右图所示的“PDF选项”对话框。“PDF选项”对话框
  • 504. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具选择“常规”选项卡,“范围”选项组用于设置转换为PDF格式的文档的范围;“图像”选项组用于设置对于OpenOffice文档中嵌入的图像的处理方法,默认选择“JPEG压缩”,在后面的“质量”文本框中可以设置压缩的程度;“常规”选项组设置其他一些基本选项,默认选择“创建PDF格式”表示转换成PDF文件,其他的保持默认设置。单击“导出”按钮,进入PDF文件的转换操作。 2)PDF文件转换 “PDF选项”设置完毕后,单击“导出”按钮,或直接单击菜单项“文件”→“输出”,或者单击“标准”工具栏中的“直接输出成PDF”按钮,都能弹出如下图所示的“导出”对话框。
  • 505. 8.1 OpenOffice办公软件的使用 8.1.2文字处理工具选择保存转换后的PDF文件的目录,设置好转换后的文件名,单击“导出”按钮,完成操作。“导出”对话框
  • 506. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具8.1.3 表格工具 OpenOffice Calc是OpenOffice集成办公软件中的电子表格处理工具,其功能和操作都与Microsoft Office中的Excel非常相似,它们都具备强大的表格和数据处理能力。 1. OpenOffice Calc的工作界面 单击 “主菜单”→“办公”→“OpenOffice.org 2.4 Calc” 菜单项,打开如右图所示的OpenOffice Calc工作窗口。
  • 507. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具菜单栏:OpenOffice Calc的主菜单,包括其全部的操作命令。 标准工具栏:包括了诸如新建文件、保存、打印、打印预览、剪切、复制、粘贴等常用的工具按钮。 格式工具栏:包括字体、字号、加粗、倾斜等与内容格式相关的设置按钮。 名称框:用于显示当前单元格的应用地址。 输入行:用于在当前选中的区域中输入编辑的内容,尤其是用于输入公式。 列标、行标:用于标记一个单元格或区域。
  • 508. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具2. 新建工作表 单击“文件”→“新建”→“电子表格”菜单项,即可新建一个空白的电子表格文件。一个电子表格文件中可以包含多个工作表,默认情况下,这些工作表以工作表1、工作表2…命名,一个工作表由65536行和256列构成。 单元格是OpenOffice Calc的基本操作单位,也是工作表的基本组成单位,当前被黑线框包围的单元格称为活动单元格,可以在其中输入数据。可以通过单元格的地址来引用单元格。 (1)如果需要引用由多个单元格组成的连续表格区域,可以使用“起始地址:终止地址”方法,表示引用从起始地址标记的单元格为左上角,终止地址标记的单元格为右下角构成的矩形区域。如B2:G5表示以B1和D5为对角线包含的24个单元格形成的矩形区域。
  • 509. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(2)如果需要引用不连续的单元格,可以在每个单元格地址之间用逗号分隔,如A3,B2,D5表示引用这3个单元格。 (3)如果需要引用多个不连续的区域,可以使用逗号分隔这些区域,如B1:C4和C6:E8分别表示引用以B1和C4为对角线以及以C6和E8对角线的两个区域。 单元格地址有相对地址、绝对地址和混合地址3种表示方式。 (1)相对地址:由列标和行标组成,如B5、B1:D5。如果公式中引用了相对地址,公式将随着地址而变化。 (2)绝对地址:在列标和行标前加上$符号,如$B$5、$B$1:$D$5。如果公式中引用了绝对地址,绝对地址将固定不变。
  • 510. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(3)混合地址:在列标或行标前加上$符号表示其为绝对地址,没有标上$为相对地址,如$B5、D$5。若列为绝对地址,则列地址固定不变;若行为绝对地址,则行地址固定不变。 在工作表中选定一个单元格就可以进行内容的录入了,在进行内容输入时,可以使用Tab键将当前活动单元格向右移动一格。 另外,在输入内容是还需要考虑数据的类型。 (1)文字的输入:输入的文字可以是汉字、英文字母、数字、空格及其他键盘能键入的符号。系统默认的文本数据的对齐方式为左对齐。如果输入的文本由数字组成,如电话号码、身份证号等,应当先输入单引号作为文字标志,再输入数字,否则会将其作为数值型数据处理。
  • 511. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(2)输入数值型数据:数值型数据在单元格中默认按右对齐,如果输入的数值型数据长度超过了16位时,系统将自动转换成科学计数法表示。另外如果当前单元格的宽度不足以显示当前输入的长度的数字,此时系统将以“###”表示,只要拉长单元格即可以正常显示。 (3)输入日期型数据:日期按年、月、日的顺序输入,分隔符可以是“-”或“/”;时间按小时、分、秒的顺序输入,分隔符可以使用“:”,如果按12小时制输入时间,需要在时间后空一格,然后键入AM或PM表示上午或下午。如果在同一单元格中输入日期和时间,在日期和时间之间用空格分隔。
  • 512. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具如下图所示,为制作的学生计算机等级考试成绩表。其中,学号为文本数字,笔试成绩、上机成绩和总成绩为数值数据。计算机等级考试成绩表
  • 513. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具3. 格式与排版 1)合并单元格 选中需要合并的单元格,单击“格式”→“合并单元格”菜单项,或使用工具栏上的“合并单元格”按钮,即可将选中的多个单元格合并为一个单元格,如下图所示。合并单元格
  • 514. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具2)设置单元格格式 可以使用“格式”工具栏设置单元格内容的字体、字号、文本颜色及其他格式,如下图所示。“格式”工具栏
  • 515. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具也可以单击“格式”→“单元格”菜单项,在打开的如下图所示的“单元格格式”对话框中设置单元格内容的格式。“单元格格式”对话框
  • 516. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具其中,“数字”选项卡,用于设置数字的格式,包括小数点的位数、货币的前导符、日期的格式等;“字体”选项卡,用于设置字体的格式、字型(加粗、倾斜等)、字号等;“字体效果”选项卡,用于设置下划线、删除线、字体颜色等;“对齐”选项卡,用于设置单元格内容的水平对齐方式、垂直对齐方式等;“边框”选项卡,用于设置单元格或所选区域的边框的线条类型、单元格内容距离边框的宽度等;“背景”选项卡,可设置区域的背景颜色。
  • 517. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具如下图所示为单元格格式设置效果。其中行1,2被设置了合并单元格,内容部分加粗、居中。“单元格格式”设置效果
  • 518. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具4. 公式和函数 公式由数据、函数、单元格地址和运算符组成。在OpenOffcie Calc中提供了公式编辑栏,用于在单元格中输入公式和使用函数,如下图所示。公式编辑栏编辑中的公式编辑栏
  • 519. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具1)输入公式 公式一般以等号“=”开始,在“=”后输入参加运算的元素和运算符。选定一个单元格后,就可以在单元格或输入行中输入公式了,在单元格和输入行中同时显示公式的内容。输入完毕后,按下“公式编辑栏”中的“采用”按钮或按下Enter键结束,单元格中显示公式计算的结果,如右图所示,E5单元格中的公式用来计算计算机等级考试的总成绩。输入公式
  • 520. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具公式输入完毕后,按下Enter键,此后单元格中显示公式计算的结果,选中该单元格,拖拽自动填充柄,即可以完成后续总成绩单元格的填充,如下图所示。公式的自动填充
  • 521. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具2)函数的使用 OpenOffice Calc函数是一些已经定义好的公式,选定 “插入”→“函数列单”菜单项,可以在工作区右边打开函数列表,。如右图所示,选择相应的函数即可。函数列表
  • 522. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具在函数列表中选中某个函数时,在下部会显示该函数的功能简介。 也可以“通过函数向导”使用函数。选中单元格,单击“公式编辑栏”中的“函数向导”按钮,或单击“插入”→“函数”菜单项,可以打开如下图所示的“函数向导”对话框。“函数向导”对话框
  • 523. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具“函数”选项卡中的“分类”下拉列表对OpenOffice Calc给出的所用函数进行了分类。“函数”列表给出了对应分类中的所有函数,在其中选择一个函数,对话框的右上部就会给出该函数的用法及功能。 例如,使用函数,根据学生计算机等级考试成绩表中的笔试成绩和上机成绩,判断该同学是否能通过计算机登记考试,然后填充“合格否”字段。如果笔试成绩和上机成绩均大于等于60分,“合格否”字段填充“T”,否则填充“F”。其步骤如下: (1)选中单元格F4,单击“公式编辑栏”中的“函数向导”按钮,弹出“函数向导”对话框。
  • 524. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(2)单击“函数”选项卡中的“分类”下拉列表,选择“逻辑”,然后在“函数”列表中双击IF函数,弹出如下图所示的IF函数向导对话框。IF函数向导对话框
  • 525. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(3)在“logical_test”文本框中输入“C4>=60”。 (4)单击“value_if_true”后面的“fx”按钮,弹出“函数向导”对话框,切换到“函数”选项卡,在“分类”下拉列表中选择“逻辑”,在“函数”列表中双击“IF”函数, 弹出IF函数向导,填写内层IF函数的参数,如下图所示。内层IF函数的参数内容
  • 526. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具完成后单击“确定”按钮回到上层的IF函数的编辑。 (5)再次单击“公式编辑栏”中的“函数向导”按钮,进入剩下的IF函数的编辑。此时,“value_if_true”文本框中已经显示了上步编辑的IF函数,在“value_if_false”文本框中输入“F”,如图所示。 上层IF函数的参数内容
  • 527. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(6)单击“确定”按钮,完成函数编辑。此时F4单元格将显示公式计算的结果。 选中单元格F4,拖拽自动填充柄,即可以完成后续“合格否”单元格的填充。如右图所示。 注意:在OpenOffice Calc中允许函数的嵌套,如在上例中就使用了IF(C4>=60,IF(D4>=60,"T","F"), "F"),其中就包含了IF函数的嵌套。“合格否”字段填充
  • 528. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具5. 数据排序与筛选 数据排序和筛选是电子表格经常用到的功能。数据排序可以将电子表格中的内容按照用于定义的字段升序或降序排列,数据筛选则是按照用户指定的字段值选择显示电子表格中的内容。 1)排序 例如,要对上例中的学生计算机等级考试成绩表,先按照笔试成绩进行降序排序,再按照上机成绩进行降序排序,步骤如下:
  • 529. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(1)拖动鼠标,将笔试成绩和上机成绩所在列的5行全部选中,单击“数据”→“排序”菜单项,弹出如下图所示的“排序”对话框。“排序”对话框
  • 530. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(2)选择“排序标准”选项卡,在“排序按照”下拉列表中选择“笔试成绩”所在的列,即列C,接着选中右边的“降序”单选按钮,然后在“然后按照”下拉列表中选择“上机成绩”所在的列,即列D,接着选中右边的“降序”单选按钮。 (3)单击“选项”选项卡,弹出如下图所示的对话框,可设置排序的其他选项。“选项”选项卡
  • 531. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(4)选中“大小写区分”复选框,单击“确定”按钮,即可完成数据排序操作,结果如下图所示。排序效果
  • 532. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具2)筛选 所谓筛选,就是根据用户设置的条件,OpenOffice Calc列出符合条件的数据。例如,从上例中的学生计算机等级考试成绩表,找出考试合格的同学,就需要使用数据筛选功能。步骤如下: (1)选定“合格否”所在的列,单击“数据”→“筛选”→“标准筛选”菜单项,弹出如下图所示的“标准筛选”对话框。“标准筛选”对话框
  • 533. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(2)在“字段名称”下拉列表中选择“合格否”字段;在“条件”下拉列表中选择“=”;在“数值”下拉列表中选择“T”,然后单击“确定”按钮,即可得到筛选后的结果,如下图所示。数据筛选结果此时,通过筛选,表格中只显示通过考试的学生信息。
  • 534. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具6. 建立图表 OpenOffice Calc提供了9种类型的图表,每一种图表又分为几个子图表类型供用户选择使用。常用的图表类型有柱形图、条形图、饼图、面积图、折线图等。 例如,根据上例中学生计算机等级考试成绩数据,插入学生考试成绩柱形图,步骤如下: (1)选择“合格否”所在的列,单击“插入”→“图表”菜单项,或单击“格式”工具栏中的“图表”按钮,弹出如下图所示的“图表向导”的“图表类型”对话框。
  • 535. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(2)在“选择一种图表类型”列表框中选择“柱形图”,在右边给出的图表图形中选择“一般”图形,单击“继续”按钮,弹出如下图所示的“图表向导”的“数据区域”对话框。“数据区域”对话框
  • 536. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(3)选定“列中的数据序列”单选按钮,再选中“第一行作为标签”和“第一列作为标签”复选框,单击“继续”按钮,弹出如下图所示的“图表向导”的“数据序列”对话框。“数据序列”对话框
  • 537. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(4)适当调整“数据序列”列表框中的字段顺序,单击“继续”按钮,弹出如下图所示的“图表向导”的“图表元素”对话框。“图表元素”对话框
  • 538. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(5)在“显示网格”部分中,可以通过选中“X轴”、“Y轴”复选框实现在图表中使用网格线;选中“显示图标”复选框后,通过选择下面的“左”、“右”、“上”或“下”单选按钮来决定图表的位置。完成后,单击“完成”按钮,完成插入图表的操作,得到如下图所示的柱形图。表格中插入图表
  • 539. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具7. 表格边框 为使表格内容更加突出,或美化表格,可为表格添加边框,其方法如下: (1)将表格中的所有数据选中,然后单击右键,从弹出的快捷菜单中选择“单元格格式”菜单项,弹出如下图所示的“单元格格式”对话框。
  • 540. 8.1 OpenOffice办公软件的使用 8.1.3 表格工具(2)选择“边框”选项卡,然后根据实际需要设置线条风格、线条排序、阴影以及表格内容与边框的距离等。例如,在上例学生计算机等级考试成绩表中,添加外边框,只需在“线条排序”选项组中选择“仅采用外边框”,其他采用默认设置。边框设置效果如下图所示。表格边框
  • 541. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具8.1.4演示文稿工具 OpenOffice Impress与Microsoft Office PowerPoint相似,可以用于制作演示文稿。这些文稿可以用于各种会议、产品演示或学校教学等场合。 1. 创建幻灯片 在首次打开OpenOffice Impress时,或单击“文件”→“新建”→“演示文稿”菜单项时,或单击“标准”工具栏中的“新建”按钮时,会弹出如右图所示的“演示文稿向导(1)”对话框。演示文稿向导(1)
  • 542. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具要新建空白演示文稿,可选中“空白演示文稿”单选按钮,同时选中“预览”复选框,单击“继续”按钮,弹出如下图所示的“演示文稿向导(2)”对话框。演示文稿向导(2)
  • 543. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具在“请选择一个幻灯片设计”下拉列表中选择“演示文稿背景”并在下面的列表中选择使用“冰海”背景,其他选项使用默认设置即可。单击“继续”按钮,弹出如下图所示的“演示文稿向导(3)”对话框。演示文稿向导(3)
  • 544. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具选择合适的幻灯片切换方式后,单击“创建”按钮,OpenOffice Impress将按照用户的设置创建一个空白的演示文稿,如下图所示。此后用户就可以在其中对幻灯片进行编辑了。新建幻灯片
  • 545. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具2. 动画与特效 在幻灯片中使用动画效果和特效可以增加幻灯片的效果,并使其更加美观。例如,在幻灯片翻页的时候可以使用动画效果,使幻灯片的过渡更加平和。可以使用演示文档窗口右侧的“任务”窗口实现各种动画效果,如右图所示。“任务”窗口
  • 546. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具用于设置幻灯片切换动画效果的选项组是“幻灯片切换”,在“应用于选中的幻灯片”列表中,选择合适的动画效果,这里选择“顺时针回旋,2根轮辐”。接着,在“修改切换效果”选项组中单击“速度”下拉列表,选择合适的幻灯片切换速度,在“声音”下拉列表中选择插入幻灯片的声音。还可以是用鼠标单击还是自动间隔一定的时间切换幻灯片,如右图所示。幻灯片切换动画设置
  • 547. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具3. 使用幻灯片模板 在新建演示文稿的时候,可以在创建演示文稿向导中选择使用幻灯片模板,使用现有的文稿模板来创建某种风格的演示文稿,从而大大提高演示文稿的创建效率,如下图所示。选择使用演示文稿模板
  • 548. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具在“类型”选项组中选中“来自模板”单选按钮,在下面的下拉列表中选择“演示文稿”,然后在下面的列表中选择合适的模板,这里以“新产品介绍”作例介绍,单击“继续”按钮,弹出如下图所示的窗口。选择幻灯片设计
  • 549. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具在列表中选择一个合适幻灯片设计,然后单击“继续”按钮,在接下来的对话框中设置更换幻灯片的效果和速度,然后单击“继续”按钮,弹出如下图所示的窗口。设置提纲
  • 550. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具这里可以输入演示文稿提纲,其内容将被放置在演示文稿的第一页上。输入完毕后,单击“继续”按钮,进入如下图所示的选择文稿页面窗口。选择文稿的页面选择演示文稿中包含的页面后,单击“创建”按钮完成使用模板创建幻灯片的工作。
  • 551. 8.1 OpenOffice办公软件的使用 8.1.4演示文稿工具4.幻灯片浏览与播放 演示文稿设计完成后,可以通过幻灯片浏览来检查其中的不妥之处,以便修改。浏览幻灯片的方法是单击主界面中的“幻灯片浏览”标签,如右图所示,在此,可以仔细检查每个页面是否需要修改,对于需要修改的页面,可以单击该页面,然后“普通视图”进行修改。 所有的编辑步骤完成后,可以通过单击“演示文稿”→“幻灯片放映”菜单项,或者按下快捷键F5,来播放幻灯片。幻灯片浏览
  • 552. 8.2 阅读PDF文件 在RedHat Linux 9中单击“主菜单”→“图形”→“PDF Viewer”菜单项,可以打开PDF Viewer程序,进入其界面Xpdf,如下图所示。Xpdf界面简洁,具备必要的功能,是非常好的PDF文件阅读工具。PDF Viewer主界面
  • 553. 8.2 阅读PDF文件 在Xpdf程序的主窗口中单击右键,从弹出的快捷菜单中选择“Open”菜单项,即可弹出如下左图所示的“Xpdf:Open”对话框。“Xpdf:Open”对话框选择需要打开的PDF文件,单击“Open”按钮,即可浏览PDF文件内容了,如上右图所示。使用Xpdf阅读PDF文件
  • 554. 8.3 网络工具的使用 8.3.1 Mozilla浏览器的使用用户在网上冲浪的时候,浏览器和下载工具是必备的,在RedHat Linux 9中分别为用户提供了免费的Mozilla浏览器和KGet下载工具。 8.3.1 Mozilla浏览器的使用 Mozilla是一个功能强大、服从Web标准、综合集成Internet浏览器、电子邮件客户端和新闻阅读器。Internet浏览器部分显示Internet网页内容。 可以单击菜单项“主菜单”→“互联网”→“Mozilla万维网浏览器”启动Mozilla浏览器,如右图所示。 Mozilla浏览器
  • 555. 8.3 网络工具的使用 8.3.1 Mozilla浏览器的使用1. 侧栏 默认Mozilla的侧栏是隐藏的,通过单击“查看”→“显示/隐藏”→“侧栏”菜单项可以打开Mozilla的侧栏,如下图所示。侧栏中包含了相关内容、搜索、书签和历史记录等选项。Mozilla的侧栏
  • 556. 8.3 网络工具的使用 8.3.1 Mozilla浏览器的使用2. 书签 书签相当于Microsoft Windows中Internet Explorer中的收藏夹,用于存放网址,如下图所示。在Mozilla浏览器中,书签还被放置在浏览器上方的书签栏中,以方便随时打开浏览。Mozilla的书签要在书签中添加一个站点,只要单击“书签”→“加为书签”菜单项即可。
  • 557. 8.3 网络工具的使用 8.3.1 Mozilla浏览器的使用3. 搜索 在Mozilla浏览器中内嵌了NetScape Search搜索引擎,同时,也允许用户使用第三方搜索工具,如百度、google等,默认使用的是NetScape Search引擎。单击地址输入栏旁的“搜索”按钮,即可打开搜索侧栏,如下图所示。Mozilla搜索
  • 558. 8.3 网络工具的使用 8.3.1 Mozilla浏览器的使用4. 下载管理 在Internet网页页面上右击相应的下载链接,在弹出“另存为”对话框中选择保存目录后,单击“保存”按钮,下载的项目就会被添加到Mozilla的下载管理器中,如下图所示。Mozilla下载管理器Mozilla下载管理器提供了断点续传等基本的下载管理功能,能够满足日常的网络下载管理需要,如果用户需要使用下载完成后自动关机等高级下载管理功能,可以使用KGet等下载管理工具。
  • 559. 8.3 网络工具的使用 8.3.2下载管理工具KGet8.3.2下载管理工具KGet 为了方便用户日常的下载管理,RedHat Linux 9提供了KGet下载工具。在RedHat Linux 9主菜单中单击“主菜单”→“互联网”→“更多互联网应用程序”→“KGet” 菜单项,即可打开KGet下载工具。第一次运行KGet时,系统会提问用户是否将它设为Konqueror的默认下载管理器,如下图所示。KGet运行询问对话框
  • 560. 8.3 网络工具的使用 8.3.2下载管理工具KGet单击“是”按钮,KGet自动缩小到GNOME桌面的右上角,单击此图标时会打开如下图所示的KGet主界面。KGet主界面
  • 561. 8.3 网络工具的使用 8.3.2下载管理工具KGet1. 添加下载项目 单击“主菜单”→“互联网”→“更多互联网应用程序”→“Konqueror Web浏览器”菜单项打开浏览器,进入需要下载的网站,然后在链接目标上按下鼠标左键,拖拽到KGet的主界面中,系统弹出如下图所示的“另存为”窗口。KGet另存为窗口
  • 562. 8.3 网络工具的使用 8.3.2下载管理工具KGet在选择适当的保存路径和文件名后,单击“保存”按钮,即可完成下载项目的添加, KGet会立即启动该项目的下载,如下图所示。KGet下载
  • 563. 8.3 网络工具的使用 8.3.2下载管理工具KGet2. 配置KGet 单击KGet的“设置”→“配置KGet”菜单项,可以打开KGet的首选项窗口,如下图所示。KGet首选项窗口
  • 564. 8.3 网络工具的使用 8.3.2下载管理工具KGet“连接”选项卡可以在“重新连接选项”选项组中设置当由于网络故障连接被断开后是否重新连接、重新连接的等待时间、重试次数以及重新建立连接后是否续传。“自动”选项卡中选择“完成下载后自动关机”复选框可以设置当所有下载任务完成时,自动关机。在“限定”选项卡中,可以设置最大的TCP连接数。在“高级”选项卡中可以设置是否将KGet和Konqueror集成,使之成为Konqueror的默认下载管理器。
  • 565. 8.3 网络工具的使用 8.3.3 E-mail收发8.3.3 E-mail收发 在RedHat Linux 9中默认安装了Evolution和Kmail邮件客户端,和Microsoft Windows中的Outlook Express类似,Evolution和Kmail可以从邮件服务器中将邮件取回到用户机器上,允许用户离线阅读邮件。Evolution套件功能强大,但过于复杂,而Kmail工具相对简单,支持SSL和TLS加密传输,足以满足日常的收发邮件的需要,故这里仅介绍Kmail工具,有特殊需要的用户可以自行学习Evolution的使用。 使用Kmail作为邮件客户端,首先要在Kmail中添加邮箱地址和登录邮箱的用户账号。Kmail的邮箱地址可以通过用户的身份标识来唯一标记,用户账号通常被分为发送邮件的账号和接收邮件的账号。下面详细讲述如何使用Kmail收发邮件。
  • 566. 8.3 网络工具的使用 8.3.3 E-mail收发在RedHat Linux 9的GNOME面板中,单击“主菜单”→“互联网”→“更多互联网应用程序”→“Kmail”菜单项,启动Kmail,进入如下图所示的Kmail主界面。Kmail主界面
  • 567. 8.3 网络工具的使用 8.3.3 E-mail收发1. 添加邮箱账号 通常,邮箱的账号包括发送账号和接收账号,Kmail允许用户使用来自不同邮件服务器的邮件发送账号和接收账号。单击“设置”→“配置Kmail”菜单项,打开如下图所示的配置窗口。Kmail配置窗口
  • 568. 8.3 网络工具的使用 8.3.3 E-mail收发1)添加身份标识 身份标识与用户的邮箱相关联,可以标记已有的用户邮箱。在Kmail的“配置”窗口左边的列表中,单击“身份标识”项,在右边弹出的“管理身份标识”组中单击“新建”按钮,弹出如下图所示的“新身份标识”对话框。“新身份标识”对话框
  • 569. 8.3 网络工具的使用 8.3.3 E-mail收发在“新建身份标识”文本框中输入一个标记名,选中“用空白表格”单选按钮,然后,单击“确定”按钮,进入如下图所示的“编辑身份标识"aust"”对话框。编辑身份标识”aust”
  • 570. 8.3 网络工具的使用 8.3.3 E-mail收发点击“常规”选项卡,按上图设置,其中“您的名字”表示发送邮件自动添加的用户名。点击“高级”选项卡,将“回信地址”设置成有效的邮箱地址后,单击“确定”按钮,回到如下图所示的“管理身份标识”窗口,此时aust标识的邮箱已经成功地加入了列表。添加身份标识
  • 571. 8.3 网络工具的使用 8.3.3 E-mail收发2)添加发送账号 在Kmail配置窗口左边的列表中单击“网络”选项,在右边弹出的“设置信件收发”组中选择“发送”选项卡,单击“添加”按钮,弹出如下图所示的“添加传送方式”对话框。“添加传送方式”对话框
  • 572. 8.3 网络工具的使用 8.3.3 E-mail收发通常邮箱都支持SMTP方式,故这里选择“SMTP”单选按钮,然后单击“确定”按钮,弹出如右图所示的“添加传话方式”对话框。 在上图所示的窗口中设置发送邮件的服务器主机名或IP地址,通常邮件服务器对发送邮件的用户不加验证,因此取消“服务器需要认证”复选框的选择,单击“确定”按钮,完成发送账号的设置。“添加传话方式”对话框发送主机
  • 573. 8.3 网络工具的使用 8.3.3 E-mail收发3)添加接收账号 选择“接收”选项卡,单击“添加”按钮,弹出如下图所示的“添加账号”对话框。“添加账号”对话框
  • 574. 8.3 网络工具的使用 8.3.3 E-mail收发在“账号类型”选项组中,根据实际邮箱的类型选择账号的类型,这里选中“POP3”单选按钮,单击“确定”按钮,弹出如右图所示的“添加账号”对话框。 在“常规”选项卡中设置邮箱的名称、邮箱的登录名、口令、邮件主机地址或主机名及端口信息;在“其他”选项卡中设置“传输的加密方式”和邮箱账号的“验证方式”,加密方式需要邮件服务器的支持,通常不使用加密方式。验证方式也由邮件服务器提供,通常选择“纯文本”方式。设置完成后,单击“确定”按钮,回到Kmail的配置窗口,邮件账号添加成功。在Kmail的“配置”窗口中,单击“确定”按钮完成设置。“添加账号”对话框
  • 575. 8.3 网络工具的使用 8.3.3 E-mail收发2. 收送邮件 在Kmail的菜单栏中没有提供收发邮件等操作的菜单项,而是提供了一个工具栏,其中包含了基本的邮件操作按钮如,如下图所示。Kmail工具栏
  • 576. 8.3 网络工具的使用 8.3.3 E-mail收发单击“撰写新信件”按钮,弹出如下图所示的撰写新邮件窗口。撰写邮件
  • 577. 8.3 网络工具的使用 8.3.3 E-mail收发编辑好邮件后,单击“附件”→“添加附加文件”菜单项,弹出如下图所示的“附加文件”对话框。“附加文件”对话框
  • 578. 8.3 网络工具的使用 8.3.3 E-mail收发选择需要添加的文件后,单击“确定”按钮完成附件的添加,如下图所示。携带附件的新邮件邮件撰写完毕后,单击“信件”→“发送”菜单项,或单击工具栏的“发送”按钮,即可完成邮件的发送。
  • 579. 8.3 网络工具的使用 8.3.3 E-mail收发3. 接收邮件 单击“文件”→“检查邮件”菜单项,或单击工具栏中的“检查邮件”按钮,或者使用Ctrl+L组合键,弹出如下图所示的验证对话框。口令输入对话框
  • 580. 8.3 网络工具的使用 8.3.3 E-mail收发用户输入正确的口令后,Kmail就可以到身份标识标记的邮箱中取回邮件,在客户机上阅读了,如下图所示。阅读邮件
  • 581. 8.4 多媒体工具的使用 对于多媒体文件的使用,RedHat Linux 9提供了众多的播放工具,其中包括CD播放器、用于播放MP3、WAV等格式文件的音乐播放器Noatun、播放RMVB、AVI等视频的RealPlayer和Helix Player等。 1. 播放CD RedHat Linux 9提供了CD播放机,其界面简单清晰,功能专一,资源消耗少。单击 “声音和视频”→“CD播放器”菜单项,即可启动CD播放器,如下图所示。CD播放机
  • 582. 8.4 多媒体工具的使用 2. 播放MP3等格式音乐 RedHat Linux 9中提供的Noatun播放器用于播放多种格式的音乐文件,其中包括WAV、MP3、Ogg等。同时还可以使用插件,实现对更多格式的支持。单击“声音和视频”→“更多音频和视频程序”→“Noatun”菜单项,即可启动Noatun播放器,如下图所示。Noatun主界面
  • 583. 8.4 多媒体工具的使用 单击Noatun的“文件”→“打开”菜单项,在弹出的对话框中单击“过滤”下拉列表,可以看到Noatun默认支持的音乐格式,如下图所示,选择播放的文件,即可播放音乐了。查看Noatun支持的格式
  • 584. 8.4 多媒体工具的使用 3. CD抓轨 在RedHat Linux 9中的Grip工具,不但可以播放CD音乐,还可以将CD转换成WAV格式。单击“声音和视频”→“更多音频和视频程序”→“Grip”菜单项,即可启动Grip播放器,如右图所示。Grip主界面
  • 585. 8.4 多媒体工具的使用 在“曲目”选项卡中的列表框中显示的当前CD-ROM中的所有曲目,直接双击某一曲目,或者选中某一曲目,点击下面的播放按钮,即可播放该曲目。 在Grip主界面中,右击需要抓轨的曲目,即可在“抓轨”列中使用“√”标记选中,点击“抓轨”选项卡,转入如右图所示的窗口。 单击“抓轨后编码”按钮,即可进行CD抓轨。CD抓轨
  • 586. 8.4 多媒体工具的使用 4. 播放视频 RealPlayer是Linux中的免费网络视频播放器,它不但可以播放本地主机上的电影,还可以在线收看网络电影。单击RealPlayer的“文件”→“打开文件”菜单项,在打开的“选择文件”对话框中选择本地的影片,单击“确定”按钮,即可播放本机上的影片。单击“文件”→“打开位置”菜单项,在打开的“打开位置”窗口中,输入网络影片的URL即可收看在线影片。如右图所示为RealPlayer在播放影片。使用RealPlayer播放影片
  • 587. Linux操作系统实用教程 第八章 完
  • 588. Linux操作系统实用教程 第9章 Linux系统管理 9.1 打印机管理 9.2 进程管理 9.3 Linux服务配置
  • 589. 第9章 Linux系统管理本章概述 所谓系统管理,就是在特定地环境下对操作系统所拥有的资源进行有效的计划、组织和控制,以便实现既定目标的过程。合理地对Linux操作系统进行管理,可以对系统运行情况进行监控,提高系统的工作效率,还可以增加系统的安全性。
  • 590. 9.1 打印机管理 9.1.1 Linux打印系统简介在Red Hat Linux 9中包含了CUPS和LPRng两种打印系统。默认情况下使用CUPS打印系统,如果操作系统是从使用LPRng打印系统的RedHat Linux中升级而来,则默认仍然使用LPRng。本节主要介绍CUPS打印系统\本地打印机和网络打印机的使用。关于LPRng打印系统的使用,读者可自行学习。 9.1.1 Linux打印系统简介 1.CUPS打印系统 通用Unix打印系统(Common Unix Printing Systme,CUPS)是RedHat Linux 9默认支持的打印系统。该系统主要使用Internet打印协议(Internet Printing Protocol,IPP)来管理打印工作及其队列,同时也支持LPD(Line Printer Daemon)、SMB(Server Message Block)以及AppSocket等通信协议。CUPS具有如下的优点:
  • 591. 9.1 打印机管理 9.1.1 Linux打印系统简介采用IPP协议加强网络打印功能。 可自动检测网络打印机。 支持Web界面设置工具。 支持PPD(PostScript Printer Description)打印机文件。 支持大多数的打印机使用。 2.LPRng打印系统 LPRng打印系统是由Berkeley LPR打印系统发展而来的,兼容RFC 1179标准。其主要功能如下: 在不需数据库的环境下可执行lpr、lpc和lprm等程序。 实现打印队列的自动转向。
  • 592. 9.1 打印机管理 9.1.1 Linux打印系统简介实现打印工作自动保留。 多重打印机可使用同一个队列。 客户端不需要执行suid root。 大幅提升安全性检查。 改善权限及授权机制。 3. 切换打印系统 RedHat Linux 9同时支持上述的两种打印系统,如果当前安装了CUPS和LPRng两种打印系统,可以使用如下的方法切换当前使用的打印系统。
  • 593. 9.1 打印机管理 9.1.1 Linux打印系统简介单击“主菜单”→“系统设置”→“更多系统设置”→“Printer System Switcher”菜单项,或在终端提示符下输入命令“redhat-switch-printer”,此时系统打开如下图所示的“redhat switch printer”窗口。“redhat switch printer”窗口
  • 594. 9.1 打印机管理 9.1.1 Linux打印系统简介在该窗口中选择需要使用的打印系统,如要选择CUPS打印系统,只需选中前面的单选按钮,然后单击“确定”按钮即可。 接着,需要停止lpd服务,启动cups。在终端提示符下使用如下命令,可完成该动作: [root@myhost root]# /etc/rc.d/init.d/lpd stop ←停止lpd服务 [root@myhost root]# /etc/rc.d/init.d/cups start ←启动cups服务 结果如下图所示。启动cups
  • 595. 9.1 打印机管理 9.1.2 添加本地打印机9.1.2 添加本地打印机 本地打印机是任何操作系统打印机管理的常见类型。所谓本地打印机就是通过并行端口或USB连接端口,直接连接到主机的打印机。在添加本地打印机时需要以超级用户身份登录系统。具体步骤如下: (1)单击“主菜单”→“系统设置”→“Printing”菜单项,或在终端提示符下输入命令“redhat-config-printer”,即可打开如下图所示的“打印机配置”窗口。“打印机配置”窗口
  • 596. 9.1 打印机管理 9.1.2 添加本地打印机(2)单击“行动”→“新队列”菜单项,或单击“新建”按钮,即可弹出“添加一个新打印队列”对话框,单击“前进”按钮跳过,系统出现如下图所示的“队列名称”对话框。“队列名称”窗口
  • 597. 9.1 打印机管理 9.1.2 添加本地打印机(3)在“名称”文本框中输入打印机名称,在“简短描述”文本框中输入有关该打印机的说明后,单击“前进”按钮,弹出如下图所示的“队列类型”对话框。 注意:打印机的名称字符串中不能出现空格,而且必须以英文字母打头,可以包含数字、连字符号(-)或下划线(_)。“队列类型”窗口
  • 598. 9.1 打印机管理 9.1.2 添加本地打印机(4)在“选择队列类型”下拉列表中选择“本地连接”,然后单击“定制设备”按钮,弹出如下图所示的“定制设备”对话框。“定制设备”对话框
  • 599. 9.1 打印机管理 9.1.2 添加本地打印机(5)若是从USB接口接入打印机,在“设备”文本框中应输入/dev/usb/lp0,然后单击“确定”按钮,返回“队列类型”窗口。选中“/dev/usb/lp0”所在的行,单击“前进”按钮,弹出如下图所示的“打印机型号”对话框。“打印机型号”对话框
  • 600. 9.1 打印机管理 9.1.2 添加本地打印机(6)选择合适的打印机品牌和型号后,单击“前进”按钮,进入如下图所示的“结束”对话框。“结束”对话框
  • 601. 9.1 打印机管理 9.1.2 添加本地打印机(7)单击“应用”按钮,弹出如下图所示的打印测试页窗口,完成本地打印机的添加。印测试页
  • 602. 9.1 打印机管理 9.1.3 安装打印机驱动9.1.3 安装打印机驱动 RedHat Linux 9系统默认支持当前大多数知名品牌的打印机,如果需要向系统添加未被RedHat Linux 9支持的打印机,需要自行安装相应的驱动程序。通常可以在打印机生产商的官方站点上找到相应的Linux驱动,也可以从其他网站上下载第三方的驱动。在添加本地打印机的过程中的“打印机类型”步骤中,如果系统没有提供相应的打印机型号,此时就需要用户自行安装驱动了。 下面以惠普的USB接口接入的HP LaserJet 1020打印机为例介绍打印机驱动的安装方法。 从http://foo2zjs.rkkda.com/站点下载第三方驱动foo2zjs.tar.gz的最新版,保存到/tmp目录中,按照如下步骤编译安装。以下所有操作均在终端提示符下进行。
  • 603. 9.1 打印机管理 9.1.3 安装打印机驱动[root@myhost root]# cd /tmp [root@myhost tmp]# tar zxvf foo2zjs.tar.gz [root@myhost tmp]# cd foo2zjs [root@myhost foo2zjs]# make uninstall ←卸载先前安装的残余组建 [root@myhost foo2zjs]# make ←编译 [root@myhost foo2zjs]# ./getweb 1020 ←获取打印机固件支持,测试需要将打印机连接到主机,并且打开电源 [root@myhost foo2zjs]# make install ←安装编译后的组建 [root@myhost foo2zjs]# make install-hotplug ←安装hp特有的热插拔支持组建 [root@myhost foo2zjs]# make cups ←添加对CUPS的支持,并重启CUPS [root@myhost foo2zjs]# make test ←打印测试页
  • 604. 9.1 打印机管理 9.1.4 添加CUPS打印系统9.1.4 添加CUPS打印系统 如果本机没有连接打印机,Linux允许通过TCP/IP网络,使用CUPS系统上的打印机。可以利用RedHat Linux 9提供的打印机配置工具添加CUPS的远程打印机,具体步骤如下。 (1)以超级用户登录RedHat Linux 9系统,打开“打印机配置”窗口,单击“新建”按钮,在弹出的“队列名称”窗口中,输入唯一的打印机名,在打印机描述后,单击“前进”按钮,弹出如下图所示的“队列类型”窗口。
  • 605. 9.1 打印机管理 9.1.4 添加CUPS打印系统(2)在“选择队列类型”下拉列表中选择“联网的CUPS(ipp)”选项,并在“服务器”文本框中输入提供打印服务的主机的地址,“路径”文本框中输入适当的队列缓存文件位置,然后单击“前进”按钮。 (3)在弹出的“打印机型号”窗口中选择合适的打印机品牌和信号后,单击“前进”按钮,进入如下图所示的“结束”窗口。 完成CUPS打印机添加
  • 606. 9.1 打印机管理 9.1.4 添加CUPS打印系统(4)单击“应用”按钮,完成CUPS打印机的添加。返回如下图所示的“打印机配置”窗口,此时就可以看到新添的CUPS打印机了。查看新添打印机
  • 607. 9.1 打印机管理 9.1.5 Web方式管理打印机9.1.5 Web方式管理打印机 如果Linux系统选用CUPS打印系统,在启动CUPS后,就能够使用Web方式来管理打印系统。首先打开Molliza浏览器,在地址栏中输入http://localhost:631,系统会打开如下图所示的CUPS打印系统管理页面。Web打印管理首页
  • 608. 9.1 打印机管理 9.1.5 Web方式管理打印机在CUPS打印系统的管理首页中,包含了以下管理项目。 (1)Do Administration Tasks:包含了几乎所有的管理项目,例如打印机类、打印任务队列管理和打印机管理等。 (2)Manage Printer Classes:管理打印机类。 (3)On-Line Help:在线帮助。 (4)Manage Jobs:管理打印队列。 (5)Manage Printers:打印机管理。 (6)Download the Current CUPS Software:连接到CUPS首页。 利用首页上的“Manager Printer”项目可以添加打印机,具体步骤如下:
  • 609. 9.1 打印机管理 9.1.5 Web方式管理打印机单击“Manage Printers”项目,跳转到如下图所示的页面。如果当前系统没有连接打印机,此时会显示“No printers”。系统当前的打印机状态
  • 610. 9.1 打印机管理 9.1.5 Web方式管理打印机单击“Add Printer”按钮,此时系统弹出身份认证窗口,如下图所示,要求输入用户名和密码。身份认证窗口
  • 611. 9.1 打印机管理 9.1.5 Web方式管理打印机输入合法的用户账号和口令后,单击“确定”按钮后,进入如下图所示的“Add New Printer”页面。“Add New Printer”页面
  • 612. 9.1 打印机管理 9.1.5 Web方式管理打印机在该页面中输入打印机名称、打印机的设备名称和简要的说明后,单击“Continue”按钮,进入如下图所示的选择打印机接口页面。选择打印机接口页面
  • 613. 9.1 打印机管理 9.1.5 Web方式管理打印机在“Device”下拉列表中选择当前接入主机的打印机的接口类型,由于本机采用的USB连接打印机,故选择“USB Printer #1”,然后单击“Continue”按钮,进入如下图所示的选择打印机厂商页面。选择打印机厂商页面
  • 614. 9.1 打印机管理 9.1.5 Web方式管理打印机在“make”列表中选择正确的打印机厂商,由于本例使用的惠普的Laser Jet系列打印机,故选择“HP”,然后单击“Continue”按钮,转入“选择打印机型号”窗口。在其中选择正确的打印机后,单击“Continue”按钮,弹出如下图所示的添加打印机完成页面。添加打印机完成页面
  • 615. 9.1 打印机管理 9.1.5 Web方式管理打印机添加打印机操作完成后,单击“Printers”连接,弹出如下图所示的打印机管理页面中,可以查看当前新增的打印机。查看新增打印机
  • 616. 9.2 进程管理 9.2.1 监控进程状态进程是具有一定独立功能的程序的一次执行,是操作系统动态执行的基本单元,也是操作系统进行资源分配的基本单位。Red Hat Linux 9是一个多任务的操作系统,通过CPU在各个任务之间进行时间片轮转来实现宏观上多个任务的同时执行的。 9.2.1 监控进程状态 Linux系统是一个多用户多任务的操作系统,管理员在使用和管理Linux系统的时候,需要随时了解系统进程运行的情况,也经常需要对正在运行的进程进行及时的调整和管理。而进行进程管理的首要条件就是获知当前系统正在运行的进程状态。在RedHat Linux 9系统中,除了在第三章中介绍的基于命令行的ps和tree工具外,还提供了基于图形界面的“系统监视器”工具,用于查看系统当前进程的运行状况。
  • 617. 9.2 进程管理 9.2.1 监控进程状态在GNOME桌面中,单击“主菜单”→“系统工具”→“系统监视器”菜单项,或在终端提示符中输入命令“gnome-system-monitor”,即可以打开如下图所示的“系统监视器”窗口。“系统监视器”窗口
  • 618. 9.2 进程管理 9.2.1 监控进程状态单击“查看”下拉列表,可以选择显示所有进程、当前用户的进程还是活动的进程。单击“编辑”→“首选项”菜单项,可以打开如右图所示的“首选项”对话框。 选择“进程域”选项卡,从中可以选择主界面中显示的进程信息。“首选项”对话框
  • 619. 9.2 进程管理 9.2.2 控制进程的优先级9.2.2 控制进程的优先级 在Linux中,按照时间片轮转法分配进程对CPU的使用时间,当一个进程使用完获得的CPU时间片后,就将其占用的处理机释放给其他进程。操作系统赋予各进程不同的优先级,操作系统按照进程的优先级来安排其占用CPU顺序,优先级越高的进程越先获得CPU的使用权,并且CPU的使用时间也越多,进程就越快完成定义的任务。 一般进程的执行时的优先级范围为-20~19,其中-20的优先级最高,而19的优先级最低。优先级-1~-20只有管理员才可以设置,一个程序被启动时,系统设置的默认优先级是0。用户可以使用相应的工具来设置进程的优先等级。在RedHat Linux 9中,提供了基于命令的工具nice和renice,以及图形工具系统监视器来调整进程的优先等级。
  • 620. 9.2 进程管理 9.2.2 控制进程的优先级1. nice和renice工具 nice和renice命令可以用于在命令行方式下设置一个进程的优先级,其中nice通过指定优先级启动一个特定的进程,renice命令则用于调整已经运行的进程的优先级。 1) nice命令 nice命令用于在启动进程时设置其优先级。基本使用格式如下: nice [-priority] 程序名 其中参数priority表示优先级,取值范围为-20~19。该命令可以使指定的程序以priority指定的优先级运行。例如,可以在终端提示符下输入如下的命令来按指定的优先级运行vim程序。 [root@myhost root]# vim & ←默认情况下,优先级为0 [root@myhost root]# nice -18 vim & ←优先级为18 [root@myhost root]# nice --18 vim & ←优先级为-18
  • 621. 9.2 进程管理 9.2.2 控制进程的优先级下面以ps -l命令来验证nice命令执行的结果,如下图所示,其中NI字段就是进程的优先级。验证nice命令2) renice命令 在RedHat Linux 9系统中,如果进程启动后需要重新调整优先级,可以使用renice命令。该命令在重新指定进程运行优先级时,需要指定进程的进程号PID,而不是进程名,因为在系统中可能存在多个同名进程在运行。
  • 622. 9.2 进程管理 9.2.2 控制进程的优先级renice命令的使用格式如下: renice priority 进程号 或 renice [选项] priority 该命令常用参数及含义如下表所示。renice命令参数及含义参 数含 义-u usr_name调整用户usr_name启动的所有进程的优先级-g grp_name调整组grp_name中所有用户执行的进程的优先级
  • 623. 9.2 进程管理 9.2.2 控制进程的优先级其中参数priority表示优先级,取值范围为-20~19。该命令能以指定的优先级priority重新设置由进程号指定的进程的优先级。需要注意的是renice与nice命令不同,在重设进程优先级时,不需要在优先级前使用连字符“-”。例如,重设上例中进程号2710对应的vim进程的优先级,可以在终端提示符下使用如下的命令: [root@myhost root]# renice -10 2710 ←优先级重设为-10
  • 624. 9.2 进程管理 9.2.2 控制进程的优先级2. 图形工具 在“系统监视器”的主窗口中,选定需要调整优先级的进程并右击,在弹出的快捷菜单中选择“改变优先级”选项,如图下所示。选取快捷菜单中的“改变优先级”
  • 625. 9.2 进程管理 9.2.2 控制进程的优先级在弹出的如下图所示的“改变优先级”对话框中,拖动“nice值”滑块,调整优先级,然后单击“改变优先级”按钮,即可改变其优先级。“改变优先级”窗口
  • 626. 9.2 进程管理 9.2.3 向进程发送信号9.2.3 向进程发送信号 在Linux系统中可以通过工具向系统中正在运行的进程发送终止、暂停、继续执行等信号。统Windows系统一样,Linux系统中的进程也会因为某些原因而陷入僵死状态,所谓“僵死”就是由于进程在运行的过程中出错或是其他不可预知的原因,而被非正常终止,但是不能及时释放占用的系统资源,此时在使用ps -aux命令时可以看到该进程的状态标识为“Z”,即僵死状态。系统管理员可以通过发送终止信号SIGKILL的方式来清除该僵死进程,以释放被浪费的进程号等系统资源。 在RedHat Linux 9中提供了kill和killall两个工具向系统进程发送信号。kill用于向进程号指定的进程发送信号,以区别系统中多个同名进程。如果希望同时向多个同名进程发送信号,就可以使用killall工具。kill的使用格式如下:
  • 627. 9.2 进程管理 9.2.3 向进程发送信号kill [选项] 进程号 该命令的常用参数及含义如下表所示。kill命令参数及含义参 数含 义-l列出kill命令可以发送的信号-s signum 或 -signum向指定的进程发送信号编号signum指定的信号-s signame 或 -signame向指定的进程发送信号名signame指定的信号-signum向指定的进程发送信号编号signum指定的信号
  • 628. 9.2 进程管理 9.2.3 向进程发送信号kill可以向进程发送的信号可以使用kill -l命令列出,如下图所示。kill支持的信号
  • 629. 9.2 进程管理 9.2.3 向进程发送信号killall的使用格式如下: killall [选项] 进程名 该命令的常用参数及含义如下表所示。kill命令参数及含义参 数含 义-l列出killall命令可以发送的信号-e精确匹配长进程名-g杀死属于该进程组的进程-i交互方式,在杀死进程之前征求用户确认-v报告信号是否成功发送
  • 630. 9.2 进程管理 9.2.3 向进程发送信号killall向进程发送的信号同kill命令。 例9.1 当前系统中存在一个vim进程(进程号为12153),现使用kill命令向其发送SIGKILL信号,结束其运行。在终端提示符下执行如下的命令,然后使用ps aux来查看结果,如下图所示: [root@myhost root]# kill -9 12153kill命令结果
  • 631. 9.2 进程管理 9.2.3 向进程发送信号例9.2 结束当前系统中的多个vim进程。 可以在终端提示符下使用如下的命令: [root@myhost root]# killall -9 vim 执行结果如下图所示。终止多个同名进程
  • 632. 9.2 进程管理 9.2.3 向进程发送信号注意:如果kill和killall没有指定信号,默认发送SIGKILL(信号编号为9)信号。 另外,当某个守护进程被重新配置或修改后,可以使用kill命令向其发送HUP信号来重启该守护进程,以便重新加载修改后的配置文件。例如,要重启xinetd(进程号为2178),可以在终端提示符下使用如下的命令: [root@myhost root]# kill -HUP 2178
  • 633. 9.2 进程管理 9.2.4 Linux的定时任务9.2.4 Linux的定时任务 在Linux系统中可以指定时间段,也可以在指定的日期或系统平均负载低于设置量的时候自动运行任务。系统管理员可以使用定时任务来执行定期备份、监控系统或运行定制脚本等。在许多Linux系统中,都随系统带有自动化定制任务工具cron、at和batch。本节着重介绍cron和at工具。 1. cron工具 cron工具是一个可以根据指定的时间、日期、月份和星期的组合来自动重复执行任务的工具。在Linux系统中cron工具以守护进程crond的方式存在,常驻系统。
  • 634. 9.2 进程管理 9.2.4 Linux的定时任务在使用cron的定时任务(调度)功能之前,必须确定系统是否已经安装软件包vixie-cron.rpm。可以在终端提示符下使用rpm -qa vixie-cron命令查看系统是否已经安装该软件包。如果系统给出如下图的信息表示已经成功安装。确认是否安装vixie-cron软件包
  • 635. 9.2 进程管理 9.2.4 Linux的定时任务Linux系统在默认的情况下,crond守护进程是启动的,如果需要查看当前时刻crond守护进程是否处于运行状态,可以在终端提示符下使用如下的命令,命令返回的crond进程状态,如下图所示。 [root@myhost root]# service crond status查看crond进程状态
  • 636. 9.2 进程管理 9.2.4 Linux的定时任务1) crond主配置文件 crond守护进程有一个主配置文件/etc/crontab,其基本内容如下图所示。/etc/crontab文件内容
  • 637. 9.2 进程管理 9.2.4 Linux的定时任务crontab文件的前4行用于设置crond进程调度任务时的环境变量。SHELL变量的值用于指明任务中命令或脚本解释使用的shell;PATH变量的值用于指明任务中所包含的命令搜索的路径;MAILTO变量定义crond进程调度任务时的输出被投递给的邮箱用户;HOME变量用来设置在执行命令或脚本时使用的主目录。 第一个“run-parts”行后面的部分是任务行,每行代表crond进程调度的一项任务,其语法是如下图所示。crontab文件语法
  • 638. 9.2 进程管理 9.2.4 Linux的定时任务crontab文件各字段含义如下表所示,其中“*”表示任意有效值。crontab文件字段及含义字 段含 义取值范围minute每小时中的第几分钟执行任务0~59hour每日的第几小时执行任务0~23day每月的第几天执行任务1~31month每年的第几月执行任务1~12或是英文月份缩写,例如Jan、Feb等dayofweek每周的第几天执行任务0~6,其中0代表周日,也可以是英文的星期缩写,例如Sun、Mon等username指定由哪个用户来执行任务用户名command要执行的命令名称及参数命令名及参数
  • 639. 9.2 进程管理 9.2.4 Linux的定时任务2) 设置定时任务 使用crond实现定时任务的方法有两种,一种就是在其主配置文件中添加调度语句;另一种则无需增加主配置文件内容,只需要适当地修改crontab文件。 例如,需要Linux系统在每天的12点执行一个名为my_echo.sh的脚本,进行系统备份,可以使用如下两种方法: 方法一: 将my_echo.sh保存在/usr/local/sbin中,设置其可执行属性,然后在crond的主配置文件中添加如下的行: 0 12 * * * root /usr/local/sbin/my_echo.sh
  • 640. 9.2 进程管理 9.2.4 Linux的定时任务方法二: 由于在crontab文件原有的调度语句中,command字段使用run-parts脚本来执行/etc/目录下子目录cron.hourly、cron.daily、cron.weekly和cron.monthly中的脚本文件。因此可以将my_echo.sh脚本保存到/etc/cron.daily目录中,设置可执行属性,然后将“/etc/cron.daily”所在的行,改成如下的语句: 0 12 * * * root run-parts /etc/cron.daily 2. at工具 at工具用于在指定的时刻执行定时任务。在Linux系统中at工具以守护进程atd的方式存在,常驻系统。at命令可以向atd任务队列中添加任务,也可以查看、删除atd队列中的任务。at命令格式如下: at [time] [选项]
  • 641. 9.2 进程管理 9.2.4 Linux的定时任务time即为指定的时间,格式为hh:mm,其中的hh为小时,mm为分钟。可以使用24小时制,也可以使用12小时制表示,如使用12小时制,可以在时间后使用am表示上午,pm表示下午。下表所示为at命令的常用参数及含义。at命令参数及含义参 数含 义-l列出任务队列中的尚未执行的任务,也可使用atq命令-d删除任务队列中尚未执行的任务,也可使用atrm命令-f w_file将w_file文件内容作为任务-q query将任务添加到特定的队列query中-V打印at版本号
  • 642. 9.2 进程管理 9.2.4 Linux的定时任务1)从标准输入获得任务 例如,由于系统管理需要,希望在上午8:50执行一个定时任务。可以在终端提示符下输入如下的命令,然后按照如下图所示的操作。 [root@myhost root]# at 8:50amat操作
  • 643. 9.2 进程管理 9.2.4 Linux的定时任务在at 8:50am命令输入后,系统给出“at>”提示符,在其后输入任务的内容。输入完毕后,使用Ctrl+D结束at提示符。此时该任务被加入atd的任务等待队列,可以使用at -l或atq命令查看,如下图所示。查看atd队列第一列是任务号,第二列是任务执行的时间,a表示任务所在的队列号,root表示执行任务的用户。
  • 644. 9.2 进程管理 9.2.4 Linux的定时任务2)从文件中获取任务 从文件中获取atd任务的方法有两种:一种是使用输入重定向,另一种是使用at工具提供的-f参数。对于上例中的任务内容,可以将at提示符后面除EOF所在的行写入/root/work文件中,然后在终端提示符下执行如下命令: [root@myhost root]# at 8:50 < work 或 [root@myhost root]# at 8:50 -f work 结果如下图所示。使用Ctrol+D结束at提示符。
  • 645. 9.3 Linux服务配置 9.3.1 守护进程的工作原理和方式在Linux系统中,提供给用户的应用服务是通过守护进程实现的。所谓守护进程,就是那些在后台运行的进程,有时也称为服务。这些进程为用户提供特定的服务,如超级服务器守护进程Xinetd。守护进程独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。常常在系统引导装入时启动,在系统关闭时终止。选择运行哪些守护进程,要根据具体需求决定。 9.3.1 守护进程的工作原理和方式 1. 守护进程的工作原理 在C/S模式下,服务器守护进程在一个特定的端口上进行监听(Listen),等待客户连接,连接成功后服务器和客户端通过端口进行数据通信。守护进程的工作就是打开一个端口,并且监听进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接请求,而服务器守护进程继续监听其他的服务请求。
  • 646. 9.3 Linux服务配置 9.3.1 守护进程的工作原理和方式2. 守护进程的工作模式 服务器守护进程的工作模式,包括独立工作模式stand-alone和基于Internet超级服务器Xinetd的工作模式。 1)独立工作模式stand-alone 独立运行的守护进程由init进程负责管理,init进程通过执行/etc/rc.d/init.d/目录下脚本来启动独立工作模式下的守护进程。系统服务都是独立运行的守护进程,其中包括系统日志守护进程syslogd和定时管理进程crond等。运行独立的守护进程的工作方式称作stand-alone模式。Stand-alone模式是Unix传统的C/S结构的访问模式。
  • 647. 9.3 Linux服务配置 9.3.1 守护进程的工作原理和方式stand-alone模式原理如下图所示。stand-alone工作模式
  • 648. 9.3 Linux服务配置 9.3.1 守护进程的工作原理和方式独立工作模式适合Apache服务器、邮件服务器Sendmail、域名服务器named等负载较大的服务器。工作在这种模式下的守护进程,在监听到客户端的连接请求后,将预先创建服务程序,响应客户端的数据请求,而守护进程则继续监听新的客户请求,从而满足负载较重的工作环境。 2)基于超级服务器Xinetd模式 对于stand-alone模式下的守护进程,系统提供的每一种服务,都必须运行一个用于监听相应端口的守护进程,以便在客户端通过这些端口发送连接请求时,能及时响应这些请求。这些用于监听的守护进程,其功能模块基本相同,这大大增加了资源开销。为了解决这个问题,Linux引入了Internet超级服务器。在RedHat Linux 9中使用的Internet超级服务器守护进程是Xinted。
  • 649. 9.3 Linux服务配置 9.3.1 守护进程的工作原理和方式同stand-alone模式相比,Xinted守护进程能够同时监听多个指定的端口,在接受客户请求时,能够根据用户请求的端口不同,启动不同的网络服务进程来处理这些客户请求。可以把Xinted看做一个管理启动服务的管理服务器,它决定把一个客户请求交给哪个服务程序处理,然后启动相应的守护进程。Xinted模式工作原理如下图所示。Xinetd工作模式
  • 650. 9.3 Linux服务配置 9.3.1 守护进程的工作原理和方式工作在Xinetd模式下的服务进程,系统无需为每个服务进程运行相应的用于监听连接请求的守护进程,运行单个Xinetd就可以同时监听所有服务端口,这样就降低了系统开销。但是对于访问量大、经常出现并发访问的服务,Xinetd就要频繁启动对应的网络服务进程,反而会导致系统性能下降。
  • 651. 9.3 Linux服务配置 9.3.2 守护进程管理工具9.3.2 守护进程管理工具 在进程系统管理的时候,需要及时获取系统守护进程的状况,并且根据需要及时结束或启动守护进程。RedHat Linux 9提供了命令行工具pstree、ntsysv、chkconfig和图形工具redhat-config-services 4种不同的守护进程管理工具。这些工具类似于Microsoft Windows中的服务管理。 1. 查看进程树pstree 在RedHat Linux 9系统中,可以使用pstree命令来查看系统的进程树,通过进程在系统进程树中的结点位置,可以判断进程的工作模式。pstree命令用法如下: pstree [选项]
  • 652. 9.3 Linux服务配置 9.3.2 守护进程管理工具该命令常用的参数及含义如下表所示。pstree命令参数及含义参 数含 义-a显示进程的完成命令及参数-c精简模式显示,不列出进程号和参数-h高亮度显示当前进程-p显示进程号
  • 653. 9.3 Linux服务配置 9.3.2 守护进程管理工具在pstree显示的结果中,以stand-alone模式工作的进程直接作为init进程的子结点,如syslogd进程等;基于超级服务器Xinetd模式运行的进程则作为Xinetd进程的参数给出,如telnet进程等,如下图所示。pstree执行
  • 654. 9.3 Linux服务配置 9.3.2 守护进程管理工具2. ntsysv工具 ntsysv工具给用户提供了一个简单的界面,用于管理随系统启动的守护进程。ntsysv工具还提供了配置不同运行级别中守护进程随系统启动或终止的功能。默认情况下,ntsysv只配置当前运行级别。ntsysv命令的使用格式如下: ntsysv [--level runlevel] 其中参数--level runlevel用于指定特定的运行级别。例如,执行下列命令: [root@myhost root]# ntsysv --level 345 表示配置运行级别3、4、和5。
  • 655. 9.3 Linux服务配置 9.3.2 守护进程管理工具ntsysv命令的工作界面如右图所示。 ntsysv的工作界面提供了一个列表框、“确定”按钮和“取消”按钮。使用Tab键可以在列表框和按钮之间切换。当当前焦点在列表框时,可以使用光标键来上下查看列表,需要时可以使用空格键来标记指定的服务,若服务前面显示“*”,表示该服务被标记为启动,按下F1键时,可以弹出每项服务的简短描述。当前焦点在“确定”或“取消”按钮时,可以使用空格键来激活按钮。ntsysv运行界面
  • 656. 9.3 Linux服务配置 9.3.2 守护进程管理工具3. chkconfig工具 chkconfig命令也可以用来激活和解除服务的随系统启动。chkconfig命令提供了一个纯文本的模式,用于显示系统当前服务的运行和终止情况。chkconfig命令的格式如下: chkconfig --level runlevel [选项] 该命令常用的参数及含义如下表所示。chkconfig命令参数及含义参 数含 义--level runlevel指定运行级别,runlevel即为运行级别--list显示当前系统的守护进程的运行状况--add d_name添加chkconfig管理的守护进程--del d_name删除chkconfig管理的守护进程
  • 657. 9.3 Linux服务配置 9.3.2 守护进程管理工具chkconfig --list用于显示系统服务列表,并显示这些服务在运行级别0到6中是被设置成启动(on)还是停止(off)。chkconfig还能用来设置某一服务在某一指定的运行级别内的启动和停止。例如,要在运行级别3、4、5中停运snmp服务,然后在查看系统中的服务运行情况,可以在终端提示符中使用下面的命令: [root@myhost root]# chkconfig --level 345 snmp off [root@myhost root]# chkconfig --list 其执行结果如下图所示。
  • 658. 9.3 Linux服务配置 9.3.2 守护进程管理工具4. 图形工具redhat-config-services 除了上面介绍的服务管理工具以外,RedHat Linux 9中还提供了一个图形化的守护进程管理工具,这就是redhat-config-services。单击“主菜单”→“系统设置”→“服务器设置”→“服务”菜单项,或是在命令提示符下输入命令“redhat-config-services”,即可打开如右图所示的“服务设置”窗口。其中显示了对每项服务的描述以及每项服务是否在引导时启动(运行级别3、4、5),并允许用户启动、停止或重新启动/etc/rc.d/init.d中的哪些SysV服务以及哪些xinetd服务。“服务设置”窗口
  • 659. 9.3 Linux服务配置 9.3.2 守护进程管理工具“服务设置”窗口列出了/etc/rc.d/init.d中的服务和由Xinetd控制的服务。点击左侧列表中的服务名显示该服务的简短描述以及它的服务状态。如果这个服务不是Xinetd服务,状态窗口会显示该服务目前是否在运行。如果该服务被Xinetd 所控制,状态窗口会显示“Xinetd服务”这个短语。 要立即启动、停止或重新启动某项服务,应首先从列表中选择该项服务,然后单击工具栏上的“启动”、“停止”、“重启”按钮,或单击“行动”菜单项中的相应选项。如果该服务是一个Xinetd服务,行动按钮会被禁用,因为它们不能被单独启动或停止。 如果用户通过选择或取消选择服务名旁的复选箱来启用或禁用了Xinetd服务,则必须从下拉菜单中选择“文件”→“保存改变”来重新启动Xinetd,并立即启用或禁用被改变的Xinetd 服务。
  • 660. Linux操作系统实用教程 第九章 完
  • 661. Linux操作系统实用教程第10章Linux系统安全 10.1 常见的攻击类型 10.2 Linux日志管理 10.3 Linux用户安全 10.4 访问控制与身份认证 10.5 Linux网络服务安全
  • 662. 第10章Linux系统安全 本章概述 Linux操作系统以安全性和稳定性著称,许多大型门户网站都以Linux作为服务器操作系统。然而随着黑客攻击技术的发展,系统安全防范工作仍然需要系统管理员的高度重视。在本章,首先介绍了几种常见的攻击类型以及Linux系统中帮助管理员发现攻击的重要工具——系统日志的管理,然后阐述了Linux系统的账号安全、网络安全等,并讲述如何使用snort进行入侵检测。
  • 663. 10.1 常见的攻击类型 常见的攻击方式包括端口扫描、嗅探、种植木马、传播病毒等。 1. 端口扫描 在网络技术中,端口(Port)通常有两种含义,一是物理意义上的端口,即调制解调器、网络集线器、交换机、路由器中用于连接其他网络设备的接口,如RJ-45端口、SC端口等;二是逻辑意义上的端口,即指TCP/IP协议中的端口,用于承载特定的网络服务,其编号的范围为0~65535,例如,用于承载Web服务的是80端口,用于承载FTP服务的是21端口和20端口等。在网络技术中,每个端口承载的网络服务是特定的,因此可以根据端口的开放情况来判断当前系统中开启的服务。
  • 664. 10.1 常见的攻击类型 扫描器就是通过依次试探远程主机TCP端口,获取目标主机的响应,并记录目标主机的响应。根据这些响应的信息可以搜集到很多关于目标主机的有用信息,包括该主机是否支持匿名登录以及提供某种服务的软件包的版本等。这些信息可以直接或间接地帮助攻击者了解目标主机可能存在的安全问题。 端口扫描器并不是一个直接攻击网络漏洞的程序,但是它能够帮助攻击者发现目标主机的某些内在安全问题。目前常用的端口扫描技术有TCP connect扫描、TCP SYN扫描、TCP FIN扫描、IP段扫描、TCP反向ident扫描以及TCP返回攻击等。通常扫描器应该具备如下的3项功能: 发现一个主机或网络的能力。 发现远程主机后,有获取该主机正在运行的服务的能力。 通过测试远程主机上正在运行的服务,发现漏洞的能力。
  • 665. 10.1 常见的攻击类型 2. 嗅探 嗅探技术是一种重要的网络安全攻防技术,攻击者可以通过嗅探技术以非常隐蔽的方式攫取网络中的大量敏感信息,与主动扫描相比,嗅探更加难以被发觉,也更加容易操作和实现。对于网络管理员来说,借助嗅探技术可以对网络活动进行实时监控,发现网络中的各种攻击行为。 嗅探操作的成功实施是因为以太网的共享式特性决定的。由于以太网是基于广播方式传输数据的,所有的物理信号都会被传送到每一个网络主机结点,而且以太网中的主机网卡允许设置成混杂接收模式,在这种模式下,无论监听到的数据帧的目的地址如何,网卡都可以予以接收。更重要的是,在TCP/IP协议栈中网络信息的传递大多是以明文传输的,这些信息中往往包含了大量的敏感信息,比如邮箱、FTP或telnet的账号和口令等,因此使用嗅探的方法可以获取这些敏感信息。
  • 666. 10.1 常见的攻击类型 嗅探器最初是作为网络管理员检测网络通信的工具出现的,它既可以是软件的,也可以是硬件设备。软件嗅探器使用方便,可以针对不同的操作系统使用不同的软件嗅探器,而且很多软件嗅探器都是免费的。常用的嗅探器有Tcpdump/Windump、Sniffit、Ettercap和Snarp等。 处于网络中的主机,如果发现网络出现了数据包丢失率很高或网络带宽长期被网络中的某台主机占用,就应该怀疑网络中是否存在嗅探器。 3. 木马 木马又称特洛伊木马,是一种恶意计算机程序,长期驻留在目标计算机中,可以随系统启动并且秘密开放一个甚至多个数据传输通道的远程控制程序。木马程序一般由客户端(Client)和服务器端(Server)两部分组成,客户端也称为控制端,一般位于入侵者计算机中,服务器端则一般位于用户计算机中。木马本身不带伤害性,也没有感染能力,所以木马不是病毒。
  • 667. 10.1 常见的攻击类型 木马通常具有隐蔽性和非授权性的特点。所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端计算机即使发现感染了木马,也不能确定其具体位置。所谓非授权性是指一旦客户端与服务端连接后,客户端将享有服务端的大部分操作权限,包括修改文件、修改注册表、控制鼠标、键盘等,这些权力并不是服务端赋予的,而是通过木马程序窃取的。 入侵者一般使用木马来监视监视被入侵者或盗取被入侵者的密码、敏感数据等。 4. 病毒 虽然Linux系统的病毒并不像Windows系统那样数量繁多,但是威胁Linux平台的病毒同样存在,如Klez、Lion.worm、Morris.worm、Slapper、Scalper、Linux.Svat和BoxPoison病毒等。Linux下的病毒可以如下分类:
  • 668. 10.1 常见的攻击类型 1)蠕虫(worm)病毒 1988年Morris蠕虫爆发后,Eugene H. Spafford给出了蠕虫的定义:“计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上”。和其他种类的病毒相比,在Linux平台下最为猖獗的就是蠕虫病毒,如利用系统漏洞进行传播的ramen、lion、Slapper等,都曾给Linux系统用户造成了巨大的损失。随着Linux系统应用越广泛,蠕虫的传播程度和破坏能力也会随之增加。 2)可执行文件型病毒 可执行文件型病毒是指能够感染可执行文件的病毒,如Lindose。这种病毒大部分都只是企图以感染其他主机程序的方式进行自我复制。
  • 669. 10.1 常见的攻击类型 3)脚本病毒 目前出现比较多的是使用shell脚本语言编写的病毒。此类病毒编写较为简单,但是破坏力同样惊人。而一个十数行的shell脚本就可以在短时间内遍历整个硬盘中的所有脚本文件,并进行感染。且此类病毒还具有编写简单的特点。 4) 后门程序 后门程序一般是指那些绕过安全性控制而获取程序或系统访问权的程序。在广义的病毒定义概念中,后门也已经纳入了病毒的范畴。从增加系统超级用户账号的简单后门,到利用系统服务加载,共享库文件注册,rootkit工具包,甚至装载内核模块(LKM),Linux平台下的后门技术发展非常成熟,其隐蔽性强,难以清除。
  • 670. 10.2 Linux日志管理 10.2.1 Linux日志系统简介在任何操作系统中,日志系统对于系统安全来说都是非常重要的,它记录了系统每天发生的各种各样的事件,包括哪些用户曾经或正在使用系统,可以通过日志来检查系统和应用程序发生错误的原因。日志还能在系统受到黑客攻击后,记录下攻击者留下的痕迹,通过这些痕迹,系统管理员可以发现黑客攻击的手段及特点,从而能够进行相应的处理,为抵御下一次攻击做好准备。日志主要的功能有审计和监测,另外,利用日志还可以实时监测系统状态,监测和追踪侵入者等。 10.2.1 Linux日志系统简介 在Linux系统中利用日志可以审计和检测系统出现的错误,侦查和追踪入侵,并协助系统进行恢复和排除故障。在RedHat Linux 9系统中,日志功能通常是由syslog(对应syslogd守护进程)和klog(对应klogd守护进程)日志系统来完成,syslog记录常规系统日志,而klog是针对内核活动的日志。
  • 671. 10.2 Linux日志管理 10.2.1 Linux日志系统简介Linux日志是按照类别保存在日志文件中的,一般保存在/var/log目录下,绝大部分只有系统管理员才能够查看。 如下表列出了/var/log目录下的日志文件及其功能,其中“*”表示通配符。/var/log目录下的日志文件及其功能日志文件功能说明cups与打印服务相关的日志文件目录gdm存放GNOME启动日志文件目录httpd存放Web服务器日志文件的目录news存放网络新闻组服务相关的日志文件目录squid存放squid代理服务日志文件的目录secure*与安全连接相关的日志文件scrollkeeper.log用于GUI中文档的日志文件
  • 672. 10.2 Linux日志管理 10.2.1 Linux日志系统简介这些日志文件可以分为3类: 1)连接时间日志 由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp中,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录了到系统。boot.log*记录了与启动和停止守护进程相关的日志messages*记录系统的一般性日志rpmpkgs记录当前已安装的RPM软件包lastlog记录最近登录的系统用户dmesg记录了与系统启动相关的引导信息wtmp记录用户登录系统的状况cron*记录crond进程的日志文件
  • 673. 10.2 Linux日志管理 10.2.1 Linux日志系统简介2)进程统计 由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct,分别位于/usr/adm/pactt和/usr/lib/acct/startup)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。 3)错误日志 由syslogd(8)守护进程执行,各种系统守护进程、用户程序和内核通过syslogd(8)守护进程向文件/var/log/messages报告值得注意的事件。
  • 674. 10.2 Linux日志管理 10.2.2 配置系统日志10.2.2 配置系统日志 几乎所有的类UNIX系统(如Linux)系统都采用syslog进行系统日志的管理与配置。任何程序可以通过syslog记录事件,并且可以将记录的系统事件写入到一个文件或设备,或给用户发送一个邮件。 syslog有两个重要的文件,一个是守护进程/sbin/syslogd,另一个是syslogd的配置文件/etc/ /syslog.conf。通常多数的syslog信息被写到/var/log目录下的日志文件message.*中。一个典型的syslog.conf记录包括生成日志的程序名称、日志的设备名、日志的优先等级以及一段文本信息。 1. 启动syslog日志进程 启动syslog日志守护进程syslogd的命令格式如下: /sbin/syslogd [选项]
  • 675. 10.2 Linux日志管理 10.2.2 配置系统日志该命令常用的参数及含义如下表所示。syslogd命令参数及含义参 数含 义-a socket添加日志监听的用户定义的套接口-d使用调试模式-f conf_file指定syslogd的配置文件-h记录远程主机返回的日志-l hostlist使用指定的简单主机名记录日志的主机名域-p socket使用指定的套接口启动syslogd进程-r接收并记录网络日志
  • 676. 10.2 Linux日志管理 10.2.2 配置系统日志重启syslogd日志守护进程,可以在终端提示符下输入如下的命令: [root@myhost root]# service syslogd restart 或 [root@myhost root]# kill -HUP `cat /var/run/syslogd.pid` 说明:在该命令中,/var/run/syslogd.pid文件存放了当前syslogd守护进程的pid,整个命令的执行步骤是,先使用cat /var/run/syslogd.pid获取当前系统的syslogd守护进程的pid,然后使用kill命令传递-HUP信号给该pid指定的进程,对其进行重启操作。
  • 677. 10.2 Linux日志管理 10.2.2 配置系统日志2. syslogd的主配置文件 系统日志syslog的主配置文件是/etc/syslog.conf。syslog记录的内容及其记录存放的日志文件由该文件指定,可以通过修改syslog.conf文件的方法来配置syslogd。该文件的基本语法格式如下: 设备(facility).优先级(priority) 动作 1)日志设备facility 日志设备facility表示日志消息的来源,指明了发出消息的设备或程序,主要设备及说明如下表所示。
  • 678. 10.2 Linux日志管理 10.2.2 配置系统日志syslog常用的日志设备及说明设 备说 明kern内核日志uucpuucp系统日志user用户程序日志news新闻组服务日志mail邮件系统日志daemon系统守护进程日志syslogsyslog守护进程日志auth安全管理日志lpr打印服务日志croncron守护进程日志authpriv私有授权系统日志ftpftp守护进程日志local0~local7本地日志
  • 679. 10.2 Linux日志管理 10.2.2 配置系统日志2)优先级priority 日志优先级priority表明日志消息的紧急程度。如果在syslog.conf文件中的一行出现多对“设备.优先级”,各项之间使用分号隔开。syslog日志系统中常用的日志优先级如下表所示,其中紧急程度由上到下逐级递减。syslog常用的日志优先级日志优先级说 明emerge发生严重事件,并可能导致系统崩溃alert严重错误,将导致程序关闭,并可能影响其他程序crit错误消息,可能导致程序关闭err程序中存在错误warning程序中存在潜在问题的警告notice程序运行中出现了不正常的现象,需要检查info关于程序当前状态的报告信息debug编程人员或测试人员使用的调试信息
  • 680. 10.2 Linux日志管理 10.2.2 配置系统日志其中紧急程度遵循向上匹配的原则。例如,“err”优先级表示所有高于或等于err等级的日志消息都将被处理,即所处理的日志消息包括“err”、“crit”、“alert”和“emerge”等级的消息。如果只希望精确匹配某个确定的紧急程序,而不使用向上匹配原则,则需要使用等号进行设定。例如,“kern.=alert”表示只对内核产生的alert日志信息进行处理。 在syslog.conf文件的配置行中,也支持通配符“*”和“none”,其中“*”表示匹配全部,“none”表示全部忽略。例如,记录守护进程产生的所有日志消息可以使用“daemon.*”,而忽略内核产生的所有日志消息则可以使用“kern.none”。 3)动作 syslog.conf文件配置行中的动作,用于设定syslogd如何处理对应的日志消息。处理的办法,可以设定将日志信息写入文件或显示到终端设备上,或者通过邮件直接发送给指定的用户,或者发送到另一台远程主机的syslog系统。
  • 681. 10.2 Linux日志管理 10.2.2 配置系统日志syslogd可使用的动作及说明如下表所示。syslogd常用的动作及说明动 作说 明@host_name将日志消息转发到host_name指定的远程主机的syslog程序@ip_addr将日志消息转发到ip_addr指定的远程主机的syslog程序*将日志消息转发到系统中所有用户的终端/dev/console将日志消息转发到本地主机的终端/dev/lpr将日志消息转发到打印机打印| program通过管道将日志消息转发给某个程序file_name将日志消息写入file_name指定的文件(文件使用绝对路径)user_list将日志转发给用户列表user_list指定的用户,用户名之间使用逗号隔开
  • 682. 10.2 Linux日志管理 10.2.2 配置系统日志4)syslog.conf文件的默认设置 /etc/syslog.conf文件的默认设置如下图所示。syslog.conf默认设置其中,行“*.info;mail.none;authpriv.none;cron.none /var/log/messages”表示匹配mail、authpriv、cron等多个设备。
  • 683. 10.2 Linux日志管理 10.2.2 配置系统日志3. 配置syslogd 例如,将一般性的日志消息保存到/var/log/messages文件中,但不包括邮件、新闻组、本地安全认证、守护进程以及cron程序产生的日志消息,可以配置如下图所示的行。配置messages文件日志内容
  • 684. 10.2 Linux日志管理 10.2.2 配置系统日志又如将与打印机相关的日志信息发送到infosec.aust.edu.cn主机上,由该主机的syslog日志系统记录,可以配置如下图所示的行。配置打印机日志注意:syslog.conf文件修改后,需要重启syslogd守护进程才能应用新的配置。
  • 685. 10.2 Linux日志管理 10.2.2 配置系统日志4. 测试syslog.conf文件 syslog.conf文件修改后,使用者按照syslog.conf文件中的设置,使用logger命令发出指定类型的日志消息,检测配置文件是否正确。logger命令的格式如下: logger [选项] msg 该命令常用的参数及含义如下表所示。logger常用的参数及含义参 数含 义-p fac.prlogger命令发送消息时使用fac.pri指定的设备和优先级-f conf_filelogger命令使用conf_file指定的syslogd配置文件-i记录发送消息的logger程序的pid-s将logger程序发送的日志消息送往标准错误输出-u socket将logger程序发送的日志投递到指定的socket套接口-d使用UDP协议传输日志消息
  • 686. 10.2 Linux日志管理 10.2.2 配置系统日志例10-1 测试syslog.conf文件中“*.emerg *”部分。 在终端提示符下使用下的命令。 [root@myhost root]# logger -p kern.emerg “this is syslog.conf test” 命令返回如下图所示的结果。logger发送日志消息
  • 687. 10.2 Linux日志管理 10.2.2 配置系统日志5. 清空日志文件 随着系统的运行时间不断延长,日志文件也会越来越大,从而消耗大量磁盘空间。如果通过先删除已有的日志文件,再重建同名日志文件的方法来清空日志,就需要先停止创建日志文件的服务进程,从而可能导致服务进程出错。此时,可以通过echo命令在不必停止服务进程的情况下清空日志文件。具体的方法是在终端提示符选下输入如下命令: [root@myhost root]# echo “” > log_file 其中log_file代表需要清空的日志文件。例如,要清空日志文件/var/log/messages,可以使用如下命令: [root@myhost root]# echo “” > /var/log/messages
  • 688. 10.2 Linux日志管理 10.2.3日志系统10.2.3日志系统 Red Hat Linux 9系统中提供了查看日志的命令行工具和图形工具,用户可以使用这些工具查看Linux的系统日志。 1.使用命令查看日志 /var/log/boot.log文件记录了与启动和终止守护进程相关的信息。/var/log/messages文件记录了系统除邮件、新闻组、本地安全认证、守护进程以及cron程序日志以外几乎全部的日志信息。这些日志文件时使用文本方式记录的,所以可以使用查看文本文件的工具来查看,如cat、more、tail和less等。
  • 689. 10.2 Linux日志管理 10.2.3日志系统下图为使用tail命令查看messages日志的结果。messages日志内容在messages日志文件中,每行记录一个日志事件,每个事件包括如下的字段: 时间标签:表示消息发出的日期和时间。
  • 690. 10.2 Linux日志管理 10.2.3日志系统主机名:表示生成消息的计算机的名字。如果只有一台计算机,主机名就可能没有必要了,但是,如果在网络环境中使用syslog,那么可以把不同主机的日志消息发送到一台服务器上集中处理。 生成消息的子系统的名字:可以是“kernel”,表示消息来自内核,或者是进程的名字,表示发出消息的程序的名字。 消息:即是日志内容。 utmp和wtmp日志文件是多数Linux日志系统的关键文件,它保存了用户登录和注销的记录。有关当前登录用户的信息记录在utmp文件中,登录、注销、数据交换、关机以及重启等信息都记录在wtmp文件中。所有的记录都包含时间戳(即文件的创建、修改和访问时间)。在Linux系统中wtmp和utmp是二进制文件,可以使用last命令来查看wtmp文件内容。其使用格式如下: last [选项]
  • 691. 10.2 Linux日志管理 10.2.3日志系统该命令常用的参数及含义如下表所示。last命令参数及含义参 数含 义-R省略主机名字段-n只显示前n条信息username显示username指定的用户登录信息tty只显示从tty终端登录的信息
  • 692. 10.2 Linux日志管理 10.2.3日志系统例10-2 查看root近期登录的信息。 在终端提示符下执行如下的命令: [root@myhost root]# last -10 root 结果如下图所示last命令使用
  • 693. 10.2 Linux日志管理 10.2.3日志系统last命令查看的wtmp文件内容包括登录用户名、登录的终端、产生日志的主机网络地址、日志产生的时间、当前用户状态和时间戳6个字段。 who命令默认时报告当前登录的每个用户,查看的是utmp文件的信息,但也可以指明查看wtmp文件的信息。如下图所示为使用who命令查询utmp文件并报告当前登录的用户信息,默认输出包括用户名、终端类型、登录日期及远程主机。who查看utmp文件
  • 694. 10.2 Linux日志管理 10.2.3日志系统who命令还可以通过指定文件名的方法来查看wtmp日志文件的信息,如下图所示。who查看wtmp文件
  • 695. 10.2 Linux日志管理 10.2.3日志系统日志文件/var/log/dmesg存放了系统启动时内核产生的日志,记录了内核对硬件的配置过程。首先从BIOS开始,然后依次查找CPU、硬盘驱动器、PCI设备和通信端口,接下来启动分区上的文件系统,最后配置键盘和鼠标等其他设备。使用dmesg命令可以查看该文件的信息,如右图所示。 从上图可以看出在主机使用的内存容量为516MB,如果该机器实际安装的内存大于516MB,则可以从该日志中判断多余的内存没有被Linux系统识别。dmesg日志
  • 696. 10.2 Linux日志管理 10.2.3日志系统2.图形工具查看日志 在Red Hat Linux 9中提供了“系统日志”图形工具,用于查看系统日志,这些日志包括引导日志、Cron日志、内核启动日志等。单击“主菜单”→“系统工具”→“系统日志”菜单项,或在终端提示符下执行命令redhat-logviewer,都可以打开如下图所示的窗口。“系统日志”窗口
  • 697. 10.2 Linux日志管理 10.2.3日志系统可以在该窗口中的“过滤”文本框中输入关键字,然后单击“过滤器”按钮,来过滤日志文件中的内容。单击“重设”按钮,可以重新指定过虑关键字。 默认情况下,当前日志文件每隔30秒刷新一次,可以单击“文件”→“立即刷新”菜单项,则可以立即刷新当前屏幕上的显示信息。单击“编辑”→“首选项”菜单项,弹出如下图所示的“首选项”对话框,切换到“日志文件”选项卡,点击“刷新频率”的微调按钮可以调整日志文件的显示刷新率。
  • 698. 10.2 Linux日志管理 10.2.3日志系统如果希望指定所要查找的日志文件的位置,可以在列表中选择对应的行,然后选择“改变位置”按钮,在出现的“日志文件位置”对话框中,输入日志文件的新位置,或单击“浏览”按钮,从弹出的“选择日志文件”对话框中选择日志文件,即可改变日志文件的位置。“首选项”对话框
  • 699. 10.3 Linux用户安全 10.3.1 Linux账号安全Linux的用户安全包括账号安全和口令安全两个部分。 10.3.1 Linux账号安全 1. 删除多余账号 在Linux系统中默认添加的各种账号中,有很多是无用的,或者有部分账号因为没有启动该服务而成为多余账号,例如,如果不使用ssh服务器,那么sshd账号就是多余账号,如果不使用匿名的ftp服务,那么账号ftp即为多余。账号越多,系统越容易受到攻击。系统管理员应该在第一次使用系统时检查并删除不需要的账号。 在终端提示符下使用如下的命令即可删除多余的账号。 [root@myhost root]# userdel mail ←如果没有使用sendmail服务器,删除该用户 在没有开启相应的服务的时候,如下的账号都可以删除:adm、lp、sync、halt、mail、mailnull、games、news、sshd、gopher、uucp、ftp、operator、named等。
  • 700. 10.3 Linux用户安全 10.3.1 Linux账号安全2. root账号安全 在Linux系统中,所有的管理功能都能由root账号完成的,它是系统的超级用户。root账号能对系统的所有资源做最大限度的调整,还可以直接允许或禁用单个用户、一部分用户或所有用户对系统的访问。root账号还可以控制用户的访问权限以及用户存放文件的位置,可以控制用户能够访问的哪些系统资源,因此不能把root账号当作普通用户来使用。 在Linux系统中的/etc/securetty文件中包含了一组能够以root账号登录的终端名称。该文件的初始值仅允许本地虚拟控制台可以使用root登录,而不允许远程用户以root账号登录。虽然可以通过修改该文件的方法,允许root账号从远程主机登录,但是不建议这样做。而是先使用普通账号从远程登录Linux主机,然后再使用su命令升级为超级用户,当root账号使用完毕后,再使用exit命令注销。如果需要授权其他用户以root身份运行某些命令时可以使用sudo命令。
  • 701. 10.3 Linux用户安全 10.3.1 Linux账号安全该命令使用的基本格式如下: sudo 其中command_line为需要以root身份运行的命令行。在执行sudo授权时需要当前用户输入其口令,如下图所示。sudo用法
  • 702. 10.3 Linux用户安全 10.3.1 Linux账号安全需要注意的是,如果用户在离开时忘记从系统中注销,特别是root账号离开时忘记注销,会给系统带来不可预知的隐患。Linux系统可以控制系统在空闲时自动从shell中注销,/etc/profile文件中的“timeout”变量即为空闲的超时时间,例如: timeout = 600 表示用户在600秒内无操作后将自动注销。 3. 用户信息文件安全 在Linux系统中,用户的信息都被保存在/etc/passwd和/etc/shadow文件中,用户组的信息保存在/etc/group和/etc/gshadow文件中。为了防止攻击者偷窥用户和组信息,应该按如下方式设置这些文件的访问权限:
  • 703. 10.3 Linux用户安全 10.3.1 Linux账号安全[root@myhost root]# chmod 600 /etc/passwd [root@myhost root]# chmod 600 /etc/shadow [root@myhost root]# chmod 600 /etc/group [root@myhost root]# chmod 600 /etc/gshadow 为了防止非授权用户通过修改用户信息文件和用户组文件修改用户口令和组群资料,可以给这些文件添加不可更改的属性,这时可使用chattr命令,其格式如下: chattr [mode] -R file_name 其中,参数-R表示递归设置目录中所有文件的属性。mode是文件的属性,可以使用“+”表示添加某种属性,“-”表示取消某种属性,“=”表示具有某种属性。
  • 704. 10.3 Linux用户安全 10.3.1 Linux账号安全其可以设置的属性如下表所示。chattr常用的文件属性属 性说 明A不允许更新访问时间S同步更新文件D同步更新目录内容a仅允许追加更新d不允许清空文件i不允许修改文件内容
  • 705. 10.3 Linux用户安全 10.3.1 Linux账号安全例如,在终端提示符下输入如下的命令可以设置/etd/passwd文件、/etc/shadow文件、/etc/group文件和/etc/gshadow文件的不可修改属性。 [root@myhost root]# chattr +i /etc/passwd [root@myhost root]# chattr +i /etc/shadow [root@myhost root]# chattr +i /etc/group [root@myhost root]# chattr +i /etc/gshadow 4. 关于setuid属性 在Linux系统中,一些应用程序被设置了setuid属性。这些程序在运行时,能有效地将当前执行该程序的用户的uid改变成应用程序所有者的uid,使得应用程序进程在很大程度上拥有该程序所有者的特权。如果被设置了setuid属性的应用程序归root所有,那么该进程在运行时就会自动拥有超级用户的特权,即使该进程不是root用户启动的,如/usr/bin/passwd程序。
  • 706. 10.3 Linux用户安全 10.3.1 Linux账号安全由于具有setuid属性的程序在运行时能够拥有root账号,会给系统带来一定的安全隐患,因此应该尽可能减少应用程序设置setuid属性。做到除非必要,否则尽量不要给应用程序设置setuid属性。系统管理员,可以使用find命令查找系统中所有被设置了setuid属性的应用程序。在终端提示符下,输入如下的find命令,搜索结果如右图所示。 [root@myhost root]# find / -perm -4000 对于非必要的被设置了setuid属性的应用程序,可以在终端提示符下使用chmod命令将其除去,例如除去/usr/bin/rcp程序setuid属性的命令如下: [root@myhost root]# chmod -s /usr/bin/rcp设置了setuid属性的应用程序
  • 707. 10.3 Linux用户安全 10.3.2 用户口令安全10.3.2 用户口令安全 口令是Linux系统对用户进行认证的主要手段,口令安全是Linux系统安全的基石。不幸的是,用户往往对自己的口令安全没有足够的重视。一个简单、易破解的口令就等于向对攻击者敞开系统的大门,攻击者一旦获得重要账号的口令,就能够长驱直入。 通常入侵者可以使用John等自动化的工具软件多次尝试登录系统,简单的口令很容易被破解。一个健壮性高的口令应该具备以下特点:不包含个人信息,不存在键盘顺序规律,不使用字典中的单词,最好包含非字母符号,长度不小于8位,同时还用方便记忆。一个比较使用的办法就是:先记住一句话,然后将这句话的第一个字母取出,在将标点符号加在字母的序列中,前后还可以加几个数字,同时可以在口令中混用大小写,例如:本教材名为《Linux操作系统实用教程》,可以写成口令“51”,这便是一个健壮的口令。
  • 708. 10.3 Linux用户安全 10.3.2 用户口令安全在Linux系统中,大多数版本的passwd程序都可以设置一定的规范来定义用户口令,例如要求用户设置的口令不得少于8个字符,还可以限定用户口令使用的时间,保证定期更改口令等。编辑系统登录文件/etc/login.defs可以实现上述目标。该文件中有如下的行: PASS_MAX_DAYS 99999 ←口令使用的最长时间 PASS_MIN_DAYS 0 ←口令使用的最短时间,0表示不限 PASS_MIN_LEN 8 ←口令的最小长度 PASS_WARN_AGE 7 ←在口令过期前多少天给出警告
  • 709. 10.4 访问控制与身份认证 10.4.1 TCP Wrappers访问控制和身份认证是计算机系统安全的两个重要的方面。访问控制用于判定网络中允许访问主机资源的是不是合法的网络段的主机,身份认证用于判定访问主机资源的用户是否为合法的系统用户。 10.4.1 TCP Wrappers 在Red Hat Linux 9操作系统中TCP Wrappers是用于实现访问控制的一个重要的组件,可以控制基于网络地址对主机的某些网络服务的访问,这些服务包括xinetd、vsFTP、telnet等。如果系统支持TCP Wrappers实现访问控制,可以在/usr/lib/目录下找到libwrap.so.0.x.x模块。
  • 710. 10.4 访问控制与身份认证 10.4.1 TCP Wrappers1. TCP Wrappers的功能 TCP Wrappers是一个轻量级的保护程序,它提供了一个守护进程/usr/sbin/tcpd。TCP Wrappers安装和使用的时候并不需要对现有的应用软件进行任何的改动,运行后会自动检查所请求的服务和相应的客户端进行安全验证,在整个过程中,不会与客户端和服务器交换信息及建立连接。常见的支持TCP Wrappers的网络服务程序有/usr/sbin/sshd、/usr/sbin/sendmail和/usr/sbin/xinetd等。 2. TCP Wrappers的配置 TCP Wrappers的配置包括开启服务进程都TCP Wrappers的支持和设定访问控制策略。例如,可以在vsFTP服务的配置文件/etc/vsftpd/vsftpd.conf中有如下的配置行,用于决定是否开启vsftpd对TCP Wrappers的支持: tcp_wrappers=YES ←取值YES表示支持TCP Wrappers;NO表示不支持
  • 711. 10.4 访问控制与身份认证 10.4.1 TCP WrappersTCP Wrappers会在正常的服务程序之外加一个应答请求、建立连接之前检查远程主机名称和用户等信息,查看是否符合预先的设定。在Linux系统的/etc/目录中有hosts.allow和hosts.deny文件,用于保存TCP Wrappers基于主机地址的访问控制策略。其中,hosts.allow用于保存允许访问的策略;hosts.deny用于保存拒绝访问的策略。 hosts.allow和hosts.deny文件拥有相同的语法,一行代表对一个服务的访问控制策略,每一行的前两个字段是必须有的,动作字段是可以可选的,具体语法如下: 服务程序列表:客户机地址列表[:动作]
  • 712. 10.4 访问控制与身份认证 10.4.1 TCP Wrappers其中,“服务程序列表”字段表示使用访问控制的服务程序,可能的取值及含义如下表所示。服务程序列表取值及含义取 值说 明ALL代表所有的服务程序serv_name代表具体的服务程序。例如,in.telnetd代表telnet服务器程序, vsftpd代表vsftpd服务器程序serv_name1,serv_name2代表多个服务程序同时使用该设置,如“in.telnetd,vsftpd”
  • 713. 10.4 访问控制与身份认证 10.4.1 TCP Wrappers“客户机地址列表”字段指明了拒绝或允许访问服务的客户机的IP地址或主机名等,其可能的取值及含义如下表所示。客户机地址列表取值及含义取 值说 明ALL代表所有的客户机地址LOCAL代表本机地址KNOW代表可解析的域名UNKNOW代表不可解析的域名以句点“.” 开始的域名代表该域下的所有主机。例如“.aust.edu.cn”代表aust.edu.cn域中的所有主机子网/掩码对某个子网中的所有主机使用“子网/掩码”的形式表示,例如,“210.45.151.0/24”表示标准C类网络210.45.151.0下的所有主机直接使用IP地址对于网络中的某个主机可直接使用IP地址表示
  • 714. 10.4 访问控制与身份认证 10.4.1 TCP Wrappers“动作”字段表示允许或拒绝客户机访问。可选取值及含义如下表所示。动作字段取值及含义取 值说 明allow表示允许,hosts.allow文件中默认是allow,可以省略不写;deny表示拒绝,hosts.deny文件文件中默认是deny,可以省略不写。对于hosts.allow文件和hosts.deny文件,tcpd守护进程首先解析/etc/hosts.allow文件,如果发现第一个匹配规则后退出,并且不再解析hosts.deny,否则接着解析/etc/hosts.deny,找到第一个匹配规则后退出。如果在这两个文件中都没有找到匹配的规则,或这两个文件都不存在,那么就授予访问这项服务的权限。
  • 715. 10.4 访问控制与身份认证 10.4.1 TCP WrappersTCP Wrappers并不缓存主机访问文件中的规则,因此对hosts.allow或hosts.deny的配置改变都无需重新启动网络服务便会马上起作用。 例10-3 配置TCP Wrappers,完成以下的访问控制功能: (1)使用TCP Wrappers对vsftpd服务和telnet服务进行基于主机的访问控制,vsftpd服务器和telnet服务器所在主机的地址为“192.168.0.128”; (2)对于vsftpd服务只允许IP地址为“192.168.0.100”至“192.168.0.199”的主机进行访问; (3)由于telnet服务不安全,因此只允许IP地址为“192.168.0.122”的客户机访问。
  • 716. 10.4 访问控制与身份认证 10.4.1 TCP Wrappers首先在hosts.allow文件中添加如下图的语句,允许telnetd从192.168.0.122客户机访问,允许vsftpd从192.168.0.100~192.168.0.199客户机访问。添加hosts.allow文件内容
  • 717. 10.4 访问控制与身份认证 10.4.1 TCP Wrappers这里使用了通配符“?”,然后在hosts.deny文件中添加如下图所示的语句,禁止其他所有客户机访问telnet和vsftpd服务。添加hosts.deny文件内容
  • 718. 10.4 访问控制与身份认证 10.4.2 PAM身份验证10.4.2 PAM身份验证 在Linux系统中,用户访问系统资源时除了要通过访问控制程序对远程登录的客户机的检验,还要通过用户身份认证系统的检查。可插入认证模块(Pluggable Authentication Modules,PAM)主要用于应用程序的统一身份验证方式。 1. PAM概述 使用PAM系统管理员可以在不重新编译具体的身份认证程序的情况下,使用程序提供的新的身份认证方式。绝大多数Linux用户无需了解PAM的配置,因为当用户安装的应用程序需要使用身份认证时,系统会自动为用户修改PAM的配置文件。但是,如果用户需要定制自己的身份认证方法,就需要自己配置PAM了。
  • 719. 10.4 访问控制与身份认证 10.4.2 PAM身份验证在RedHat Linux 9中默认PAM的配置文件放置在的/etc/pam.d目录下。该目录下每一个文件就是同名应用程序的PAM认证配置文件,如下图所示。PAM配置文件
  • 720. 10.4 访问控制与身份认证 10.4.2 PAM身份验证2. PAM配置文件语法 在PAM中,每个服务程序的配置文件使用的语法相同,如下图所示,“#”所在的行为注释行。pam配置文件语法每个使用PAM应用程序的配置文件都包括如下几个字段,每个字段之间使用Tab制表位或空格分割。 PAM模块 控制符 模块路径 可选参数
  • 721. 10.4 访问控制与身份认证 10.4.2 PAM身份验证1)PAM模块 在PAM标准中定义了4种类型的模块,分别是auth、account、password和session模块,其具体含义如下表所示。PAM模块取 值说 明auth模块用于进行实际的身份认证,主要是要求输入和检查口令,并赋予通过认证的用户相应的权限account模块确保允许进行身份认证(账户未过期、允许用户登录的时限等)password模块用于设定用户的口令。通常,各个基于用户名/密码的认证方法 (auth)对应的此模块session模块在用户通过身份认证后使用。例如,指出用户得到/失去服务时所做的动作
  • 722. 10.4 访问控制与身份认证 10.4.2 PAM身份验证由于每一类模块都可能存在多个可用用户选择,因此在实际的使用中,同一类型的模块是可以重叠的,即可能出现相同类型的多个模块。PAM也允许用户随时添加新的认证模块,支持PAM的应用程序都可以使用这些模块。 2)控制符 控制符通常用于决定每个模块的重要程度。模块可以被重叠(同种类型的模块按先后顺序执行),这些模块的执行顺序就是它们在相应配置文件中给出的记录的顺序,排在前面的记录在排在后的记录之前被执行。
  • 723. 10.4 访问控制与身份认证 10.4.2 PAM身份验证控制符的可选值表示了相关模块的重要程度,其有required、requisite、sufficient和optional 4个关键字,含义如下表所示。PAM控制符取 值说 明required必要的。表明此模块返回成功值对于整个模块类的成功是必要的;此模块的返回失败并不会传回给用户直到剩下的模块requisite必要的。类似required,但当这类模块返回失败时,立刻回到应用程序,返回值同第一个需要的或必要的模块返回的失败sufficient充分的。该模块返回成功时,会被认为已经充分满足Linux-PAM库确认这类模块是成功的条件。如果先前的requisite模块没有返回失败,那么不再会有其他重叠的模块被验证。该模块返回失败时,不会将其看作致命的错误而影响应用程序从模块类得到成功的结果optional可选的。该控制符使得模块对最终验证的成功或失败不产生决定性的影响
  • 724. 10.4 访问控制与身份认证 10.4.2 PAM身份验证3)模块路径 模块路径字段可以是可动态加载的目标模块的文件路径,也即是可插入式模块本身的路径。如果路径的首字符是“/”,那它被作为一个绝对路径,否则即为相对于默认路径/lib/security的相对路径。pam需要使用适当的模块来支持不同的认证方式,模块路径就是指明这些模块的位置。 4)可选参数 可选参数是一组传给模块的参数。通常,合法的参数是模块特有的。无效的参数会被模块忽略,相应的模块会将错误信息写到syslog日志系统。可选参数的常用取值如下表所示。
  • 725. 10.4 访问控制与身份认证 10.4.2 PAM身份验证PAM可选参数取 值说 明debugdebug信息写入syslog日志系统no_warn指示模块忽略warning信息use_first_pass 不提示用户输入口令,使用该参数的模块可从上个auth模块获取用户口令。若口令不正确,则该用户不能通过认证。该参数只对auth和password模块有效try_first_pass 使用该参数的模块先从上一个auth模块获取用户口令,如果口令不正确,则提示用户输入口令。该参数只对auth和password模块有效use_mapped_pass指示模块拿前一个模块生成的认证明文来产生一个加/解密的键,以该键来安全地存储或取得此模块所需的认证标识expose_account是个标准的模块参数,当管理员觉得可以暴露用户账号的信息时可以使用该参数
  • 726. 10.4 访问控制与身份认证 10.4.2 PAM身份验证3. PAM配置实例 在PAM的配置文件目录/etc/pam.d下存放了一个other文件,该文件用于规定系统默认的身份认证规则。其内容如下图所示。PAM的默认配置
  • 727. 10.4 访问控制与身份认证 10.4.2 PAM身份验证其中使用了pam_deny.so模块,但是该模块在对用户进行身份验证是,不会记录任何信息,这样,管理员可能无法及时获取系统的出错信息。为此可以在/etc/pam.d/other文件中添加相应的行,以确保当身份认证出错时能够及时将出错信息送往日志系统,如下图所示。设置PAM的默认配置
  • 728. 10.5 Linux网络服务安全 10.5.1 xinetd安全在Linux中,网络服务安全包括xinetd、iptables等网络服务安全以及snort入侵检测的使用。 10.5.1 xinetd安全 xinetd超级服务器是在Linux等类UNIX系统中普遍使用,用于管理多种轻量级Internet服务器。如telnet、talk等。xinetd服务器的安全关系多种网络服务的安全。 1. 使用配置文件增强xinetd安全 在xinetd的配置文件/etc/xinetd.conf和/etc/xinetd.d/*中,可以使用相应的配置行,使用访问控制以及系统的日志功能。其中xinetd.conf文件是全局配置,对所有基于xinetd守护进程的Internet服务器都有效,而/etc/xinetd.d/目录下的配置是对具体服务器的配置。
  • 729. 10.5 Linux网络服务安全 10.5.1 xinetd安全下面以telnet服务器为例进行讲解,如下图所示为telnet配置文件。xinetd服务安全
  • 730. 10.5 Linux网络服务安全 10.5.1 xinetd安全其中,系统默认的telnet配置语句如下,下面是各语句行的解释。 service telnet ←telnet服务基于xinetd,使用标准的23端口 { flags = REUSE ←tcp端口重用标记 socket_type = stream ←telnet服务使用的数据传输方式为tcp协议 wait = no ←本服务使用多线程 user = root ←启动telnet服务的用户 server = /usr/sbin/in.telnetd ←启动telnet服务所使用的命令 log_on_failure += USERID ←登录不成功时,系统日志记录用户信息 disable = no ←启动xinetd服务时,自动打开telnet服务 }
  • 731. 10.5 Linux网络服务安全 10.5.1 xinetd安全如下的语句行是为了增强telnet服务安全性能,添加的语句: bind = 192.168.0.128 ←该服务绑定在192.168.0.128网卡上 only_from = 192.168.0.0/24 ←仅允许从192.168.0.0/24网络登录telnet服务 no_access = 192.168.0.148 ←不允许192.168.0.148客户机登录telnet服务 access_times = 8:00-23:00 ←仅允许在指定的时间内登录telnet服务 注意:访问控制时间需要使用24小时制表示,小时可以是0~23,分钟可以是0~59。
  • 732. 10.5 Linux网络服务安全 10.5.1 xinetd安全3. 使用TCP Wrappers增强xinetd安全 基于xinetd超级服务器的Internet服务器,除了可以使用其配置文件来增强安全性能外,还可以使用TCP Wrappers来保证安全。 同样以telnet服务为例,实现允许192.168.0.0/24网络中除了192.168.0.148主机以外的所有主机登录。为实现该功能,可以在/etc/hosts.allow文件中添加如下图所示的行。xinetd服务安全
  • 733. 10.5 Linux网络服务安全 10.5.2 iptables防火墙10.5.2 iptables防火墙 iptables是Linux下非常优秀的免费防火墙产品,它也是Linux默认的防火墙软件,不仅功能强大,而且配置灵活。有效的iptables管理对于Linux网络环境的安全至关重要。 1. iptables基础 iptabbles能够配置规则,过滤进入本地网络的数据包。当用户将网络与Internet连接后,其内部数据和网络设备都暴露给了Internet上的所有用户,使得网络安全受到极大的威胁。因此需要建立安全策略来防止非法用户访问内部网络资源和内部用户泄密。防火墙就能起到这种作用。 防火墙可以分为IP过滤防火墙和代理防火墙两种。
  • 734. 10.5 Linux网络服务安全 10.5.2 iptables防火墙1)IP过滤防火墙 IP过滤防火墙工作在TCP/IP协议簇的网络层。它依据起点、终点、端口号和每一个数据包中所含的数据包种类信息控制数据包的流动。IP过滤防火墙使用规则库来保存用户设置的数据包过滤规则,这些规则规定了对通过的网络数据包进行过滤的标准。 2)代理服务器 代理防火墙允许通过防火墙间接地进入Internet。利用客户端软件连接代理防火墙后,代理服务器启动其客户端软件(代理),然后传回数据。由于代理服务器重复所有通信,因此能够记录所有进行的工作。只要配置合理,代理服务器是绝对安全的,它可以阻挡任何直接进入内网。 通常安装iptables防火墙的主机是网络的关键主机,该主机被配置了两块的网络接口卡,其中一块用于面向内网,另一块用于面向外网。
  • 735. 10.5 Linux网络服务安全 10.5.2 iptables防火墙在RedHat Linux 9中iptables防火墙是默认安装的,可以直接使用,不过为了完成IP数据包的转发,即开启Linux的路由功能,需要打开Linux内核的IP转发功能。使Linux变成路由器的方法有如下两种: 1)改变Linux内核变量 在终端提示符下输入如下的命令,给内核变量传递一个值“1”,表示开启内核对IP数据包的转发功能。 [root@myhost root]# echo “1” > /proc/sys/net/ipv4/ip_forward 2)修改脚本 找到/etc/sysconfig/network脚本文件,将其中的FORWARD_IPV4= false修改为FORWARD_IPV4 = true。需要注意的是,这种方法需要重启网络。
  • 736. 10.5 Linux网络服务安全 10.5.2 iptables防火墙2. 简单iptables管理 在安装RedHat Linux 9时,默认情况下iptalbles已经安装成功,并且设置了某些形式的配置规则,这些配置规则涉及到多种应用程序,在实际的应用中肯定不会涉及所有默认的应用程序。用户往往希望能够设置自己的iptables防火墙规则。在Linux中iptables防火墙通常提供给用户两种界面用于配置防火墙,一是基于图形界面,另一种基于命令行方式。 1)图形管理iptables 单击“主菜单”→“系统设置”→“安全级别”菜单项,即可进入如右图所示的“安全级别配置”对话框。“安全级别配置”对话框
  • 737. 10.5 Linux网络服务安全 10.5.2 iptables防火墙选中“使用默认的防火墙规则”单选按钮,即表示采用iptables安装时自动添加的过滤规则。然后单击“安全级别”下拉列表,可以选取“无防火墙”、“中级”和“高级”之一,选择一种安全级别。也可以单击“定制”单选按钮,如右图所示,此时“信任的任务”和“允许进入列表”变为可选状态,可以在“信任设备”列表中选取安全的网卡接口,在“允许进入”列表中选取允许数据包进入的应用层服务。定制安全规则
  • 738. 10.5 Linux网络服务安全 10.5.2 iptables防火墙2)使用命令管理iptables 在图形模式下配置的iptables设置,最终都将生成相应的iptables规则,然后保存在其规则库中,用户也可以直接使用命令来生成这些规则。iptables软件包给用户提供了iptables、iptables-save和iptables-restore 3个有效的命令,分别用于iptables规则的配置、保存新配置的规则和使用新规则。 iptables-save命令 iptables-save命令可用于备份原有iptables配置,需要时可以简单地恢复原有的设置。在规则配置完毕后,可以在终端提示符下输入如下的命令,完成规则的保存,结果如图下所示。
  • 739. 10.5 Linux网络服务安全 10.5.2 iptables防火墙该命令执行后,现有的iptables的规则将被保存在/etc/sysconfig/iptables文件中。 [root@myhost root]# iptables-save > /etc/sysconfig/iptables保存规则
  • 740. 10.5 Linux网络服务安全 10.5.2 iptables防火墙iptables-restore命令 iptables-restore命令可以用于恢复先前防火墙iptables的设置。使用它时只需在终端提示符下执行如下的命令即可: [root@myhost root]# iptables-restore < /etc/sysconfig/iptables 其中,/etc/sysconfig/iptables文件可以是使用iptables-save保存的规则备份文件。 iptables命令 iptables命令是iptables防火墙提供给用户用于配置规则的核心命令,用于查看当前规则库中的规则、向规则库中创建或添加规则、删除规则、插入规则或更新规则等。 例如,在终端提示符下输入如下命令,可以清除当前iptables中的所有规则: [root@myhost root]# iptables -F
  • 741. 10.5 Linux网络服务安全 10.5.2 iptables防火墙例如,在终端提示符下输入如下命令,可以实现内部网络192.168.0.0/24的数据包都能被允许通过。 [root@myhost root]# iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT [root@myhost root]# iptables -A OUTPUT -i eth1 -d 192.168.0.0/24 -j ACCEPT [root@myhost root]# iptables -t nat -A POSTROUTING -o eth0 -d ! 192.168.0.0/24 -j MASQUERADE [root@myhost root]# iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT [root@myhost root]# iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
  • 742. 10.5 Linux网络服务安全 10.5.2 iptables防火墙第一行的含义是允许从内部网络发来的源地址为192.168.0.0/24的数据包通过eth1接口。 第二行的含义是允许从防火墙的eth1接口向目标网络192.168.0.0/24发送数据包。 第三行的含义是向地址转换表中添加规则,对所有不是发往目标网络192.168.0.0/24的数据报文进行源地址转换。 第四行的含义是允许从内网192.168.0.0/24发往外部的数据包。 第五行的含义是接收从外网发往内网192.168.0.0/24的数据包。 注意:规则设置完毕后,需要使用命令“iptables-save > /etc/sysconfig/iptables”保存。
  • 743. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS10.5.3 入侵检测 入侵检测系统(IDS,Intrusion Detection System)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。它与其他网络安全设备的不同之处便在于,IDS是一种积极主动的安全防护技术。入侵检测系统的使用,有助于系统管理员发现黑客攻击事件,从而及时采取措施。事实上,入侵检测和防火墙技术正是网络安全的两大防范措施。 1. 入侵检测系统简介 按照数据源的不同,入侵检测系统可以分为如下的几类。
  • 744. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS1)基于网络的入侵检测系统 其数据来源于网络的信息流,能够检测该网段上发生的网络入侵。基于网络的入侵检测系统被放置在比较重要的网段内,不停地检视网段中的各种数据包,对每一个可疑的数据包进行特征分析。如果数据包与入侵检测系统中的某些规则匹配,系统就会发出警报,甚至直接切断网络连接。 2)基于主机的入侵检测系统 其数据来源于系统的审计日志,只能检测该主机受到入侵。基于主机的入侵检测系统通常被放置在重点检测的主机之上,主要是对该主机的网络实时连接以及系统审计日志进行智能分析和判断。如果主体活动可疑,入侵检测系统就会采取相应措施。
  • 745. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS3)分布式入侵检测系统 采用分布式检测、集中管理的方法,能够同时分析来自主机系统审计日志和网络数据流的入侵检测系统。由多个部件组成,即在每个网段安装一个黑匣子,它相当于基于网络的入侵检测系统,它根据集中安全管理中心制定的安全策略、响应规则等来分析检测,但是没有用户操作界面。黑匣子用来监测其所在网段上的数据流,检测网络数据,同时向集中安全管理中心发回安全事件信息。集中安全管理中心是整个分布式入侵检测系统面向用户的界面,它的特点是对数据保护的范围比较大,但对网络流量有一定的影响。
  • 746. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS2.Snort简介 网络入侵检测系统(NIDS,Network Intrusion Detection System)可以监视网络计算机系统,而snort就是一个功能强大的轻量级的网络入侵检测系统,适用于大中小型网络,尤其适合一些无力承受大型商业入侵检测系统高昂费用的中小型公司使用。 snort遵循通用公共许可证GPL,是一款优秀的免费软件,只要遵守GPL的任何组织和个人都可以自由使用。它具有如下的特征: snort是一个轻量级的入侵检测系统,代码极为简洁、短小。 功能强大。snort具有实时的流量分析和日志IP网络数据包的能力,能够快速地检测网络攻击,及时发出警报,并且其警报机制非常丰富。
  • 747. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS可移植性很好。snort具有极好的跨平台性能,目前支持snort的操作系统有Linux、Solaris、BSD、HP-UX和Windows等。 能够进行协议分析,对协议数据内容进行搜索和匹配,检测各种不同的攻击方式,对攻击进行实时报警。snort能够分析的协议有TCP、UDP和ICMP等。 扩展性好,能够使用插件增加其功能。 具有很强的系统防护能力。通过使用FlexResp功能snort能够主动断开恶意连接。
  • 748. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS3.snort的安装 通常采用编译安装的方法定制符合需要的snort应用程序。定制一个snort入侵检测系统,至少需要如下软件包的支持。 libcap-1.10-15.tar.gz:snort依赖的抓包库。 pcre-7.6.tar.gz:正则式支持库文件。 libnet-1.0.2a.tar.gz:libnet库文件。 snort-2.8.3.1.tar.gz:入侵检测器。 snortrules-snapshot-2.7.tar.gz:入侵检测规则。 注意:libnet库必须只用指定版本的源代码。
  • 749. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS1)安装抓包库libcap 从网上下载libcap-1.10-15.tar.gz源程序包,复制到/tmp,然后在终端提示符下执行下列操作: [root@myhost root]# cd /tmp [root@myhost tmp]# tar zxvf libcap-1.10-15.tar.gz ←解压解归档源代码包 [root@myhost tmp]# cd libcap-1.10-15 ←进入生成的libcap-1.10-15目录 [root@myhost libcap-1.10-15]# ./configure ←配置编译的参数,生成Makefile文件 [root@myhost libcap-1.10-15]# .make ←编译源代码 [root@myhost libcap-1.10-15]# .make install ←安装
  • 750. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS2)安装正则式支持库文件pcre 从网上下载pcre-7.6.tar.gz源程序包,复制到/tmp,然后在终端提示符下执行下列操作: [root@myhost libcap-1.10-15]# cd /tmp [root@myhost tmp]# tar zxvf pcre-7.6.tar.gz [root@myhost tmp]# cd pcre-7.6 [root@myhost pcre-7.6]# ./configure [root@myhost pcre-7.6]# make [root@myhost pcre-7.6]# make install
  • 751. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS3)安装libnet库 从网上下载snort-2.8.3.1.tar.gz源程序包,复制到/tmp,然后在终端提示符下执行下列操作: [root@myhost pcre-7.6]# cd /tmp [root@myhost tmp]# tar zxvf snort-2.8.3.1.tar.gz [root@myhost tmp]# cd snort-2.8.3.1 [root@myhost libnet-1.0.2a]# ./configure [root@myhost libnet-1.0.2a]# make [root@myhost libnet-1.0.2a]# make install
  • 752. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS4)安装入侵检测器snort 从网上下载snort-2.8.3.1.tar.gz源程序包,复制到/tmp,然后在终端提示符下执行下列操作: [root@myhost libnet-1.0.2a]# cd /tmp [root@myhost tmp]# tar zxvf snort-2.8.3.1.tar.gz [root@myhost tmp]# cd snort-2.8.3.1 [root@myhost snort-2.8.3.1]# ./configure --prefix=/usr/local/snort --enable-flexresp \ --with-mysql=/usr/local/mysql [root@myhost snort-2.8.3.1]# make [root@myhost snort-2.8.3.1]# make install
  • 753. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS5)安装snort规则库snortrules-snapshot 从网上下载snortrules-snapshot-2.7.tar.gz源程序包,复制到/tmp,然后在终端提示符下执行下列操作: [root@myhost snort-2.8.3.1]# mkdir /etc/snort ←创建存放snort配置文件的目录 [root@myhost snort-2.8.3.1]# mkdir /etc/snort/rules ←创建存放snort规则库的目录 [root@myhost snort-2.8.3.1]# mkdir /var/log/snort ←创建存放snort日志的目录 [root@myhost snort-2.8.3.1]# cp -r ./etc/* /etc/snort ←将snort相关配置文件复制到指定位置 [root@myhost snort-2.8.3.1]# cp /tmp/snortrules-snapshot-2.7.tar.gz /etc/snort [root@myhost snort-2.8.3.1]# cd /etc/snort [root@myhost snort]# tar zxvf snortrules-snapshot-2.7.tar.gz ←规则库放置在/etc/snort/rules 到此,具有基本功能的snort系统安装完毕。
  • 754. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS4. 配置snort snort安装成功后,需要对其进行相应的配置。进入/etc/snort目录,使用文本编辑器(图形模式下的gedit,文本模式下的vi等)打开snort.conf文件,找到如下图所示的黄色底色的配置行,去掉行首的“#”。配置snort
  • 755. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS再从snort.conf中找出设置规则库路径的配置行,按照实际位置修改变量RULE_PATH的值,如下图所示的黄色配置行。设置规则库路径修改完毕后,保存退出。
  • 756. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS5. 使用snort snort的基本用作数据包嗅探器(packet sniffer)、数据包分析器(packet analyser)和网络入侵检测系统。 1)作为数据包嗅探器 其作用是从网络中读取数据包,并将其显示在使用者的控制台上。可以利用如下表所示的参数实现嗅探器功能。snort实现嗅探功能的参数参 数功 能-v将数据包的TCP/IP包头显示到屏幕上-vd将数据包的IP、TCP、UDP和ICMP包头信息显示到屏幕上-vde同时显示包头和数据信息-c指定snort使用的配置文件
  • 757. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS例10.4 查看网络数据包的包头信息。 进入snort的安装路径/usr/local/snort,然后在终端提示符下执行如下的命令: [root@myhost snort]# cd bin [root@myhost bin]# ./snort -v 执行结构如下图所示。
  • 758. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS2)数据包分析 snort能把截获到的数据包记录到指定的日志文件中,此时需要指定日志文件的存放目录。以下的参数,可以帮助snort完成数据包分析功能。如下表所示。snort实现嗅探功能的参数参 数功 能-l log_dir指定snort的日志目录-h ip|host_name指定需要截包的主机的IP地址或主机名-b采用二进制方式记录日志-s将snort日志发送给syslog日志系统
  • 759. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS例10.5 将截获的数据包信息记录到指定的日志中。 在终端提示符下输入如下的命令,完成snort的日志功能。 [root@myhost bin]# ./snort -ved -l /var/log/snort 其日志被记录在指定的日志目录中,其内容如下图所示snort抓包日志
  • 760. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS3)网络入侵检测 snort最重要的用途还是作为网络入侵检测系统。帮助snort实现网络入侵检测功能的参数如下表所示。snort实现网络入侵检测功能的参数参 数功 能-c conf_file指定snort的配置文件-A warn_mech指定snort的警报机制-b采用二进制方式记录日志-s将snort日志发送给syslog日志系统-M WORKSTATIONS使用SMB警报机制
  • 761. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS例10.6 在当前系统中启动入侵检测系统。 使用如下的命令可以启动snort的入侵检测功能。 [root@myhost bin]# ./snort -ved -l /var/log/snort -c /etc/snort/snort.conf 命令执行结果如下图所示。snort入侵检测
  • 762. 10.5 Linux网络服务安全 10.5.3 入侵检测IDSsnort的警报机制有full、fast、socket、none、smb(winpopup)和syslog等6种。其中,前4种警报机制可以使用-A参数设置,其说明如下表。snort参数-A说明参 数功 能-A fast报警信息包括,时间戳、报警消息、源/目的IP地址和端口-A full默认报警模式-A unsock把报警发送到一个UNIX套接字-A none将snort日志发送给syslog日志系统
  • 763. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS在网络入侵检测模式下,snort可以使用多种方式来配置其输出方式。默认snort以ASCII格式记录日志,并且使用full警报机制。syslog报警机制可以使用-s参数设置,默认的设备LOG_AUTHPRV和LOG_ALERT。smb警报机制通过SAMBA把警报消息发送到Windows主机。为了使用该警报机制,在编译安装过程中,运行“./configure”脚本时,使用“--enable-smbalerts”参数。 5. 定制snort规则 snort作为网络入侵检测系统,拥有自己的规则语言。从语法上看,该规则语言非常简单,又足够强大。 1)snort规则语法 snort规则语法如下: rules_action protocol src_ip src_port -> dst_ip dst_port (rules_option)
  • 764. 10.5 Linux网络服务安全 10.5.3 入侵检测IDSsnort的规则可以从逻辑上分成规则头部和规则选项两个部分。规则头部包括规则动作、协议类型、源/目的地址(对于特定网络地址还包括子网掩码)以及源/目的端口;规则选项包含了报警消息和异常包的特征码信息,使用这些特征码来决定是否采取规则规定的动作。最基本的规则只包含rules_action、protocol、ip_addr(包括src_ip和dst_ip)以及port(包括src_port和dst_port)4个域。例如: log tcp any any -> 192.168.0.0/24 21 使用这条规则,snort可以将任意网络到网络192.168.0.0/24的21端口的数据包记录到日志中。 (1)对于匹配特定规则的数据包,snort有如下表所示的3种动作。
  • 765. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS(2)方向“->”表示定义规则所适用的通信方向,其左边是源地址,右边是目的地址。方向“<>”表示在源地址和目的地址之间的通信。 snort规则动作动 作说 明pass忽略数据包,即放行数据包log把数据包记录到日志文件alert产生报警消息并日志数据包
  • 766. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS(3)规则的IP地址和端口部分包括源IP地址/源端口和目的IP地址/目的端口,其中源IP地址和目的IP地址可以表示网络地址和主机地址。当表示网络地址时,应该使用“网络地址/子网掩码”的格式,其中“子网掩码”可以使用点分十进制的方式,如255.255.255.0,也可以使用子网掩码中1的位数表示。为了增加snort规则的灵活性,在IP地址部分可以使用操作符“!”表示非,使用“any”表示任意IP地址或端口,还可以使用操作符“:”限制端口的范围。例如: alert tcp !192.168.0.0/24 any -> 192.168.0.0/24 1024:65535 (msg:”tcp traffice”;) 这条规则使得snort将从非192.168.0.0/24网络的任意端口到内部网络192.168.0.0/24的1024至65535端口的数据包发出警报。
  • 767. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS(4)规则选项组成了snort入侵检测引擎的核心,它被包含着一对小括号中,既易用又强大还灵活。所有的snort规则选项用分号“;”隔开,包括用冒号“:”分开的规则选项关键字和其参数。snort支持如下表所示的选项。snort规则选项说明选 项说 明content数据包的应用层数据msg记录或报警数据包时打印的消息flagssnort检查的TCP标志depth设置了内容模式匹配函数搜索的最大深度ack检查TCP头的确认部分
  • 768. 10.5 Linux网络服务安全 10.5.3 入侵检测IDS2)添加自制的snort规则 了解了snort规则的语法后,可以为实际的应用添加自制的snort规则。具体步骤如下: 在snort.conf文件中$RULE_PATH变量指定的路径/etc/snort/rules目录下创建一个自制规则文件,命名new_rule.rules。 在new_rule.rules规则文件中,写入新添的规则,如加入以下规则: alert tcp !192.168.0.0/24 any -> 192.168.0.0/24 80 (msg:”Web traffic”;) 该规则表示警报从外网的任意端口到内外192.168.0.0/24的所有Web通信。 使用gedit文本编辑器打开/etc/snort/snort.conf文件,在文件末端添加如下的语句: include new_rule.rules 重启snort,以使新的规则生效。