




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux操作系统实训报告目 录第一章Linux命令11.1 Linux操作系统简介11.2 虚拟机操作流程21.3 Linux文件与目录的基本操作2第二章 Vi编辑器122.1 Vi编辑器简介122.2 Vi 编辑器操作13第三章Linux下C语言编程163.1 gcc简介163.2 Linux下C语言编程163.3 gdb调试19第四章 进程控制和通信214.1 进程控制214.2 Linux下进程控制实现214.3 进程通信234.4 Linux下管道通信实现23结 论2525第一章Linux命令1.1 Linux操作系统简介Linux的起源:UNIX系统的快速发展,引起了计算机科学家Andrew Tanenbaum的强烈好感,为了方便学生更好的了解操作系统的工作原理,他开发了一个迷你的UNIX,即Minix系统。1991年10月,芬兰赫尔辛基的学生Linuxs Torvalds在Minix的基础上开发了大约一万行的代码,将其发布到comps.os.minix论坛上供大家下载,后来在众多黑客的开发下,终于在1994年3月14日发布了Linux1.0版本。此后Linux各种版本开始流行起来。1999年发布了Linux中文版本。严格的说,Linux不算是一个操作系统,只是一个操作系统的内核,即计算机软件与硬件之间通信的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。GNU是Richard Stallman 组织的一个项目,世界各地的程序员可以编写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的保护机制使每个应用程序和用户互不干扰,任何一个任务不崩溃,其他任务仍然正常运行。1.2 虚拟机操作流程Vmware Workstation6 是目前比较主流的虚拟机软件,也是唯一的能在Windows和Linux主机平台上运行的虚拟计算机软件。它能真实的模拟物理计算机的所有基本功能,是多平台学习不可或缺的虚拟软件。首先,打开Vmware Workstation6虚拟机软件,在主界面中选择Red Had Enterprise Linux4虚拟计算机系统,点击Commands框架中的“Start this Virtual machine”按钮,运行Red Had Enterprise Linux4虚拟系统。1.3 Linux文件与目录的基本操作1.3.1 文件与文件名l Linux的文件名长度可以达到256个字符,但不能使用以下字符做文件名:!#$%&*()”/;空格l Linux区分大小写ABCAbc不同l 文件名中如果有多个小数点,最右边的一个为分隔符,表示文件的类型,如.txt,.c1.3.2 目录“/”为根目录、目录分隔符和目录与文件的分隔符。如:/home/feng/11.txt。1.3.3 文件与目录的常用命令1. man 命令 man语法:man 命令符 man 命令说明:对你熟悉或不熟悉的命令提供帮助解释(按空格键显示下一页,按b键返回,按q键退出)。 使用权限:所有用户。 范例:例1:显示vi命令的帮助解释,如图1-1所示。Rootlinux root# man vi图1-1man命令查看vi帮助2. ls 命令 ls语法:ls选项|参数目录名 ls命令说明:用于显示指定目录或文件的相关信息。 使用权限:所有用户。 ls命令参数选项见表1-1。表1-1 ls命令参数选项选项选项功能-a显示所有文件和目录,包括隐含文件-l显示文件的完整信息l d表示目录(directory),如果是一个-表示是文件,如果是l则表示是一个连接文件(link)l 表示文件或者目录许可权限,分别用可读(r),可写(w),可运行(x)。-F在每个文件名的后面或是前面添加一个特定的后缀字符的方法指出它的类型/:子目录*:可执行文件无:普通文件.开头:隐含文件-r将文件以反次序显示(依英文字母顺序)-t将文件依建立时间的先后顺序列出,后建的排在前面-A同-a,但不列出“.”当前目录和“.”父目录-R若目录下有文件,则列出其下文件 范例:例1:显示目录或文件的详细列表并以创建时间的先后反次序显示,如图1-2所示。图1-2 显示列表例2:显示目录(子目录不为空时显示子目录)详细列表,如图1-3所示。图1-3 显示详细列表(R参数)例3:显示所有文件和目录,包括隐含文件但不列出“.”当前目录和“.”父目录,在每个文件名的后面或是前面添加一个特定的后缀字符的方法指出它的类型,如图1-4所示。图1-4 AF参数结果3. mkdir 命令 mkdir语法:mkdir选项|参数目录名 mkdir命令说明:用于创建目录。 使用权限:所有用户。 mkdir命令参数选项:-p:确保目录名称存在,不存在的话就创建一个。-m:在创建目录时设置目录权限。 范例:例1:使用自己的学号和姓名各创建一个子目录,并用ls 命令观察结果,如图1-5所示。图1-5 使用mkdir命令创建子目录例2:创建一个已经存在的子目录,观察显示结果,如图1-6所示。图1-6 创建已存在子目录结果4. rmdir 命令 rmdir语法:rmdir选项|参数 目录名 rmdir命令说明:用语删除空的目录。 使用权限:所有用户。 rmdir命令参数选项:-p:当子目录被删除后使它也成为空目录的话,则顺便一并删除。 范例:例1:删除上例中使用mkdir创建的“2007435124”和“温周洋”子目录,并使用ls 命令观察结果,如图1-7所示。图1-7使用rmdir删除子目录例2:使用rmdir 删除一个不存在的目录,并观察结果,如图1-8所示。图1-8使用rmdir命令删除不存在目录结果5. cd 命令 cd 语法:cd 目录名 命令说明:用语更改当前目录。 使用权限:所有用户。 范例:例1:使用cd 命令进入“07124”目录(已存在)和“07142”目录(不存在),并观察结果,如图1-9所示。图1-9 更改当前目录6. pwd 命令 pwd 语法:pwd 命令说明:显示当前用户所在工作组目录位置。 使用权限:所有用户。 范例:例1:显示当前用户所在工作组目录,如图1-10所示。图1-10 显示当前目录7. cp 命令 cp 语法:cp选项|源文件或目录目标文件或目录目的目录 命令说明:复制文件或目录。 使用权限:所有用户。 cp命令参数表,见表1-2。表1-2 cp命令参数参数选项说 明-a此参数的效果和同时指定“-dpR”参数相同-b删除覆盖目标文件之前备份,备份文件会在字尾加上一个备份字符串-d当复制符号链接时,把目标文件或目录也建立符号链接,并指向与源文件或目录链接的原始文件或目录-f强行复制文件或目录不论目标文件或目录是否存在-i覆盖既有文件之前先询问用户-l对源文件建立硬链接,而非复制文件-p保留源文件或目录的属性-P保留源文件或目录的路径-r递归处理,将指定目录下的文件与子目录一并处理-R递归处理,将指定目录下的所有文件与子目录一并处理-s对文件建立符号链接,而非复制文件-u使用这项参数后只会在源文件的更改时间较目标文件更新时或与名称对应的目标文件并不存在,才复制文件-v显示命令执行过程-x复制文件或目录存放的文件系统,必须与cp命令执行时所处文件系统相同,否则不复制 范例:例1:复制/root/2007435124/下的所有以24开头的文件到/home/温周洋 目录下,如图1-11所示。 图1-11 复制所有以24开头的对象8. rm 命令 rm 语法:rm选项文件或目录. rm 命令说明:删除文件或目录。 使用权限:所有用户。 rm 命令参数表,见表1-3。表1-3 rm命令参数参数选项说 明-d直接把欲删除的目录的硬链接数据删成0,删除该目录-f强制删除文件或目录,删除文件或目录前不在询问用户-i删除既有文件或目录之前先询问用户,此为默认项-r/-R递归处理,将指定目录下的所有文件及子目录一并处理-v显示命令执行过程 范例:例1:直接删除/root/2007435124/24.c文件,删除前不询问用户,如图1-12所示。图1-12删除文件例2:删除/root/2007435124下的wen.txt文件和24子目录,删除前询问用户,如图1-13所示。图1-13 删除特定文件和目录9. mv 命令 mv语法:mv 文件1或目录1文件2或目录2 mv命令说明:移动文件或修改文件名。 使用权限:所有用户。 范例:例1:修改/root/2007435124目录下的文件24.txt为wen.txt,如图1-14所示。图1-14 修改文件名例2:移动/root/2007435124目录下的wen.txt文件到/root/下,如图1-15所示。图1-15移动文件10. cat 命令 cat 命令语法:cat选项 文件名 cat 命令说明:用于显示特定文件到标准输出设备或另一个文件中。 使用权限:所有用户。 cat 命令参数表,见表1-4。表1-4 cat命令参数参数选项说 明-n由1开始对所有输出的行数编号-b和-n相似,只不过对于空格行不编号-s当遇上连续两行以上空白行时就换成一行空白行 范例:例1:显示文件wen.txt中的内容,如图1-16所示。图1-16显示文件内容11. more 命令 more 命令语法:more 文件名 more 命令说明:用于分页显示指定文件的内容。 使用权限:所有用户。 范例:例1:逐页显示/etc/samba/smb.conf的内容,要求一次显示10行,如图1-17所示。图1-17 逐页显示文件内容12. clear和date命令 clear命令说明:用于清屏。 date命令说明:显示系统当前时间。 范例:例1:显示当前系统时间,如图1-18所示。图1-18 显示系统时间第二章 Vi编辑器2.1 Vi编辑器简介2.1.1 Vi编辑器概述在各种操作系统中,编辑各种文件是必不可少的工作部分。在Linux操作系统中提供了一系列的编辑器供用户使用,例如Vi、Vim、Emacs、pico、ex、ed等,其中Vim(Vi的增强版)是最常用的编辑器,它是唯一在所有版本的Linux系统和其他各种UNIX系统中都配备的文本编辑器。4.1.2 Vi 编辑器的工作模式Vi编辑器有3种工作模式,在每种工作模式下能做不同的操作。 命令模式:是进入Vi的默认模式,在此模式下可以对所编辑文档进行复制、粘贴、删除、移动光标、继续查找等操作,同时它也是末行模式和编辑模式之间进行切换的中转站。 末行模式:用于文件的保存、退出、定位光标、查找、替换、设置行标等操作。 编辑模式:用于直接编辑文件。 三种模式之间的切换方法如图2-1所示。从图2-1中可以看到,编辑模式和末行模式之间不能直接切换,必须通过命令模式进行过度。图2-1 工作模式切换模式图2.2 Vi 编辑器操作2.2.1 Vi编辑器的启动可以使用简单的命令来启动Vim文本编辑器,通常可直接指定需要编辑的文件路径,即使需要编辑的是一个原本不存在的新文件。一般命令如下所示:Rootlinux root# vim 文件名2.2.2 三种模式的操作进入Vi后,首先会看到如图2-2所示的界面:图2-2 Vi主界面(命令模式)图2-2所示的界面即为命令模式的界面,在这个界面下按下“:”键就可以进入如图2-3所示的末行模式,所谓“末行模式”就是在编辑器的最后一行进行输入。末行命令 wq 表示将编辑内容写入文件并退出。这里不退出而进入编辑模式,因为末行模式不能直接进入编辑模式,因此先按下“Esc”键退回命令模式,在命令模式下按“insert”进入如图2-4所示的编辑模式,在编辑模式下可以输入文本。图2-3 末行模式图2-4 编辑模式2.2.3 命令1. 末行模式命令在末行模式下可以输入末行命令,常用的末行命令见表2-1。表2-1 末行模式命令:w path/filename保存文件:n,m w path/filename保存指定范围文档(n表示开始行,m表示结束行):q!对文件修改后,不保存强制退出。:q没有对文件做过修改,退出:wq 或 :x保存退出r path/filename读取文件set nu打开行标set nonu关闭行标/char正向查找字符? char反向查找字符2. 命令模式命令在命令模式下,也可以使用大量的命令对文件进行编辑等操作,常用的命令模式命令见表2-2。表4-2 命令模式命令a从光标所在位置后面新增文字,光标后的文字随新增文字向后移动A从光标所在列最后面的地方开始新增文字i从光标所在位置前面开始插入文字,光标后的文字随新增文字移动I从光标所在列的第一个非空白字符前面开始插入文字o在光标所在列下新增一列并进入输入模式O在光标所在列上方新增一列并进入输入模式x删除光标所在字符dd删除光标所在行r修改光标所在字符,r后接要修改的字符R进入替换状态,新增文字会覆盖原先文字知道按ESC后到命令模式s删除光标所在字元,并进入输入模式S删除光标所在的列,并进入输入模式第三章Linux下C语言编程3.1 gcc简介1. gcc基本语法gcc optionfilename表3-1 gcc参数列表选项功能-c对源文件进行预处理、编译和汇编,产生目标文件,但不进行连接。-o定义输出的执行文件名为-S在编译后停止,产生类型名为s的汇编代码文件-E在预处理后停止,输出预处理后的源代码至标准输出,不进行编译-O对程序进行编译优化,编译速度比不做优化慢且要求内存多。-O2比-O优化效果更好,但编译速度较慢-g产生一张用于调试和排错的扩展符号表,以便用gdb进行调试3.2 Linux下C语言编程1. 编写程序实现如下图形显示 * * * * * * * * * * * * * * * *程序实现代码如下,运行结果如图3-1所示。#includemain() int i,j,k; for(i=0;i5;i+) for(k=0;k4-i;k+)printf( ); for(j=0;j=i;j+)printf(* ); printf(n); 图3-1 金字塔图形2. 编写程序实现求三个数中最大值程序实现代码如下,运行结果如图3-2所示。#includeint max(int x,int y,int z) int max; max=x; if(maxy) max=y; if(maxz) max=z; return max; main() int i,j,k,l; printf(please input three numbers:n); scanf(%d %d %d,&i,&j,&k); l=max(i,j,k); printf(The max number is:%dn, l); 图3-2求三个数中最大值3. 编写程序实现求一维数组中最大值程序实现代码如下所示,运行结果如图3-3所示。#include#include#includemain() int array10; int i,max; time_t t; srand(unsigned)time(&t); for(i=0;i10;i+) arrayi=rand()%100; printf(The array are:n);for(i=0;i10;i+) printf(%2d ,arrayi); if(i+1)%5=0) printf(n); max=array0; for(i=0;i10;i+) if(maxarrayi) max=arrayi; printf(The max number is:%dn,max);图3-3求一维数组中最大值3.3 gdb调试GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。其基本命令见表3-2。表3-2 GDB命令命令说明file 加载被调试的可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。rRun的简写,运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。cContinue的简写,继续执行被调试程序,直至下一个断点或程序结束b b b *b * d 编号b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。 d: Delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。s, ns: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;n: 执行一行源程序代码,此行代码中的函数调用也一并执行。 s 相当于其它调试器中的“Step Into (单步跟踪进入)”;n 相当于其它调试器中的“Step Over (单步跟踪)”。这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。si, nisi命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。p Print的简写,显示指定变量(临时变量或全局变量)的值display . undisplay display,设置程序中断后欲显示的数据及其格式。例如,如果希望每次程序中断后可以看到即将被执行的下一条汇编指令,可以使用命令“display /i $pc”其中 $pc 代表当前汇编指令,/i 表示以十六进行显示。当需要关心汇编代码时,此命令相当有用。 undispaly,取消先前的display设置,编号从1开始递增。iInfo的简写,用于显示各类信息,详情请查阅“help i”。qQuit的简写,退出GDB调试环境。Linux下使用gdb进行程序调试(以一个C语言程序为例)。首先使用gcc进行编译如下:Rootlinux root# gcc tt.c -o tt -g 然后进入gdb,会看到说明,接着加载已经编译过的C文件,加载成功后使用r命令运行结果如图3-4所示。图3-4 gdb调试程序使用gdb进行调试可以进行断点设置,在第21行设置一个断点(b命令),然后使用r命令进行运行,当程序运行至断点时程序停止,继续运行可以使用c命令,运行过程如图3-5所示。图3-5断点设置第四章 进程控制和通信4.1 进程控制利用signal和kill实现软中断通信kill( )系统调用格式:int kill(pid,sig)参数定义:int pid,sig;其中,pid是一个或一组进程的标识符,参数sig是要发送的软中断信号。(1) pid0时,核心将信号发送给进程pid。(2) pid=0时,核心将信号发送给与发送进程同组的所有进程。(3) pid=-1时,核心将信号发送给所有用户标识符真正等于发送进程的有效用户标识号的进程。signal( )预置对信号的处理方式,允许调用进程控制软中断信号。singal函数的原型void (*signal(int signo,void(*func)(int)(int)这是Linux中的signal interface function,返回值类型:void(*sig.)系统调用格式:signal(sig,function)头文件为:#include 参数定义:signal(sig,function)int sig;void (*func) ( )其中sig用于指定信号的类型,sig为0则表示没有收到任何信号.function:在该进程中的一个函数地址,在核心返回用户态时,它以软中断信号的序号作为参数调用该函数,对除了信号SIGKILL,SIGTRAP和SIGPWR以外的信号,核心自动地重新设置软中断信号处理程序的值为SIG_DFL,一个进程不能捕获SIGKILL信号。function 的解释如下:(1) function=1时,进程对sig类信号不予理睬,亦即屏蔽了该类信号;(2) function=0时,缺省值,进程在收到sig信号后应终止自己;(3) function为非0,非1类整数时,function的值即作为信号处理程序的指针。4.2 Linux下进程控制实现程序代码:#include #include /alarm函数头文件#include int waite;void start() waite=0;/自定义中断调用函数static void waiting() while(waite=1);main() int pid1,pid2; if(pid10) printf(chilld process 1 is %dn,pid1); while(pid2=fork()=-1); if(pid20) printf(child process 2 is %dn,pid2); printf(please press deleten); waite=1; if(signal(SIGUSR1,start)=SIG_ERR); elsealarm(5); signal(SIGALRM,start);/alarm函数使用的信号 waiting(); kill(pid1,16);/向child 1 子进程发送16号中断 kill(pid2,17);/向child 2 子进程发送17号中断 wait(0);/等待两个子进程结束 wait(0); printf(parent process is killedn); exit(0); elsewaite=1; signal(17,start);/接受父进程发送的17号中断,调用信号中断函数start() waiting(); printf(child 2 is killedn); exit(0); else waite=1; signal(16,start);/接受父进程发送的16号中断,调用信号中断函数start() waiting(); printf(child 1 is killedn); exit(0); 运行结果如图4-1所示。图4-1进程控制4.3 进程通信在计算机系统中,并发进程之间经常要交换一些信息。在并发进程间用PV操作交换信息实现进程的同步和互斥,以保障安全地共享资源和协调地完成任务。因此,把PV操作可看作是进程间的一种通信,但这种方式只交换少量的信息,例如缓冲区中是否已有物品和是否可以读文件等,可以把这种通信方式称为低级通信方式。有时进程间要交换大量的信息,这种大量信息的传递要有专门通信机制来实现,这是一种更高级的通信方式,成为“进程通信”。进程通信的方法很多,管道法是其中的一种。所谓管道法,是指利用一个共享文件作为进程通信的管道,通过读写进程以生产、消费者方式对其进行操作。4.4 Linux下管道通信实现程序代码:服务器端代码:#include #include #include #include #include #define filename “myfifo”int main(void) FILE *fp; char readbuf80; umask(0);mknod(filename,S_IFIFO|
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行塔城地区额敏县2025秋招结构化面试15问及话术
- 农发行南阳市邓州市2025秋招无领导小组面试案例库
- 农发行郑州市荥阳市2025秋招笔试热点题型专练及答案
- 农发行白山市江源区2025秋招笔试英语题专练及答案
- 农发行泸州市合江县2025秋招无领导模拟题角色攻略
- 农发行天津市北辰区2025秋招笔试性格测试题专练及答案
- 桂林资源县中储粮2025秋招笔试模拟题及答案
- 国家能源贵港市港北区2025秋招心理测评常考题型与答题技巧
- 内部员工入股协议书
- 国家能源信阳市2025秋招笔试逻辑推理题专练及答案
- (正式版)JBT 14581-2024 阀门用弹簧蓄能密封圈
- (高清版)DZT 0334-2020 石油天然气探明储量报告编写规范
- 2024年浙江卷1月读后续写(路痴的自我救赎)讲义-高考英语作文复习专项2
- 幼儿园-消毒工作流程图
- 电缆修理工安全生产责任制
- 拼音拼读音节带声调完全版
- 2024被动式超低能耗(居住)绿色建筑节能设计标准
- 某桥梁箱涵、箱通工程监理细则
- 中铝中州矿业有限公司禹州市方山铝土矿矿山地质环境保护和土地复垦方案
- 【教案】圆锥曲线光学性质的数学原理及应用教学设计人教A版(2019)选择性必修第一册
- 2021年12月12日河北省直机关遴选公务员笔试真题及答案解析
评论
0/150
提交评论