1 / 32
文档名称:

Linux操作系统实训报告.pdf

格式:pdf   大小:3,081KB   页数:32页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Linux操作系统实训报告.pdf

上传人:1781111**** 2024/5/11 文件大小:3.01 MB

下载得到文件列表

Linux操作系统实训报告.pdf

相关文档

文档介绍

文档介绍:该【Linux操作系统实训报告 】是由【1781111****】上传分享,文档一共【32】页,该文档可以免费在线阅读,需要了解更多关于【Linux操作系统实训报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..2010届软件学院毕业设计报告书目:Linux操作系统实训报告院系名称:软件学院专业班级:网络系统管理0802学生姓名:樊卓豪学号:************指导教师:谭玉波教师职称:副教授:..20105月25日摘要学****在LINUX下搭建、设置应用服务的运行环境及系统维护。煅炼学生搜集有关Linux资料,在资料文档的帮助下,运用Linux的基本知识及常用的操作命令来解决问题的能力。使我们能够较熟练地掌握:多任务、多用户操作系统--Linux系统的安装与配置、用户管理、文件管理、进程管理、vi的使用、Shell环境设置、编写启动脚本、配制内核参数、X-Window使用、使用SSH、数据库的系统配置及安装、网络基础知识及各种常用网络通信工具的使用等。关键词:进程控制:..录Linux命令..............................................................................................................................................................................................................................................................................................................................................................................................................................................................2第二章Vi编辑器........................................................................................................................................................................................................................................................................................................................................................................13第三章Linux下C语言编程.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................19第四章进程控制和通信........................................................................................................................................................................................................................................................................................................................................................22:........................................................................................................................................................................................................................................24结论................................................................................................................................................26致谢27参考文献……………………………………………………………………………………………28:..第一章Linux命令操作系统简介Linux的起源UNIX系统的快速发展,引起了计算机科学家AndrewTanenbaum的强烈好感,为了方便学生更好的了解操作系统的工作原理,他开发了一个迷你的UNIX,即Minix系统。1991年10月,芬兰赫尔辛基的学生LinuxsTorvalds在Minix的基础上开发了大约一万行的代码,,后来在众多黑客的开发下,。此后Linux各种版本开始流行起来。1999年发布了Linux中文版本。严格的说,Linux不算是一个操作系统,只是一个操作系统的内核,即计算机软件与硬件之间通信的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。GNU是RichardStallman组织的一个项目,世界各地的程序员可以编写GNU程序,同时遵循GPL协议,允许任何人随意更改。不过,修改后的程序也要遵守GPL协议。Linux的特点:完全免费。由于Linux遵循通用的公共许可证GPL,因此任何人有使用、拷贝和修改Linux的自由。高效安全稳定。UNIX操作系统的稳定性是众所周知的,Linux继承了UNIX核心的设计思想,具有执行效率高、安全和稳定性好的特点。支持多种硬件平台。Linux能在笔记本电脑、PC机、工作站、甚至大型机上运行,并能在x86、MIPS、PowerPC、SPARC、和Alpha等主流的体系结构上运行。友好的用户界面。Linux提供了类似Windows图形界面的X-Windows系统,用户可以使用鼠标方便、直观、快捷的进行操作。:..强大的网络功能。网络是Linux的生命,完善的网络支持是Linux与生俱来的能力,所有Linux在通信和网络功能方面优于其他操作系统。支持多任务、多用户。Linux是多任务、多用户的操作系统,可以支持多个使用者同时使用并共享系统的磁盘、外设和处理器等系统资源。Linux的保护机制使每个应用程序和用户互不干扰,任何一个任务不崩溃,其他任务仍然正常运行。VmwareWorkstation6是目前比较主流的虚拟机软件,也是唯一的能在Windows和Linux主机平台上运行的虚拟计算机软件。它能真实的模拟物理计算机的所有基本功能,是多平台学****不可或缺的虚拟软件。首先,打开VmwareWorkstation6虚拟机软件,在主界面中选择RedHadEnterpriseLinux4虚拟计算机系统,mands框架中的“StartthisVirtualmachine”按钮,运行RedHadEnterpriseLinux4虚拟系统。,但不能使用以下字符做文件名:!@#$%^&*()[]{}’”/;<>空格?Linux区分大小写ABCAbc不同?文件名中如果有多个小数点,最右边的一个为分隔符,表示文件的类型,,.“/”为根目录、目录分隔符和目录与文件的分隔符。如:/home/feng/。⑴man语法:man命令符:..man命令说明:对你熟悉或不熟悉的命令提供帮助解释(按空格键显示下一页,按b键返回,按q键退出)。⑶使用权限:所有用户。⑷范例:例1:显示vi命令的帮助解释,如图1-1所示。[******@linuxroot]#manvi图1-⑴ls语法:ls[选项|参数]目录名⑵ls命令说明:用于显示指定目录或文件的相关信息。⑶使用权限:所有用户。⑷ls命令参数选项见表1-1。表1-1ls命令参数选项选项选项功能-a显示所有文件和目录,包括隐含文件-l显示文件的完整信息d表示目录(directory),如果是一个表示是文件,如果是l则表示是一个连接文件(link)?表示文件或者目录许可权限,分别用可读(r),可写(w),可运行(x)。:..在每个文件名的后面或是前面添加一个特定的后缀字符的方法指出它的类型/:子目录*:可执行文件无::隐含文件-r将文件以反次序显示(依英文字母顺序)-t将文件依建立时间的先后顺序列出,后建的排在前面-A同-a,但不列出“.”当前目录和“..”父目录-R若目录下有文件,则列出其下文件⑸范例:例1:显示目录或文件的详细列表并以创建时间的先后反次序显示,如图1-2所示。图1-2显示列表例2:显示目录(子目录不为空时显示子目录)详细列表,如图1-3所示。图1-3显示详细列表(R参数)例3:显示所有文件和目录,包括隐含文件但不列出“.”当前目录和“..”父目录,在每个文件名的后面或是前面添加一个特定的后缀字符的方法指出它的类型,如图1-4所示。:..图1-⑴mkdir语法:mkdir[选项|参数]目录名⑵mkdir命令说明:用于创建目录。⑶使用权限:所有用户。⑷mkdir命令参数选项:-p:确保目录名称存在,不存在的话就创建一个。-m:在创建目录时设置目录权限。⑸范例:例1:使用自己的学号和姓名各创建一个子目录,并用ls命令观察结果,如图1-5所示。图1-5使用mkdir命令创建子目录例2:创建一个已经存在的子目录,观察显示结果,如图1-6所示。:..1-⑴rmdir语法:rmdir[选项|参数]目录名⑵rmdir命令说明:用语删除空的目录。⑶使用权限:所有用户。⑷rmdir命令参数选项:-p:当子目录被删除后使它也成为空目录的话,则顺便一并删除。⑸范例:例1:删除上例中使用mkdir创建的“2007435124”和“温周洋”子目录,并使用ls命令观察结果,如图1-7所示。图1-7使用rmdir删除子目录例2:使用rmdir删除一个不存在的目录,并观察结果,如图1-8所示。图1-:..⑴cd语法:cd目录名⑵命令说明:用语更改当前目录。⑶使用权限:所有用户。⑷范例:例1:使用cd命令进入“07124”目录(已存在)和“07142”目录(不存在),并观察结果,如图1-9所示。图1-⑴pwd语法:pwd⑵命令说明:显示当前用户所在工作组目录位置。⑶使用权限:所有用户。⑷范例:例1:显示当前用户所在工作组目录,如图1-10所示。图1-⑴cp语法:cp[选项|源文件或目录][目标文件或目录][目的目录]⑵命令说明:复制文件或目录。⑶使用权限:所有用户。⑷cp命令参数表,见表1-2。表1-2cp命令参数:..参数选项说明-a此参数的效果和同时指定“-dpR”参数相同-b删除覆盖目标文件之前备份,备份文件会在字尾加上一个备份字符串-d当复制符号链接时,把目标文件或目录也建立符号链接,并指向与源文件或目录链接的原始文件或目录-f强行复制文件或目录不论目标文件或目录是否存在-i覆盖既有文件之前先询问用户-l对源文件建立硬链接,而非复制文件-p保留源文件或目录的属性-P保留源文件或目录的路径-r递归处理,将指定目录下的文件与子目录一并处理-R递归处理,将指定目录下的所有文件与子目录一并处理-s对文件建立符号链接,而非复制文件-u使用这项参数后只会在源文件的更改时间较目标文件更新时或与名称对应的目标文件并不存在,才复制文件-v显示命令执行过程-x复制文件或目录存放的文件系统,必须与cp命令执行时所处文件系统相同,否则不复制⑸范例:例1:复制/root/2007435124/下的所有以24开头的文件到/home/温周洋目录下,如图1-11所示。图1-⑴rm语法:rm[选项][文件或目录...]⑵rm命令说明:删除文件或目录。⑶使用权限:所有用户。⑷rm命令参数表,见表1-3。表1-3rm命令参数:..参数选项说明-d直接把欲删除的目录的硬链接数据删成0,删除该目录-f强制删除文件或目录,删除文件或目录前不在询问用户-i删除既有文件或目录之前先询问用户,此为默认项-r/-R递归处理,将指定目录下的所有文件及子目录一并处理-v显示命令执行过程⑸范例:例1:直接删除/root/2007435124/,删除前不询问用户,如图1-12所示。图1-12删除文件例2:删除/root/,删除前询问用户,如图1-13所示。图1-⑴mv语法:mv[文件1或目录1][文件2或目录2]⑵mv命令说明:移动文件或修改文件名。⑶使用权限:所有用户。⑷范例:例1:修改/root/,如图1-14所示。:..1-14修改文件名例2:移动/root/,如图1-15所示。图1-⑴cat命令语法:cat[选项]文件名⑵cat命令说明:用于显示特定文件到标准输出设备或另一个文件中。⑶使用权限:所有用户。⑷cat命令参数表,见表1-4。表1-4cat命令参数参数选项说明-n由1开始对所有输出的行数编号-b和-n相似,只不过对于空格行不编号-s当遇上连续两行以上空白行时就换成一行空白行⑸范例:例1:,如图1-16所示。:..图1-⑴more命令语法:more文件名⑵more命令说明:用于分页显示指定文件的内容。⑶使用权限:所有用户。⑷范例:例1:逐页显示/etc/samba/,要求一次显示10行,如图1-17所示。图1-⑴clear命令说明:用于清屏。⑵date命令说明:显示系统当前时间。⑶范例::..1:显示当前系统时间,如图1-18所示。图1-,编辑各种文件是必不可少的工作部分。在Linux操作系统中提供了一系列的编辑器供用户使用,例如Vi、Vim、Emacs、pico、ex、ed等,其中Vim(Vi的增强版)是最常用的编辑器,它是唯一在所有版本的Linux系统和其他各种UNIX系统中都配备的文本编辑器。,在每种工作模式下能做不同的操作。⑴命令模式:是进入Vi的默认模式,在此模式下可以对所编辑文档进行复制、粘贴、:..⑵末行模式:用于文件的保存、退出、定位光标、查找、替换、设置行标等操作。⑶编辑模式:用于直接编辑文件。⑷三种模式之间的切换方法如图2-1所示。从图2-1中可以看到,编辑模式和末行模式之间不能直接切换,必须通过命令模式进行过度。图2-,通常可直接指定需要编辑的文件路径,即使需要编辑的是一个原本不存在的新文件。一般命令如下所示:[******@linuxroot]#,首先会看到如图2-2所示的界面::..2-2Vi主界面(命令模式)图2-2所示的界面即为命令模式的界面,在这个界面下按下“:”键就可以进入如图2-3所示的末行模式,所谓“末行模式”就是在编辑器的最后一行进行输入。末行命令wq表示将编辑内容写入文件并退出。这里不退出而进入编辑模式,因为末行模式不能直接进入编辑模式,因此先按下“Esc”键退回命令模式,在命令模式下按“insert”进入如图2-4所示的编辑模式,在编辑模式下可以输入文本。:..2-3末行模式图2-,常用的末行命令见表2-1。表2-1末行模式命令:wpath/filename保存文件:n,mwpath/filename保存指定范围文档(n表示开始行,m表示结束行):q!对文件修改后,不保存强制退出。:q没有对文件做过修改,退出:wq或:x保存退出rpath/filename读取文件setnu打开行标setnonu关闭行标/:..表2-2。4-2命令模式命令a从光标所在位置后面新增文字,光标后的文字随新增文字向后移动A从光标所在列最后面的地方开始新增文字i从光标所在位置前面开始插入文字,光标后的文字随新增文字移动<可用insert键>I从光标所在列的第一个非空白字符前面开始插入文字o在光标所在列下新增一列并进入输入模式O在光标所在列上方新增一列并进入输入模式x删除光标所在字符<也可以用Delete键>dd删除光标所在行r修改光标所在字符,r后接要修改的字符R进入替换状态,新增文字会覆盖原先文字知道按ESC后到命令模式s删除光标所在字元,并进入输入模式S删除光标所在的列,[option][filename]表3-参数列表选项功能-c对源文件进行预处理、编译和汇编,产生目标文件,但不进行连接。-o<文件名>定义输出的执行文件名为<文件名>-S在编译后停止,产生类型名为s的汇编代码文件-E在预处理后停止,输出预处理后的源代码至标准输出,不进行编译-O对程序进行编译优化,编译速度比不做优化慢且要求内存多。:..-O2-O优化效果更好,但编译速度较慢-g产生一张用于调试和排错的扩展符号表,*****************程序实现代码如下,运行结果如图3-1所示。#include<>main(){inti,j,k;for(i=0;i<5;i++){for(k=0;k<4-i;k++)for(j=0;j<=i;j++)}}图3-,运行结果如图3-2所示。#include<>intmax(intx,inty,intz){intmax;:..max=x;if(max<y)max=y;if(max<z)max=z;returnmax;}main(){inti,j,k,l;l=max(i,j,k);}3-,运行结果如图3-3所示。#include<>#include<>#include<>main(){intarray[10];inti,max;time_tt;srand((unsigned)time(&t));for(i=0;i<10;i++){array[i]=rand()%100;}:..for(i=0;i<10;i++){if((i+1)%5==0)}max=array[0];for(i=0;i<10;i++){if(max<array[i])max=array[i];}}3-3求一维数组中最大值GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。其基本命令见表3-2。表3-2GDB命令命令说明文件名>加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。rRun的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。cContinue的简写,继续执行被调试程序,直至下一个断点或程序结束b<行号>b:Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”b<函数名称>等方式指定断点位置。b*<函数名称>其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码:..>处”。如果不了解汇编,可以不予理会此用法。d[编号]d:Deletebreakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。s:执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;n:执行一行源程序代码,此行代码中的函数调用也一并执行。s相当于其它调s,n试器中的“StepInto(单步跟踪进入)”;n相当于其它调试器中的“StepOver(单步跟踪)”。这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。si,nisi命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。p<变量名称>Print的简写,显示指定变量(临时变量或全局变量)的值display,设置程序中断后欲显示的数据及其格式。display...例如,如果希望每次程序中断后可以看到即将被执行的下一条汇编指令,可以使用命令undisplay<编号>“display/i$pc”其中$pc代表当前汇编指令,/i表示以十六进行显示。当需要关心汇编代码时,此命令相当有用。undispaly,取消先前的display设置,编号从1开始递增。iInfo的简写,用于显示各类信息,详情请查阅“helpi”。qQuit的简写,退出GDB调试环境。Linux下使用gdb进行程序调试(以一个C语言程序为例)。进行编译如下:[******@linuxroot]#-ott-g然后进入gdb,会看到说明,接着加载已经编译过的C文件,加载成功后使用r命令运行结果如图3-4所示。:..3-4gdb调试程序使用gdb进行调试可以进行断点设置,在第21行设置一个断点(b命令),然后使用r命令进行运行,当程序运行至断点时程序停止,继续运行可以使用c命令,运行过程如图3-5所示。图3-5断点设置进程控制和通信进程控制利用signal和kill实现软中断通信kill():..intkill(pid,sig)参数定义:intpid,sig;其中,pid是一个或一组进程的标识符,参数sig是要发送的软中断信号。(1)pid>0时,核心将信号发送给进程pid。(2)pid=0时,核心将信号发送给与发送进程同组的所有进程。(3)pid=-1时,核心将信号发送给所有用户标识符真正等于发送进程的有效用户标识号的进程。signal()预置对信号的处理方式,允许调用进程控制软中断信号。singal函数的原型void(*signal(intsigno,void(*func)(int)))(int)这是Linux中的signalinterfacefunction,返回值类型:void(*sig....)系统调用格式:signal(sig,function)头文件为:#include<>参数定义:signal(sig,function)intsig;void(*func)()其中sig用于指定信号的类型,:在该进程中的一个函数地址,在核心返回用户态时,它以软中断信号的序号作为参数调用该函数,对除了信号SIGKILL,SIGTRAP和SIGPWR以外的信号,核心自动地重新设置软中断信号处理程序的值为SIG_DFL,一个进程不能捕获SIGKILL信号。function的解释如下:(1)function=1时,进程对sig类信号不予理睬,亦即屏蔽了该类信号;(2)function=0时,缺省值,进程在收到sig信号后应终止自己;(3)function为非0,非1类整数时,function的值即作为信号处理程序的指针。下进程控制实现程序代码:#include<>#include<>//alarm函数头文件#include<>intwaite;voidstart(){waite=0;}//自定义中断调用函数staticvoidwaiting(){while(waite==1);}main(){:..intpid1,pid2;if(pid1>0){while((pid2=fork())==-1);if(pid2>0){waite=1;if(signal(SIGUSR1,start)==SIG_ERR);else{alarm(5);signal(SIGALRM,start);//alarm}waiting();kill(pid1,16);//向child1子进程发送16号中断kill(pid2,17);//向child2子进程发送17号中断wait(0);//等待两个子进程结束wait(0);exit(0);}else{waite=1;signal(17,start);//接受父