《Linux基础及应用课件全套电子课件完整版ppt整本书电子教案最全教学教程整套课件.ppt》由会员分享,可在线阅读,更多相关《Linux基础及应用课件全套电子课件完整版ppt整本书电子教案最全教学教程整套课件.ppt(372页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Linux Linux基础及应用基础及应用第第1 1章章 LinuxLinux入门入门2/9/20231.1 Linux基础知识 Linux是专门为个人计算机所设计的操作系统。它最早是由Linus Torvalds设计的。Linux是在Internet开放环境中开发的,它由世界各地的程序员不断完善,而且免费供用户使用。2/9/2023Linux具有以下主要特性:开放性 多用户 多任务 良好的用户界面 设备独立性 提供了丰富的网络功能 2/9/2023可靠的系统安全 良好的可移植性 支持多种文件系统 2/9/2023需解决的问题:企业级技术支持;更多应用程序支持;微软的Windows系列产品之
2、所以能取得今天的市场地位,是与其上拥有众多的应用软件分不开的。在Linux产品中也必须装有先进的应用软件,在这方面,进展虽有,但太过缓慢。如果没有足够的需求,销售商们不会采用Linux,而如果没有足够的应用程序,就不会有需求。因此,应用程序这一关攻不下来,Linux就难以为继。标准化;UNIX最初也是一个自由软件,但发展到今天,已被各大厂商把持,版本繁多,互不兼容,这实际上阻碍了UNIX的发展。2/9/20231.2 Linux系统安装 做好安装前的准备工作:安装类型安装类型所需空间所需空间个人桌面包括图形化桌面环境,至少需要1.78G空闲空间。若兼选GNOME和KDE桌面环境,则至少需要1.
3、8GB的空闲空间工作站工作站安装,包括图形化桌面环境和软件开发工具,至少需要2.1GB的空闲空间。兼选GNOME和KDE桌面环境至少需要2.2GB空闲空间服务器最基本的没有X(图形化环境)的服务器安装需要850GB空闲空间;若要安装除X以外的所有软件包组,需要1.5GB空闲空间;若要安装包括GNOME和KDE桌面环境的所有软件包,至少需要5.0GB空闲空间定制基本的定制安装需要475MB,如果选择了全部软件包,则至少需要5.0GB空闲空间2/9/2023Linux的分区规定:(1)设备管理Linux把各种IDE设备分配了一个由hd前缀组成的文件;而对于各种SCSI设备,则分配了一个由sd前缀组
4、成的文件。例如,第一个IDE设备,Linux就定义为hda;第二个IDE设备就定义为hdb;下面以此类推。而SCSI、SATA、USB设备就应该是sda、sdb、sdc等。2/9/2023(2)分区数量对于每一个硬盘(IDE或SCSI)设备,Linux分配了一个1到16的序列号码,这就代表了这块硬盘上面的分区号码。例如,第一个IDE硬盘的第一个分区,在Linux下面映射的就是hda1,第二个分区就称作是hda2。对于SCSI、SATA、USB硬盘则是sda1、sdb1等。(3)各分区的作用Linux规定了主分区(或者扩展分区)占用1至16号码中的前4个号码。以第一个IDE硬盘为例说明,主分区(
5、或者扩展分区)占用了hda1、hda2、hda3、hda4,而逻辑分区占用了hda5到hda16等12个号码。因此,Linux下面每一个硬盘总共最多有16个分区。2/9/2023 安装Fedora Core Linux 1要完成Fedora Linux在本地计算机上的安装,需要准备一张Fedora的安装盘或者自行下载32位或者64位的Fedora系统iso文件,本文安装的是Fedora22 KDE桌面版,操作步骤如下:2/9/2023(1)插入资源光盘,从光盘引导后会见到如图1-1所示的安装界面。2/9/20232选择语言2/9/2023(3)进入用户界面安装信息摘要界面。2/9/2023(4
6、)配置键盘。2/9/2023(5)配置时区。2/9/2023(6)设置主机名称。2/9/2023(7)设置磁盘分区。选择自动分区2/9/2023 选择自定义分区方案2/9/20232/9/20232/9/2023(8)安装配置界面。2/9/2023(9)为root用户设置密码。(10)创建用户。2/9/2023(11)安装完成(12)选择支持的语言(13)选择键盘布局或其他输入方式。2/9/2023(14)设置隐私。(15)配置完成。2/9/20231.3 Linux文件及文件系统 Linux中常见的文件类型 1系统文件2/9/20232编程和脚本文件2/9/20233常见的媒体文件 2/9/
7、2023文件扩展名说明.au音频文件.gifGIF图像文件.swfFlash动画文件.html/htmHTML文件.xmlXML文件.bmp位图文件.jpg图像文件.pdfPDF文档的电子映像,代表Portable Document Format(可移植文档格式).png图像文件PNG(Portable Network Graphic,可移植网络图形).psPostScript文件,为打印而格式化过的文件.txt纯ASCII文本文件.wav音频文件.xpm图像文件4压缩和归档文件2/9/2023 Linux文件系统文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件
8、的方法。也指用于存储文件的磁盘或分区,或文件系统种类。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。2/9/2023Linux支持多种文件系统。下面是最重要的几个:1minix2xia3ext24ext35.ext46nfs 7sysv2/9/2023LinuxLinux基础及应用基础及应用第第2 2章章 LinuxLinux基础命令基础命令 2.1 系统基本操作 1系统登录(1)root用户:超级用户账号,使用这个账号可以在系统中做任何事情。(2)普通用户:只能进行有限的操作。用户登录分两步进行:第一步,输入用户的登录名,系统根据该登
9、录名来识别用户;第二步,输入用户的口令,该口令是用户自己选择的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。2系统退出 不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。3重启和关闭系统修改口令:Linux允许不同的用户通过控制口令来保障信息的安全,用户只有通过正确的口令才能登录系统,Linux系统下用户通过passwd命令来修改口令。Linux用户包括超级用户和普通用户,超级用户具有最高权限,可以修改所有用户的口令,而普通用户只能修改自己的口令。passwd命令一般格式:passwd 选项 账户名称 2.2 Linux常用操作
10、命令2.2.1文件和目录的基本概念:1文件与文件名 文件名是文件的标识,它由字母、数字、下划线和圆点组成的字符串来构成。用户应该选择有意义的文件名。Linux要求文件名的长度限制在255个字符以内。2文件的类型 Linux系统中有三种基本的文件类型::普通文件、目录文件和设备文件。普通文件是用户最经常面对的文件,它又分为文本文件和二进制文件。目录文件的主要目的是用于管理和组织系统中的大量文件。它存储一组相关文件的位置、大小等与文件有关的信息。目录文件往往简称为目录。Linux系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。从用户的角度来看,对I/
11、O设备的使用和一般文件的使用一样,不必了解I/O设备的细节。设备文件可以细分为块设备文件和字符设备文件。3树型目录结构 Linux系统通过目录将系统中所有的文件分级、分层组织在一起,形成了Linux文件系统的树型层次结构。以根目录为起点,所有其他的目录都由根目录派生而来。一个典型的Linux系统的树型目录结构:4工作目录、用户主目录与路径 从逻辑上讲,用户在登录到Linux系统中之后,每时每刻都处在某个目录之中,此目录被称作工作目录或当前目录(Working Directory)。工 作 目 录 用“.”表 示,其 父 目 录 用“.”表示。用户主目录是系统管理员增加用户时建立起来的(以后也可
12、以改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同。路径是指从树型目录中的某个目录层次到某个文件的一条道路。此路径的主要构成是目录名称,中间用“/”分开。任一文件在文件系统中的位置都是由相应的路径决定的。用户在对文件进行访问时,要给出文件所在的路径。路径又分相对路径和绝对路径。绝对路径是指从根目录开始的路径,也称为完全路径;相对路径是从用户工作目录开始的路径。2.2.2文件和目录命令1cat命令cat命令用于将文件内容在标准输出设备上显示出来,它类似于DOS下的type命令。cat命令除了显示文件功能外,还可用来连接两个或多个文件。cat命令用于显示文件内容的格式:cat 选项
13、文件名1 文件名2文件名N 命令主要选项含义:-n:由1开始对文件所有输出的行数编号。-b:和-n相似,只不过对于空白行编号。-s:当遇到有连续两行以上的空白行,就代换为一行的空白行。-v:显示非打印字符。2more命令more命令用来对内容比较多的文件进行分页显示。more命令的格式:more 选项 文件名该命令一次显示一屏,显示一屏后暂停,并在底部显示More-,同时还显示已经显示的内容占整个内容的百分比。按Enter键可以向后移动一行;按空格键可以向后移动一页;按Ctrl+B或b键显示上一屏内容;按Q键退出。3cp命令 cp命令用于复制文件或目录,它相当于DOS中的copy命令。cp命令
14、的格式:cp 选项 源文件或目录 目标文件或目录该命令把指定的源文件复制到目标文件,或者把指定目录下的多个文件复制到目标目录中。如果指定的目标文件名存在,用cp命令拷贝文件后,默认情况下这个文件就会被新文件覆盖。4pwd命令pwd命令用于显示当前所处目录。pwd命令的格式:pwd此命令不带任何参数,用于显示当前目录的绝对路径。5ls命令ls命令用于查看目录的内容。ls命令的格式:ls 选项 目录或文件 该命令列出指定目录的内容,默认情况下,输出条目按字母顺序排列。6cd命令cd命令用于更改目录。cd命令的格式:cd 目录名该命令将当前目录改变至指定的目录。若没有指定的目录,则回到用户的个人目录
15、。该命令要求用户必须拥有对指定目录的执行和读权限。要进入上一级目录,直接执行”cd.”命令即可。7mkdir命令mkdir命令用于创建目录。mkdir命令的格式:mkdir 选项 目录名该命令创建目录时,要求创建目录的用户在当前目录中具有写权限,并且所创建的目录名不是当前目录下已有的目录或文件名。8rmdir命令rmdir命令用于删除空的目录。rmdir命令的格式:rmdir 选项 目录名该命令从当前目录下删除一个或多个子目录,被删除的目录必须是空目录。9rm命令rm命令用于删除文件或目录。rm命令的格式:rm 选项 文件名或目录名该命令删除一个或多个文件(目录),它可以将某个目录及其下的所有
16、文件和子目录均删除。如要删除目录必须加上参数“-r”,否则只删除文件而不删除目录。10mv命令mv命令用于移动或更名现有的文件或目录。mv命令的格式:mv 选项 源文件或目录 目标文件或目录该命令根据第二个参数的类型是文件或者目录来选择是执行重命名还是移动操作。当第二个参数是文件时,执行重命名操作,此时,源文件或目录只有一个;当第二个参数是已存在的目录时,源文件或目录可以有多个,执行移动操作。11grep、fgrep和egrep命令 这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep
17、命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。语法:grep 选项 查找模式 文件名1,文件名2,egrep 选项 查找模式 文件名1,文件名2,fgrep 选项 查找模式 文件名1,文件名2,12find功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。语法:find 起始目录 寻找条件 操作13locate命令 locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立
18、。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。该命令的一般形式为:locate 相关字14wc命令wc命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。语法:wc 选项 文件说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。该命令各选项含义如下:-c 统计字节数。-l 统计行数。-w 统计字数。15ln命令该命令在文件之间创建链接。语法:ln 选项 目标 链接名ln 选项 目标 目录16sort命令 sort命令的功能是对文件中的各行进行排序。实际上,so
19、rt命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。语法:sort 选项 文件17uniq命令 文件经过处理后在它的输出文件中可能会出现重复的行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。语法:uniq 选项 文件 18修改文件权限 文件或目录的访问权限分为只读,只写和可执行三种。用户也可根据需要把访问权限设置为需要的任何组合。有三种不同类型的用户可对文件或目录进行访问:文件所有者、同组用户、其他用户。用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。
20、利用chgrp命令来更改某个文件或目录的用户组。19comm命令 命令功能是可以用来比较两个文件内容的差别。但只对两个有序的文件进行比较,排序可以使用sort命令。语法:comm-123 file1 file2 2.2.3进程管理命令 1进程及作业的概念 Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程这种进
21、程和终端没有联系,是一个进程序列。监控进程(也称守护进程)Linux系统启动时启动的进程,并在后台运行。2启动进程 启动一个进程有两个主要途径:手工启动和调度启动。(1)手工启动由用户输入命令,直接启动一个进程便是手工启动进程。但手工启动进程又可以分为很多种,根据启动的进程类型不同、性质不同,实际结果也不一样。(2)调度启动有时候需要对系统进行一些比较费时而且占用资源的维护工作,这些工作适合在深夜进行,这时候用户就可以事先进行调度安排,指定任务运行的时间或者场合,到时候系统会自动完成这一切工作。3进程控制命令(1)who命令该命令主要用于查看当前在线上的用户情况。(2)w命令该命令也用于显示登
22、录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作(3)ps命令ps命令用于查看Linux系统的进程状态。(4)top命令top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。(5)kill命令当需要中断一个前台进程的时候,通常是使用Ctrl+C 组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。2.2.4 文件压缩命令1gzip命令gzip命令用于对文件进行压缩和解
23、压缩。一般格式为:gzip 选项 压缩文件名/解压缩文件名2unzip命令unzip命令用于解压winzip格式的压缩文件。一般格式为:unzip 选项 压缩文件名.zip 3tar命令tar命令主要对文件和目录进行打包。一般格式为:tar 选项 文件或目录名2.2.5 网络命令1ping命令ping命令用于测试本机与目标主机是否连通。一般格式为:ping 选项 主机名(IP地址)该命令使用ICMP传输协议,发出要求回应的信息,若目标主机的网络功能没问题,就会回应该信息,因而得知和目标主机的连接正常。2ifconfig命令ifconfig命令用于显示或设置网络设备。一般格式为:ifconfig
24、 网卡号 选项 IP地址该命令可设置网络设备的状态,或是显示当前网络状态。3netstat命令 netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。一般格式为:netstat 选项4traceroute命令 traceroute命令用于显示本机到目标主机的路由路径。一般格式为:traceroute 目标主机名或IP地址5finger命令finger命令用于显示主机系统中用户的信息。一般格式为:finger 选项 账号名称单独执行finger命令,它会显示本地主机所有用户的登录信息,包括账号名称、真实姓名、登录的终端、空闲时间、登录时间以及地
25、址和电话。2.2.6 联机帮助命令1man命令man命令用于显示某一命令的帮助手册。一般格式为:man 选项 命令名2help命令help命令用于查看所有shell命令的帮助信息。一般格式为:help 命令名2.2.7 操作要点1Linux是大小写敏感的系统。2文件名最多可以有256个字符,可以包含数字,点号”.”,下划线”_”,横杆”-”,加上其他一些不被建议使用的字符。3文件名前面带”.”的文件在输入”ls”或者”dir”命令时一般不显示。可以把这些文件看作是隐含文件,可以使用命令”ls a”来显示这些文件。4“/”对等于DOS下的”(根目录,意味着所有其他目录的父目录,或者是在目录之间和
26、目录和文件之间的一个间隔符号)5在Linux系统下,所有的目录显示在单一目录树下(有别于DOS系统的驱动器标识)。6在配置文件里,以#打头的行是注释行。7Linux是继承性的多用户操作系统。8整个系统范围的设定一般放在目录/etc下。9和其他的多用户操作系统类似,在Linux下,文件和目录有自己的拥有者和访问权限。10命令参数选项一般由”-”引导,后面跟一个字符(或者”-“,当选项超过一个字符时)。举个例子,输入命令 rm-help。2.3 Linux启动过程详解1启动GRUB/LILO GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主
27、引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来装载一个GRUB菜单或是GRUB的命令环境。目前 GRUB 分成 GRUB legacy(以前称GRUB)和 GRUB 2。版本号是 0.9x 以及之前的版本都称为 GRUB legacy,从 1.x 开始的就称为 GRUB 2。LILO(Linux Loader)是一个优秀的开机启动管理程序,它的最大的好处就是独立于文件系统,可以启动各种操作系统:从Microsoft、OS/2、SCO Unix、Unixware、PC-DOS到Linux等等。2 加载内核 内核映像是一个压缩过的内核映像。在这个内核映像前面是一个例程,它实
28、现少量硬件设置,并对内核映像中包含的内核进行解压,然后将其放入内存中。该例程会调用内核,并开始启动内核引导的过程。3执行init进程 init进程(Sysv init启动系统)是系统所有进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。4 通过/etc/inittab文件进行初始化 init的工作是根据/etc/inittab来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等等 2.4 Linux系统服务1系统服务的作用Linux系统服务主要有以下作用:(1)启动、停止、暂停、恢复或禁用远程和本地计算机服务。(2)管理本地和远程计
29、算机上的服务。(3)设置服务失败时的故障恢复操作。(4)为特定的硬件配置文件启用或禁用服务。(5)查看每个服务的状态和描述。2 Linux系统服务 Linux在启动时要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。2.5 系统安全性1 系统管理员安全安全管理主要分为四个方面:防止未授权存取 防止泄密 防止用户拒绝系统的管理 防止丢失信息2 文件系统安全 文件系统概述 设备文件/etc/mknod命令 安装和拆卸文件系统 系统目录和文件 3/etc/passwd文件/etc/passwd文件是Linux安全的关键文件之一。该文件用于用户登录时校验用
30、户的口令,当然应当仅对root可写。文件中每行的一般格式为:LOGNAM:PASSWORD:UID:GID:USERINFO:HOME:SHELL4 /etc/group文件 /etc/group文件含有关于小组的信息,/etc/passwd中的每个G I D在本文件中应当有相应的入口项,入口项中列出了小组名和小组中的用户。这样可方便地了解每个小组 的 用 户,否 则 必 须 根 据 GID在/etc/passwd文件中从头至尾地寻找同组用户。5增加和删除用户增加用户有三个过程:在/etc/passwd文件中写入新用户的入口项。为新登录用户建立一个HOME目录。在/etc/group中为新用户
31、增加一个入口项。6 系统检查命令(1)du 报告在层次目录结构(当前工作目录或指定目录起)中各目录占用的磁盘块数。(2)df 报告整个文件系统当前的空间使用情况。(3)ps 检查当前系统中正在运行的所有进程。对于用了大量CPU时间的进程、同时运行了许多进程的用户、运行了很长时间但用了很少CPU时间的用户进程应当深入检查。还可以查出运行了一个无限循环的后台进程的用户,未注销帐户就关闭终端的用户(一般发生在直接连线的终端)。(4)who 可以告诉系统管理员系统中工作的进展情况等等许多信息,检查用户的登录时间,登录终端。(5)su 每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/s
32、ulog文件中写一条信息。(6)login 在一些系统中,login程序记录了无效的登录企图LinuxLinux基础及应用基础及应用第第3 3章章 LinuxLinux下的下的C C编程基础编程基础 3.1 Linux下C语言编程概述3.1.1 C语言简单回顾C语言的特点:(1)简洁紧凑、灵活方便(2)运算符丰富(3)数据结构丰富(4)C是结构式语言(5)C语法限制不太严格,程序设计自由度大(6)C语言允许直接访问物理地址,可以直接对硬件进行操作(7)C语言程序生成代码质量高,程序执行效率高(8)C语言适用范围大,可移植性好3.1.2 Linux下C语言编程环境概述(1)编辑器 Linux下的
33、编辑器就如Windows下的word、记事本等一样,完成对所录入文字的编辑功能。Linux中最常用的编辑器有Vi(Vim)和Emacs,它们功能强大,使用方便,广受编程爱好者的喜爱。(2)编译器 编译是指源代码转化生成可执行代码的过程。可见,在编译过程是非常复杂的,它包括词法、语法和语义的分析、中间代码的生成和优化、符号表的管理和出错处理等。在Linux中,最常用的编译器是Gcc编译器。(3)调试器 Gdb是绝大多数Linux开发人员所使用的调试器,它可以方便地设置断点、单步跟踪等,足以满足开发人员的需要。(4)项目管理器 Linux中的项目管理器“Make”有些类似于Windows中Visu
34、al C+里的“工程”,它是一种控制编译或者重复编译软件的工具。3.2 vi编辑器3.2.1 vi的工作模式1命令模式 当用户启动vi后,vi就处于命令模式。此时输入的任何字符都被当作编辑命令。如i表示插入命令、r表示替换命令等。不管在什么时候,只要按一下Esc键,vi就会回到命令模式。2插入模式 在命令模式下,按字母i、a、o、r等命令就可以切换到插入模式。3末行模式 在插入模式下,按Esc键回到命令模式,再按冒号(:)键,就会转换到末行模式,此时光标停留在状态行上,并等待用户输入所需的末行模式的命令。用户可以用它来保存文件、装入另外的文件或退出vi。3.2.2 vi的启动和退出1启动vi
35、在系统提示符下输入vi及文件名称后,就进入vi全屏幕编辑界面。2退出vi当编辑完文件后,准备返回到shell状态时,需执行退出vi的命令。在命令行模式下,按一下冒号(:)键进入末行模式。(1):wq 保存文件内容并退出编辑器,回到shell状态。(2):q!不保存内容强制退出vi。(3):ZZ 仅当编辑的内容做过修改时,才将将缓冲区的内容保存到文件。(4):x 与:ZZ功能相同。3.2.3 文本输入1插入命令(1)i 在i命令之后输入的内容都插在光标位置之前,光标后的文本相应向后移动。如按Enter键,就插入新的一行或者换行。(2)I 输入I命令后,光标移动到该行的行首,输入相应文本则插入到行
36、首相应位置。2附加命令(1)a 在a命令之后输入的内容都插在光标位置之后。(2)A 输入A命令后,光标移动到该行的行尾,输入相应文本则插入到行尾相应位置。3打开命令(1)o 在光标所在行的下面新开辟一行,输入的文本就插入该行。(2)O 在光标所在行的上面新开辟一行,输入的文本就插入该行。4移动光标3.2.4 文本修改1.删除与替换(1)删除 在插入模式下,用Backspace键来删除前面的字符,还可以用Delete键来删除当前字符。也可在vi的命令模式下用一些命令来删除一个字符、一个单词或者整行内容等(2)替换在vi的命令模式下还提供了一些命令来替换字符、单词或者进行整行替换 2.复制、粘贴和
37、剪切(1)复制 在vi编辑器中复制的方式有两种:鼠标方式和命令方式。鼠标方式同windows操作系统的复制操作类似,vi提供的复制命令见表(2)粘贴与复制一样,vi编辑器中粘贴的方式也有两种,且不同的复制方式对应不同的粘贴方式。粘贴方式同windows操作系统的粘贴操作类似,vi提供的粘贴命令很简单,有以下两种形式。1)p:在当前光标后面粘贴。2)P:在当前光标前面粘贴。(3)剪切在vi编辑器中,所有的删除命令也是剪切命令,因为删除的内容都被送到剪贴板中。如果用户用剪切命令剪切,可将剪切的内容使用粘贴命令粘贴。3.撤销使用撤销命令可撤销用户最后一次的操作。撤销命令很简单,有以下两种形式。u:取
38、消上次的操作U:可以恢复对光标所在行的所有改变。4.查找 vi提供字符串查找功能,包括向前查找、向后查找、继续上一次查找等。当vi向前查找,从光标当前位置向前查找,当找到文本的开头时,它就到文本的末尾继续查找;当vi向后查找,从光标当前位置向后查找,当找到文本的最后时,它就到文本的开头继续查找。3.2.5 文件操作1.打开文件(1)打开一个文件在命令模式下,使用命令:vi file。其中file是指定路径的文件,如果没有指定路径,就默认为当前目录。例如,输入vi test 就可以打开当前目录下的test文件,此时按字母i或a就可以切换到插入模式进行文本输入。(2)打开多个文件vi能一次打开多个
39、文件,使用命令:vi file1 file2。其中file1,file2是指定路径的两个文件,如果没有指定路径,就默认为当前目录。例如,输入vi test main.c 就可以打开当前目录下的test、main.c文件。2.保存文件(1):w 将缓冲区的内容保存到当前文件中。(2):w file 将缓冲区的内容保存到名为file的文件中。如果用户另存为的file文件已经存在,则使用该命令保存时状态行会出现“File exists(add!to override)”的提示,即需使用“:w!file”命令来强制覆盖。(3):w!file 强制将缓冲区的内容保存到名为file的文件中。3.3 Ema
40、cs3.3.1 Emacs的基本操作1启动Emacs在系统提示符下直接输入emacs命令,则进入emacs的欢迎界面 2使用Emacs(1)复制、剪切和粘贴(2)查找文本(3)移动光标(4)打开、保存和退出文件3.3.2 Emacs的编译概述 Emacs不仅仅是个强大的编译器,它还是一个集编译、调试等于一体的工作环境。1Emacs中的模式 Emacs中并没有像Vi中那样的“命令行”、“编辑”模式,只有一种编辑模式。Emacs的“模式”,是指Emacs里的各种辅助环境。2Emacs编译调试程序Emacs默认的编辑命令是对一个make的调用。用户可以打开“tool”下的“Compile”进行查看。
41、Emacs可以支持大量的工程项目,以方便程序员的开发。另外,Emacs为Gdb调试器提供了一个功能齐全的接口。在Emacs中使用Gdb的时候,程序员不仅能够获得Gdb用其他任何方式运行时所具有的全部标准特性,还可以通过接口增强而获得的其他性能。3.4 Gcc编译器3.4.1 Gcc简介GCC是GNU公社的一个项目,是一个用于编程开发的自由编译器。Gcc编译器能将C、C+语言源程序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,Gcc将生成一个名为a.out的文件。3.4.2 Gcc的基本用法和选项 Gcc最基本的用法是:gcc 选项 文件名常用的选项如下:-c:只编译,不连接成
42、为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。-o output_filename:确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。-E:预处理后即停止,不进行编译、汇编及连接。-g:产生符号调试工具(GNU的gdb)所必要的符号信息,要想对源代码进行调试,必须加入这个选项。-O:对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢
43、一些。3.4.3 编译多个源文件 许多重要的程序都是由多个源代码文件组成,并且执行最后的链接之前,各个源文件都必须编译成目标文件。为此,要向gcc传递要编译的每个源代码文件名。可以使用如下gcc命令来编译多个源文件:rootlocalhost root#gcc file1.c file2.c file3.c o programgcc将创建file1.o、file2.o和file3.o,然后把它们链接在一起创建program目标文件 3.5 Gdb调试器GDB四个方面的功能:(1)启动程序,可以按照自定义的要求随心所欲的运行程序。(2)可让被调试的程序在所指定断点处停住。(3)当程序被停住时,可
44、以检查此时程序中所发生的事。(4)动态的改变程序的执行环境。3.5.1 启动Gdb 启动GDB的方法有以下几种:(1)gdb programprogram也就是执行文件,一般在当前目录下。(2)gdb core用gdb同时调试一个运行程序和core文件,core是程序非法执行core dump后产生的文件。(3)gdb pid如果程序是一个服务程序,那么可以指定这个服务程序运行时的进程ID,gdb会自动进行调试。3.5.2 设置断点 Gdb中使用break命令来设置断点,该命令有如下四种形式:break line-number:使程序恰好在执行给定行之前停止。break function-na
45、me:使程序恰好在进入指定的函数之前停止。break line-or-function if condition:如果condition(条件)是真,程序到达指定行或函数时停止。break routine-name:在指定例程的入口处设置断点 3.6 Make工程管理器Make工程管理器也是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作。3.6.1 Makefile基本概念 Makefile 文件相当于程序编译过程中的批处理文件。是工具程序make 运行时的输入数据文件。只要在含
46、有Makefile 的当前目录中键入make 命令,它就会依据Makefile 文件中的设置对源程序或目标代码文件进行编译、连接或进行安装等活动。1Makefile变量 Makefile变量名是不包括“:”、“#”、“=”前置空白和尾空白的任何字符串。同时,变量名中包含字母、数字以及下划线以外的情况应尽量避免,因为它们可能在将来被赋予特别的含义。变量名是大小写敏感的。Makefle中的变量使用均使用格式为:$(VAR)。Makefile变量分为用户自定义变量、预定义变量、自动变量及环境变量。2Makefile基本结构Makefile是Make读入的唯一配置文件,在一个Makefile中通常包含
47、如下内容:(1)需要由make工具创建的目标体(target),通常是目标文件或可执行文件;(2)要创建的目标体所依赖的文件(dependency_file);(3)创建每个目标体时需要运行的命令(command)。3Makefile规则一般的,Makefile中的一条语句就是一个规则。make还定义了隐式规则和模式规则。(1)隐式规则隐含规则能够告诉make怎样使用传统的技术完成任务,这样,当用户使用它们时就不必详细指定编译的具体细节,而只需把目标文件列出即可。(2)模式规则模式规则是用来定义相同处理规则的多个文件的。模式规则能引入用户自定义变量,为多个文件建立相同的规则,从而简化Makef
48、ile的编写。3.6.2 Make管理器的使用使用make管理器非常简单,在make命令后键入目标名即可建立指定的目标:make target。通过命令行选项中的target,可指定make要编译的目标,并且允许同时定义编译多个目标,操作时按照从左向右的顺序依次编译target选项中指定的目标文件。3.7 使用autotoolsautotools的使用流程(1)手工编写Makefile.am这个文件。(2)在源代码目录树的最高层运行autoscan,然后手动修改configure.scan文件,并改名为configure.ac或configure.in。(3)运行aclocal,它会根据con
49、figure.ac的内容生成aclocal.m4文件。(4)运行autoconf,它根据configure.ac和aclocal.m4的内容生成configure这个配置脚本文件。(5)运行automake-add-missing,它根据Makefile.am的内容生成Makefile.in。(6)运行configure,它会根据Makefile.in的内容生成Makefile这个文件。LinuxLinux基础及应用基础及应用第四章第四章 进程控制开发进程控制开发4.1 Linux下进程概述4.1.1 进程的概念1进程的引入2进程及其特征(1)动态性(2)并发性(3)独立性(4)异步性(5)结
50、构特征:进程由程序、数据和进程控制块三部分组成3进程与程序的关系程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。4.1.2 进程的结构(1)进程状态(2)调度信息(3)标识符(4)内部进程通信信息(5)链接信息(6)时间和计时器(7)文件系统(8)虚拟内存信息(9)处理器信息4.2 Linux进程控制编程4.2.1 进程的创建方法:调用系统调用 fork 系统调用的语法格式:pid=fork();4.2.2 进程的等待pid_t wa