《LINUX操作系统》实验指导书.doc
Linux操作系统实 验 指 导 书徐州师范大学计算机科学与技术学院2009年 11月前 言Linux操作系统实验指导书根据实验教学的需要所编写,主要包括Linux操作系统基础以下几个方面的内容:系统安装、常用命令、vi编辑器使用、shell编程、Samba服务器配置和企业小型局域网的组建等。每个实验,都给出了实验目的、实验要求和实验内容。实验内容分为示例、必做题和选做题三种形式。通过对示例中内容的上机练习,加深学生对理论课程中所学内容的理解,并帮助学生理解实验的要求;学生通过实现必做题的内容,提高自己的动手能力,这部分的内容是要求每一位学生都必须完成的;选做题是为学有余力的同学准备的,选做题目完成较好的学生将在期末平时成绩中获得适当的加分奖励。实验一、实验五和实验六为学生课外实验,另外,实验二、实验三和实验四含有部分课外实验内容,有利于课堂实验课时不够,但是课程须要实验巩固的要求。本书不仅可以作为普通院校学生的Linux操作系统基础上机实习指导教材,也可作为广大读者朋友自学Linux操作系统基础的实用教程。由于时间仓促以及水平有限,错误与不足之处难免存在,敬请使用者给与批评指正!目 录实验一 LINUX操作系统的安装(4课时)1一、实验目的1二、实验要求1三、预备知识1四、实验内容2五、课后思考16实验二 LINUX的常用命令(6课时)17一、实验目的17二、实验要求17三、预备知识17四、实验内容18五、课后思考29实验三 LINUX的VI编辑器使用(2课时)30一、实验目的30二、实验要求30三、预备知识30四、实验内容32五、课后思考33实验四 LINUX的SHELL编程(6课时)34一、实验目的34二、实验要求34三、预备知识34四、实验内容35五、课后思考45实验五 SAMBA服务器的配置(2课时)46一、实验目的46二、实验要求46三、预备知识46四、实验内容47五、课后思考48实验六 企业小型局域网的组建(10课时)49一、实验目的49二、实验要求49三、实验内容49四、课后思考50参考文献51实验一 Linux操作系统的安装(4课时)一、实验目的1.了解 Linux 发行版本的不同,理解Linux 内核和Linux 发行版本的区别。2.掌握Linux的安装过程,熟悉Linux操作系统安装过程中的设定选项的含义,掌握为安装进行硬盘分区的方法。3.掌握VMWare软件的使用,在单独的虚拟机中完成Linux的安装。4.了解在已安装Windows系统的虚拟机上安装Linux,解决两个系统选择启动的问题。5.了解一些Linux发行版本的安装过程,比较其中的区别。二、实验要求1.基本层次:在单独的虚拟机中完成Linux的安装,完成为Linux安装进行硬盘分区的方法。2.提高层次:在已安装Windows XP操作系统的虚拟机上安装Linux,解决两个系统选择启动的问题。三、预备知识(一)虚拟机VMWare的介绍虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。虚拟机是在一个操作系统(称为宿主操作系统-Host OS)上的另一个操作系统(称为客户操作系统-Guest OS)。Host OS 和Guest OS 之间交换数据的方式有:共享文件夹和通过网络传输。虚拟机的用途有:1.程序测试。由于Host OS 和Guest OS 是两个独立的操作系统,因此可以在Guest OS 上进行程序测试,以免损坏Host OS;2.网络实验或网络程序开发。通常进行网络实验或开发网络程序至少需要两台PC,一台安装服务器程序,一台客户程序。我们可以使用Host OS 和Guest OS 上分别安装服务程序和客户程序,从而仅仅使用一台PC;3.操作系统安装和实验,通常作操作系统的实验要求对操作系统进行全面的配置,这样可能会损坏操作系统,通过在Guest OS 上进行操作可以避免重新安装Host OS;目前 PC 上的虚拟机软件有下述三个:1.VMWare:是一个“虚拟PC”软件.它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。 (http:/www.VMW)2.Virtual PC:是一个虚拟机软件,可以在 Mac OS 和 Windows 操作系统上虚拟x86电脑,并在其中安装运行操作系统。原来由Connectix公司开发,微软公司于2003年收购该软件,并改称为Microsoft Virtual PC。 ()3.Virtual Box:是由Sun Microsystems公司出品的软件,原由德国innotek公司开发。2008年2月12日,Sun Microsystems收购,新版改叫Sun xVM Virtual Box。Virtual Box是开源软件。(http:/www.virtualbox.org/)本课程实验我们只使用VMWare。(二)Linux的发行版介绍Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于x86系列CPU的计算机上。Linux 发行版 (也被叫做 GNU/Linux 发行版) 是基于Linux内核的类Unix操作系统。Linux发行版通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。这些操作系统通常由Linux内核、以及来自GNU计划的大量的函式库,和基于X Window的图形界面。有些发行版考虑到容量大小而没有预装 X Window,而使用更加轻量级的软件。现在有超过300个Linux发行版。这些发行版可以分为商业发行版,比如Fedora (Red Hat), openSUSE (Novell),Ubuntu (Canonical 公司),和 Mandriva Linux,和社区发行版,它们由自由软件社区提供支持,如Debian和Gentoo,也有发行版既不是商业发行版也不是社区发行版,其中最有名的是Slackware。本课程实验我们使用Fedora。四、实验内容(一)必做题在本次实验中,完成在VMWare下Guest OS的安装。设定机器中的操作系统为Windows XP(Host OS),且已经装好了VMWare,我们需要安装的Guest OS 为Fedora Core 6。1.添加虚拟机说明:在以下添加虚拟机过程中,如果没有安装过程的说明,均使用默认方式。图 1-1 添加虚拟机如图1-1,在窗口中选择“新建虚拟机”或点击菜单“文件”“新建”“虚拟机”,建立虚拟机。图1-2 新建虚拟机如图1-2,选择配置方式:“Typical”为典型方式,也是缺省方式,在创建过程中将加载标准硬件设备和默认设置;“Custom”为手工方式,用户在这种方式下可以对设备和内存进行修改。不熟悉配置方式的同学可选择“Typical”方式,本指导书选择“Custom”方式。图1-3 选择客户操作系统如图1-3,设置操作系统。可选的操作系统从MSDOS 一直到Windows Server 2008。这里选择Red Hat Linux。图1-4 设置虚拟机名字如图1-4,设置虚拟计算机文件所在的路径。在VMWare 中,一台虚拟机的硬盘其实是用磁盘文件模拟的,这里需要选择一个剩余空间较大的分区(最好剩余6G以上)中的一个目录。图1-5 设置虚拟机处理器数量图1-6 设置虚拟机内存大小如图1-5、图1-6,设置虚拟机处理器数量和虚拟机内存大小。这里设定一个处理器,内存设定不得超过推荐的范围,建议可能的话,设定内存大于512,这样虚拟机Guest OS安装和运行都较快。图1-7 设置网络连接方式如图1-7,选择网络连接方式。虚拟计算机与宿主计算机之间可以进行通讯,共有四种选择方式,由于学校设置了上网认证,且限制多IP登陆,因此,如果在机房作此实验,暂时选择“NAT”方式,以免认证软件断开Host OS的网络链接。图1-8 设置硬盘类型如图1-8,硬盘类型提供两种,分别是IDE类型和SCSI类型,其中SCSI类型为默认类型。由于有些早期Linux发行版不支持SCSI类型硬盘,因此选择IDE硬盘类型。图1-9 设置硬盘大小如图1-9,硬盘大小使用默认的8G,另外,为了便于磁盘文件存放管理,选择将磁盘分割成2G文件大小。图1-10 虚拟机创建完成如图1-10,虚拟机创建完成!2.安装Linux系统说明:在以下添加虚拟机过程中,如果没有安装过程的说明,均使用默认方式。在刚添加的虚拟机中,查看并修改该虚拟机的设备。通过设备窗口中双击相应设备,可以修改选择设备的配置,或通过菜单“虚拟机”“设置.”,在弹出的对话框中可以对虚拟机内存、磁盘、光驱、软盘、网卡、USB 设备、鼠标、声卡等进行设置。如图1-11。图1-11 查看并修改虚拟机的设备设置安装光盘为ISO 文件(该文件包含了安装光盘的内容,安装光盘可以从网络下载,或由任课老师说明下载地点)。当然,用物理光盘也可以。如图1-11。点击虚拟机启动按钮,启动该虚拟机。系统引导后,进入安装界面。图1-12 选择Linux安装模式如图1-12,进入系统安装模式选择,如果设定的虚拟机内存大于256M,此处可以选择“图形模式”安装。图1-13 提示是否进行安装介质检测如图1-13,安装过程询问是否进行安装介质的检测,为了节省时间,此处可以选择跳过检测。图1-14 硬盘分区设置如图1-14,进行硬盘分区设置,由于是虚拟机,选择了自动分区,因此,此处均选择默认即可。图1-15 网络设置如图1-15,此处可以跳过,不进行网络设置。图1-16 根用户口令设置如图1-16,设置根用户的口令,此口令务必记住,这是所装系统的超级用户口令。图1-17 安装选项选择如图1-17,对于需要有选择安装相应的服务,可以选择“软件开发”和“网络服务器”,并选择“现在定制”。定制如图1-18。图1-18 定制安装软件图1-19 进入系统安装过程如图1-19,系统进入安装过程,在此过程中根据提示,进行几张安装盘的弹出和插入(如图1-20)。图1-20 安装过程中切换安装光盘图1-21 系统已经安装完成如图1-21,系统已经安装完成。点击“重新引导”,进行系统安装完成后的第一次引导。图1-22 第一次引导的向导如图1-22,系统第一次引导后,进入此欢迎界面。图1-23 防火墙设置如图1-23,设置系统的防火墙,对于一些需要提供的服务,使该服务为信任服务。图1-24 系统日期和时间设置如图1-24,设置系统的日期和时间。图1-25 普通用户创建如图1-25,创建一个普通用户账号,供平时使用。这样避免了一直使用根用户登录,保证了系统的安全性。图1-26 声卡设定如图1-26,此处设定声卡,无需做其他改变。图1-27 系统登录至此,系统的第一次引导设定完毕。如图1-27,输入用户名进行登录验证,如果登录完成,即可进入Linux系统。【注意】组合键Ctrl-Alt-F1至F6可以访问另外的几个字符界面的登录界面,从而使用Fedora 的字符界面,这几个界面叫做虚拟控制台,使用组合键Ctrl-Alt-F7 还可以返回到图形界面。但是在虚拟机中使用组合键Ctrl-Alt-F1 至F6 时不能切换虚拟控制台,原因是在VMWare 中,Ctrl-Alt 是用来激活或释放鼠标的。因此,需要通过菜单“编辑”“参数”“Hot keys”,修改默认Hot keys由Ctrl-Alt 为Ctrl-Alt-Shift,再次启动虚拟机后设置启用。(二)选做题在自己的机器中,实现硬盘安装Fedora,具体可参考如下步骤:1.建立分区,以便在此分区安装Linux,在Windows里->磁盘管理,腾出一块磁盘空间,为“可用空间”即可。2.把Fedora安装镜像文件(.iso),拷入Windows某一盘符根目录下(如E:),注意该分区应该是Fat32。把第一个镜像文件中的initrd.img和vmlinuz两个文件解压缩,在该分区建立一目录,把上述两个文件拷入该目录(如E:linux)。3.使用WinGrub软件,然后Tools->Install Grub,点 Systerm Device ,然后在右边的选择框中选C ,然后再点BOOT FROM BOOT.INI 就好,如果不行就换;在Title 中写入Linux_Install(提示而已) 然后在 Time OUT 写上 20,点击Install按钮,这样grub就安装好了,配置文件是 c:bootgrubMENU.LST4.配置MENU.LST文件,首先用WinGrub软件查看分区情况,Tools->Partition List。修改MENU.LST文件。如下timeout 20title Windows at (hd0,0)root (hd0,0)chainloader +1title fc4install root (hd0,5) kernel (hd0,5)/linux/vmlinuz initrd (hd0,5)/linux/initrd.img 说明如下:hd0:表示第一块IDE硬盘,如果是移动硬盘则是hda。hd0后面的数字表示第几块分区,从0开始,如果不清楚,用WinGrub软件查看分区的情况设置。如果还有其他镜像安装,可以继续加的。5.安装Fedore开始,启动时候出现选择项Windows和fc4install,选择fc4install后,视同光盘安装。有几点不同:(1)在Installation Method选择“Hard drive”,Select Partition中,Directory holding images:选入“/dev/sda6”(我把镜像文件放着E盘,这里根据具体情况填写)。(2)在选定驱动上删除Liunx分区并创建默认的分区结构。6.安装完毕,系统会直接启动到Linux,需要进入Linux修改文件vi /boot/grub/menu.lst。五、课后思考1.如何实现多操作系统启动?2.为什么要设置交换分区?大小又应该如何设置?3.Linux中的硬盘大小应该如何划分?4.安装Linux需要几个分区?它们的作用是什么?实验二 Linux的常用命令(6课时)一、实验目的1.了解 Linux 字符界面的操作特点。2.验证Linux 命令的用途。3.掌握Linux 的基本操作、帮助。二、实验要求1.了解 Linux 字符界面的操作特点。2.掌握使用telnet方式或使用putty等工具登录Linux服务器。3.掌握Linux命令的使用方法。4.掌握Linux命令帮助的查看方法。5.掌握Linux中文件和目录操作命令。6.了解Linux常用的磁盘操作命令。7.掌握Linux中的链接文件操作。8.了解Linux中进程管理命令。9.掌握Linux中打包和压缩命令。三、预备知识(一)Shell命令简介操作系统具备5个主要功能:处理机管理、存储器管理、设备管理、文件管理和提供友好的用户接口。前4个功能是操作系统对计算机硬件系统的管理功能,操作系统通过用户接口与用户交互,以使用计算机的所有资源。操作系统提供的用户接口主要有3种:命令接口、程序接口以及图形用户接口。其中,命令接口又称作命令行解释程序,或者叫Shell,它通过字符界面(称作命令行)接受用户输入的命令,并把操作系统的响应以字符方式显示给用户;程序接口又叫做系统调用,是通过代码库的方式提供给用户程序(比如C 语言程序),以控制和访问计算机资源;图形用户接口是基于图标、窗口和菜单等图形界面,用户以鼠标、键盘、或其他设备,通过控制这些图形界面,来完成对计算机资源的控制和访问。大多数的操作系统都提供这3 种用户接口。本实验主要讨论 Linux 操作系统的命令接口,因为这个接口消耗资源少、响应直接、查错容易,所以如果 Linux 作为服务器的操作系统,一般只安装这个接口。Linux 的命令接口是通过用户输入的字符串(称作“Shell 命令”,简称为“命令”)来接收用户的控制的。Shell 命令一般由两个部分构成:命令名和参数,参数在一个Shell 命令中一般是可选项,一个命令也可能有多个参数。(二)有关常用命令对于以下列举的命令,请在课余时间,通过学习教材、参考书或查阅网络资源进行了解命令的使用。1.关机和重启相关指令;2.帮助命令man的使用;3.pwd、ls、mkdir、rmdir、cd、mv、rm、cp等文件目录管理命令;4.df、du、fdisk、mount和umount等磁盘管理命令;5.chmod和chown等文件权限管理命令;6.gzip、gunzip、tar与文件压缩打包命令;7.ln等链接文件命令;8.useradd(adduser)、userdel、groupadd、groupdel、passwd、who、id、whoami、su等用户和组管理命令;9.rpm软件包管理命令;10.其他系统命令,如date、cal等。四、实验内容(一)系统登录、注销和关机1.登录在本指导书中,Linux服务器的IP地址为192.168.148.3,大家在具体做实验的时候,服务器地址由任课老师提供。在客户机中远程登录Linux服务器,可采用Windows中的telnet命令或专用的Putty工具。如图2-1和图2-2为使用telnet命令登录服务器,图2-3和图2-4为使用Putty工具登录服务器。图2-1 Window XP中运行telnet IP地址命令图2-2 运行telnet后出现的登录窗口图2-3 使用Putty工具进行登录图2-4 使用Putty工具登录窗口图2-5 第一次登录检查用户环境图2-5中,为用户第一次登录服务器的时候,检查一下自己的家目录和当前操作用户,检查是否和自己的登录名相同,以免在批量创建用户的时候,建立错误,影响以后的学生实验。2.注销用户在登录后,在命令提示符下,只要输入命令“logout”或“exit”即可退出登录。3.关机(由于服务器权限等问题,以下“关机”部分实验请在自己机器上练习)(1)分别使用以下几条关闭计算机的指令,体会关机时执行的区别:ashutdown h nowbshutdown h +3cshutdown h 12:00dinit 0ehalt pfhalt h(2)分别使用以下几条关闭计算机的指令,体会关机时执行的区别:ashutdown r nowbshutdown r +3cshutdown r 11:00drebooteinit 6(二)在线帮助系统使用Linux系统提供在线帮助man page来对用户使用Shell命令提供帮助,man page的语法为:man Shell命令名Linux系统的在线帮助系统还包括info page,使用方法与man page相同,语法为:info Shell命令名如图2-6,是在Linux的命令提示符下,输入man ls并回车所查看到的ls命令的帮助,使用pagedown和pageup按钮可以上下翻屏,另外,输入q,可以退出帮助状态返回命令输入接口。图2-6 使用man ls查看ls命令的帮助(三)文件与目录管理1.基本操作类(1)使用pwd命令查看当前用户目录,若不是,使用cd命令切换到用户主目录;(2)使用ls命令查看当前用户主目录下的内容;(3)使用mkdir命令在用户主目录中创建三个目录,分别为Dir1、Dir2、Dir3;(4)使用rmdir命令删除Dir3目录;(5)使用cd命令进入Dir1目录;(6)使用mv命令将Dir2目录移动至Dir1目录;(7)使用rm指令删除Dir2目录;$(8)使用cp命令将用户主目录下的.bashrc文件拷贝至Dir1目录。2.文件权限类使用chmod指令,在Linux系统中设置指定文件的权限。(说明:以下权限实验,可以通过单双号同学合作验证某些权限,系统设定每位同学账号的时候,将每个班的奇偶数学号的同学设定为不同的两组。)(1)使用符号法设置文件权限a在用户主目录下创建目录Dir2、Dir3;b使用ls l命令查看以上两个目录的相关权限;c使用chmod命令,设置Dir2目录的权限为所有人都拥有所有权限; $d使用chmod命令,设置Dir3目录的权限为属主拥有读写权限,组成员有读和执行权限,其他用户没有任何权限。(2)使用八进制数字法设置文件权限a在用户主目录下创建目录Dir4、Dir5;b使用ls l命令查看以上两个目录的相关权限;c使用chmod命令,设置Dir4目录仅为属主拥有所有权限,其他用户没有任何权限;$d使用chmod命令,设置Dir5目录的权限为属主拥有所有权限,组成员有读和执行权限,其他用户没有任何权限。(3)使用chown命令,设置文件的属主a创建目录Dir6;b使用ls l命令查看刚创建目录的相关权限;$c使用chown命令将Dir6文件的属主更改为合作的同学。3.文件内容显示类(1)将/tmp目录下a.txt和b.txt(这两个文件及内容,已经由任课老师准备好)拷贝到用户目录下;(2)使用cat命令将用户主目录下的a.txt和b.txt连接生成d.txt;(3)使用more命令以每页8行的格式显示文件d.txt;$(4)使用lessheadtail命令显示文件d.txt的最后2行,头2行。4.文件(内容)查找(1)使用grep命令在文件d.txt 中搜索模式“linux”;(2)使用grep命令在文件d.txt搜索并显示所有包含 kernel 语句的代码行;(3)使用locate命令在根目录下查找相关字linux;$(4)自学fgrep和egrep命令。5.文件(名)查找使用find命令完成如下操作:(1)写出在/usr/bin下搜索find文件,搜索普通类型文件的指令;(2)写出在根目录下查找在系统中最后10分钟访问的文件;(3)写出在根目录下查找在系统中最后48小时访问的文件;(4)写出在根目录下查找在系统中为空的文件或者文件夹;(5)写出在根目录下查找在系统中属于root组的文件;(6)写出在根目录下查找在系统中最后5分钟里修改过的文件;(7)写出在根目录下查找在系统中最后24小时里修改过的文件;$(8)写出在根目录下查找在系统中属于root这个用户的文件。6.链接文件操作使用ln命令完成如下操作:(1)在用户主目录下用cp命令创建前面实验中文件d.txt的一个文件副本link.txt;(2)在用户主目录下用ln命令创建link.txt的符号链接文件symlink.txt;(3)在用户主目录下用ln命令创建link.txt的硬链接文件hardlink.txt;$(4)删除文件link.txt,观察symlink.txt和hardlink.txt文件变化。(四)文件系统与磁盘管理1.磁盘操作(1)使用df 命令列出服务器的磁盘空间使用情况以及节点使用情况;(2)使用df 命令列出服务器中文件系统类型为 ext3 的所有文件系统;$(3)使用du命令查看/home/public目录内各子目录及文件的大小和总的使用情况。2.光驱挂载使用mount和umount指令,挂载指定的文件系统。挂载光驱需在自己机器上实验,因此,为选做内容。(1)使用mount指令加载光驱设备,要求在指令中体现文件系统类型,使用的字符集是gb2312;$(2)使用umount指令将光驱卸载(可以使用两种方式)。(五)打包与压缩管理打包和压缩命令使用gzip、gunzip、tar文件压缩与解压缩命令,对文档或目录进行处理。注意:在使用以下命令时,请及时用ls命令观察当前目录下的文件,并注意执行打包与压缩的当前目录。1.tar 命令(存档和分发文件)(1)将用户目录的文件打包到mytar.tar;$(2)从mytar.tar中还原所有文件。2.gzip/gunzip 命令(文件压缩和解压)(1)将刚才的存档文件 mytar.tar 进行压缩(加-l参数显示压缩率);$(2)解压上步骤生成的压缩文件。3.tar 命令再使用(1)直接使用tar命令将用户目录的文件打包并压缩到 mytarzip.tar.zip;$(2)直接使用tar命令从 mytarzip.tar.zip 中还原所有文件。(六)ftp命令1.使用ftp命令登录到实验室ftp服务器(服务器地址和用户名、密码均由任课老师给出);2.使用cd命令转换到服务器的/user/ckj/tmp目录;3.使用get命令拷贝该目录中的ftpcopy.txt到你的用户目录中(注意你的本地目录);4.使用bye命令退出登录;$5.退回本地目录,查看拷贝文件是否在你的用户目录中。(七)进程管理1.使用ps命令查看当前进程状况, 记录查看结果;2.后台运行top命令;$3.kill终止进程命令,先用ps命令查看当前进程,然后使用 kill 命令杀死top进程。(注意使用kill -9)。(八)用户和组管理1.基本命令who、id、whoami、su等命令(1)使用who命令查看当前登陆系统的用户;(2)使用id命令查看当前用户的UID与GID;(3)使用whoami指令查看当前使用shell的用户名称;$(4)使用su命令从你目前用户切换至邻居同学的用户,然后切换回自己用户。2.用户和组添加命令groupadd和useradd等命令(由于服务器权限等问题,以下“用户和组”部分实验请在自己机器上练习)(1)使用groupadd office命令添加一个组;(2)使用tail命令查看/etc/group文件,显示刚才添加的office组信息;(3)使用useradd -g office user1命令添加一个用户,设定他属于office用户组;(4)使用passwd user1命令为该用户设置登录密码;$(5)使用tail命令查看/etc/passwd文件,检查用户的设置。(九)rpm命令(由于服务器权限等问题,以下“rpm命令”部分实验请在自己机器上练习)1.使用-q选项查询系统中是否安装ftp软件包。2.分别使用-i、-ivh选项安装两个软件包,体会两者的不同区别。3.使用-e选项,删除ftp软件4.使用-U选项,升级Apache软件$5.使用-V选项,校验上一个步骤中升级的Apache软件五、课后思考1.怎样使用Linux 提供的帮助系统来学习Linux 的使用?2.Linux将命令设置不同的执行权限有何意义?实验三 Linux的vi编辑器使用(2课时)一、实验目的1.了解Linux操作系统中的常用的文本编辑器。2.熟练掌握Linux下最常用的编辑工具vi编辑器的使用。3.了解 Linux 下使用 gcc 编程过程。二、实验要求1.能使用编辑器vi 完成一篇英文短文的录入。2.练习多种vi命令模式命令和末行模式命令。3.初步学会在Linux下使用gcc编程。三、预备知识(一)vi的基本概念vi 编辑器是Linux 系统下的标准编辑器,vi 可以分为三种状态,分别是命令行模式、插入模式和末行模式,各模式的功能区分如下:命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到末行模式。插入模式:只有在插入模式下,才可以做文字输入,按ESC 键可回到命令行模式。末行模式:将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等。在使用时通常把vi简化成两个模式,将末行模式也算入命令行模式。(二)vi的基本操作1.启动与退出启动 vi :在系统提示符号输入vi 及文件名称后,就进入vi 全屏幕编辑画面:$ vi myfile注意::进入vi 之后,处于命令行模式,要切换到插入模式才能够输入文字,在命令行模式下按下字母i 进入插入模式。退出 vi 及保存文件:在命令行模式下,按一下冒号:键进入底行模式,例如:: w filename (输入w filename 将文件以指定文件名filename 保存): wq (输入wq,存盘并退出vi): q! (输入q!, 不存盘强制退出vi)2.命令模式功能键(1)插入模式按 i 进入插入模式后,是从光标当前位置开始输入文字;按 a 进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按 o 进入插入模式后,是插入新的一行,从行首开始输入文字。从插入模式切换为命令行模式,按 ESC 键。(2)移动光标vi 可以直接用键盘上的光标来上下左右移动,但正规的vi 是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。按 ctrl+b:屏幕往后移动一页。按 ctrl+f:屏幕往前移动一页。按 ctrl+u:屏幕往后移动半页。按 ctrl+d:屏幕往前移动半页。按数字 0:移到文章的开头。按 G:移动到文章的最后。按$:移动到光标所在行的行尾。按:移动到光标所在行的行首。按 w:光标跳到下个字的开头。按 e:光标跳到下个字的字尾。按 b:光标回到上个字的开头。按#l:光标移到该行的第#个位置,如:5l,56l。(3)删除文字x:每按一次,删除光标所在位置的"后面"一个字符。#x:例如,6x 表示删除光标所在位置的"后面"6 个字符。X:大写的X,每按一次,删除光标所在位置的"前面"一个字符。#X:例如,20X 表示删除光标所在位置的"前面"20 个字符。dd:删除光标所在行。#dd:从光标所在行开始删除#行。(4)复制yw:将光标所在之处到字尾的字符复制到缓冲区中。#yw:复制#个字到缓冲区yy:复制光标所在行到缓冲区。#yy:例如,6yy 表示拷贝从光标所在的该行"往下数"6 行文字。p:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。e替换r:替换光标所在处的字符。R:替换光标所到之处的字符,直到按下ESC 键为止。u:回复上一次操作如果误执行一个命令,可以马上按下u,回到上一个操作。按多次"u"可以执行多次回复。cw:更改光标所在处的字到字尾处c#w:例如,c3w 表示更改3 个字3.末行模式下命令在使用末行模式之前,先按ESC 键确定已经处于命令行模式下后,再按:冒号即可进入末行模式。列出行号 set nu:输入set nu 后,会在文件中的每一行前面列出行号。跳到文件中的某一行#:#号表示一个数字,在冒号后输入一个数字,再按回车键跳到该行,如输入数字15,再回车,就会跳到文章的第15 行。查找字符/关键字:先按/键,再输入您想寻找的字符,如果第一次找的关键字不是想要的,可以一直按n 会往后寻找到要的关键字为止。?关键字:先按?键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按n 会往前寻找到您要的关键字为止。(三)Linux下GCC简介Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%30%。 gcc编译器能将C、C+语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。虽然我们称gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。 gcc的基本用法和选项 在使用gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。 gcc最基本的用法是gcc options filenames 其中options就是编译器所需要的参数,filenames给出相关的文件名称。 -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。 -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。 -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。 -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。 -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况 A)#include < myinc.h >B)#include “myinc.h” 其中,A类使用尖括号(< >),B类使用双引号(“ ”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜