嵌入式操作系统实验指导书_第1页
嵌入式操作系统实验指导书_第2页
嵌入式操作系统实验指导书_第3页
嵌入式操作系统实验指导书_第4页
嵌入式操作系统实验指导书_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式操作系统实验指导书 苗暹 黄连丽 3737目 录实验一 Linux命令使用实验二 vi编辑器的使用实验三 shell编程实验(一)实验四 shell编程实验(二)实验五 Linux开发工具的使用实验六 Linux编程实验(一)实验七 Linux编程实验(二)实验八 Linux的系统及网络管理实验实验一 Linux命令使用班级: 姓名: 学号: 上机时间: 任课教师: 实验教师: 实验成绩: 一、实验目的1 掌握Linux的一般命令格式。2 掌握有关文件和目录操作的常用命令。3 掌握有关进程操作的常用命令。4 熟练使用man命令。二、实验注意事项实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在主目录(/home/student)下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。三、实验内容及步骤:1登录进入系统。开机,选择 进入,再选择 登陆窗口,输入用户名: ,输入密码: ,进入Ubuntu图形桌面环境。2使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。要启动一个终端,可以选择 在终端提示符下输入:date 显示: 。在终端提示符下输入:who 显示: 。在终端提示符下输入:who am I 显示: 。在终端下显示Hello! 命令: 。在终端提示符下输入:clear 显示: 。在终端提示符下输入:cal 显示: 。3浏览文件系统:(1)运行pwd 命令,确定当前工作目录,记录之: 。(2)运行ls命令,查看当前目录下有哪些文件和子目录,简略记录。 (3)运行ls -l命令,理解文件各字段的含义,找一个文件标注。 (4)运行ls -ai命令,理解各字段的含义。 (5)使用cd /命令,将当前目录改变为根目录(/)。运行ls -l命令,结合书中给出的Linux树状目录结构,了解各目录的作用。命令: cd / 回到: 命令: pwd 显示: 命令: ls -l 显示:(简略记之) (6)直接使用cd,回到了那里?用pwd验证之。 命令: 回到: 命令: 显示: (7)用 mkdir建立一个子目录subdir。命令: (8)将当前目录改到subdir。 命令: 4文件操作:(1)验证当前目录在subdir。 命令: 显示: (2)运行datefile1,然后运行cat file1,看到什么信息? 命令: ,命令: 显示: “ ”是什么符号? 解释“ datefile1 ”的含义: (3)运行cat subdir,会有什么结果?为什么?结果: 为什么? 。 (4)分别用cat和more查看文件内容(提示:/etc/manpath.config)。比较cat和more这两个命令的异同。 。(5)利用man 命令显示date命令的使用说明。 命令: 显示:(简略记之) 。 如何从man命令状态退回到终端窗口? 。(6)运行man datefile1,再运行cat file1 ,看到什么? 命令: 命令: 显示: 。 man datefile1含义: 。 (7)利用ls -l file1,了解链接计数是多少?运行 ln file1 ./fa,再运行ls -l file1,看链接计数有无变化?用cat命令显示fa文件内容。(注意:做完后要删除所做硬链接,恢复原样以便后面同学再做此实验)命令:ls -l file1 显示的链接计数: 命令:ln file1 ./fa 命令:ls -l file1 显示的链接计数: ,有无变化? 。 命令:cat fa 显示: 。(8)使用head和tail命令分别显示file1文件的前十行和后十行的内容。 命令: 命令: (9)运行cp file1 file2,然后ls -l,看到什么? 命令:cp file1 file2 ls -l 解释显示结果: 运行mv file2 file3, 然后ls -l,看到什么? 命令:mv file2 file3 ls l 解释显示结果: 运行cat f*,结果怎样? 命令:cat f* 解释显示结果: (10)运行rm file3,然后ls -l,看到什么? 命令:rm file3 命令:ls -l 解释显示结果: (11)在/etc/passwd文件中查找适合你的注册名的行。 命令: (12)运行ls -l理解各文件的权限是什么?(选择两个不同文件标注)(13)用两种方式改变file1的权限(实例)。以符号模式改变权限: 以绝对方式改变权限: (14)统计file1文件的行数、字数、字节数。 命令: 显示: 解释各参数的含义: (15)运行命令man ls |more “man ls |more”的含义: 运行cat file1|head -20|tee file5,结果如何? 显示结果: “cat file1|head -20|tee file5”的含义: 运行cat file5|wc,结果如何? 显示结果: “cat file5|wc”的含义: (16)运行cd,回到主目录,运行mkdir mydir,建立mydir 子目录,运行ls -l查看目录,再运行rmdir mydir,看到什么结果?如果要删除mydir目录,该如何操作? 运行命令:cd 回到: 运行命令:mkdir mydir 建立: 运行命令: 查看所建目录内容 运行命令:cp /etc/profile /home/student/mydir 解释该命令: 查看mydir内容命令: 运行命令: rmdir mydir 看到什么结果: 如何处理? 注意:在这个实验中没有特别的难点,但是要注意的是,rm命令删除文件的时候,不给任何提示,因此一定要谨慎,不然很容易删除不应该删除的文件。四、实验报告要求1按实验步骤写出实验命令及运行结果,回答所提问题。2总结上机过程中所遇到的问题和解决方法及感想。实验二 vi编辑器的使用 班级: k1273-4 姓名: 方康 学号: 20129730415 上机时间: 任课教师: 实验教师: 实验成绩: 一、实验目的学习使用vi编辑器建立、编辑、显示以及加工处理文本文件。二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。三、实验内容及步骤1进入和退出vi(1)进入vi,创建一个file.c文件。 命令: 。(2)进入插入方式,输入如下C程序,将该文件存盘,回到shell状态下。 #includeint main()float a,b,x;printf(Please input a,b:);scanf(%5.2f,%5.2f,a,b);x=a%b;printf(x=%5.2fn,x);return 0; 进入插入方式命令: ,文件存盘回到shell状态命令: 。(3)运行gcc file.c -o myfile,编译该文件,会发现错误提示,理解其含义。 编译命令:gcc file.c -o myfile 警告: 。 警告: 。 错误: 。(4)重新进入vi,对该文件进行修改,然后存盘,退出vi。重新编译该文件,如果编译通过,运行该程序。运行程序命令:./myfile注意:在错误程序行旁边注释正确程序。(5)运行man datefile10,然后用vi打开file10文件,使用x,dd命令删除某些文本行,使用u命令复原此前的情况,使用c,r,s等命令修改文本内容,使用检索命令进行给定模式的检索。 删除光标所在的字符命令: 。 删除光标前面那个字符命令: 。 从光标位置删至到行尾命令: 。 从光标位置删至到行首命令: 。 复原命令: 。 修改命令举例: c: r: s: 搜索命令: 向前字符串检索举例: 解释: 向后字符串检索举例: 解释: 查找字符命令举例: 解释: 解释: 全局替换命令举例: 解释: 解释: 解释: 2新建文件(1)请在主目录(/home/student)下建立一个名为 vitest 的目录; 命令: (2)进入 vitest 这个目录当中; 命令: (3)将 /etc/manpath.config 拷贝到本目录下; 命令: (4)使用 vi 开启本目录下的 manpath.config 这个文件; 命令: (5)在 vi 中设定一下行号; 设置行号命令: 。(取消行号命令: :set nonu 。)(6)移动到第67 行,向右移动 26 个字符,请问您看到的是什么目录? 移动到第67 行的命令: 向右移动 26 个字符的命令: 看到: (7)再向左移动16个字符的命令: 看到: (8)回到当前行第一个字符处命令: 移动到当前行的行尾命令: (9)移动到第5行(包含当前行)词尾命令: 。再回到当前行的第一个字符处。(10)光标向前移至下一个词的开头命令: 。(11)光标后退到前一个词的开头命令: 。(12)移动到第一行,并且向下搜寻一下 modify 这个字符串,请问他在第几行? 移动到第一行: , 向下搜寻一下“modify ” 它在 行。(13)接着下来,我要将 50 到 70 行之间的 man 改为 MAN ,并且一个一个挑选是否需要修改,如何下达指令? 命令: (14)修改完之后,突然反悔了,要全部复原,有哪些方法? (15)我要复制51到60行这十行的内容,并且贴到最后一行之后; (16)删除11到30行之间的20行; (17)将这个文件另存成一个 man.test.config 文件; (18)到第29行,并且删除 15 个字符; (19) 请问目前的文件有多少行与多少字符?用什么命令统计? 命令: (20)储存后离开吧。 四、实验报告要求1按实验步骤写出实验命令及运行结果,回答所提问题。2总结上机过程中所遇到的问题和解决方法及感想。实验三 shell编程实验(一)班级: k1273-4 姓名: 方康 学号: 20129730415 上机时间: 任课教师: 实验教师: 实验成绩: 一、实验目的1了解shell的作用和主要分类。2掌握bash的建立和执行方式。3掌握bash的基本语法。4综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。三、实验内容1利用vi 建立一个脚本文件,该文件在用户输入年、月之后,自动打印数出该年该月的日历。然后以3种不同方式执行该脚本,如有不能执行情况,请说明原因。echo please input yearread yearecho please input monthread monthcal $month $year2编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同则显示“Match”,并显示“End of program”,如果不同则显示“End of program”。echo please input word1read word1echo please input word2read word2if test $word1 = $word2then echo matchfiecho not an programIftest-commandthencommandTurefiFalse图3.1 ifthen流程图3修改上述程序,编程提示用户输入两个单词,并将其读入,然后比较这两个单词,如果两个单词相同显示“Match”,不同则显示“Not match”,最后显示“End of program”。请使用ifthenelse控制结构。echo please input word1read word1echo please input word2read word2if test $word1 = $word2then echo matchelse echo not matchfiecho not an program4编程使用case结构创建一个简单的菜单,屏幕显示菜单:a. Current date and timeb. User currently logged inc. Name of the working directoryd. Contents of the working directoryEnter a,b,c or d:根据用户输入选项做相应操作。echo please chose either a,b,c,d echo a. Current date and time echo b. User currently logged in echo c. Name of the working directory echo d. Contents of the working directory read responsecase $response ina) date;b) who;c) pwd;d) ls;esac5 修改上题,使用户可以连续选择直到想退出时才退出。echo a. Current date and time echo b. User currently logged in echo c. Name of the working directory echo d. Contents of the working directory echo e.return echo please chose either a,b,c,d,e while truedoread responsecase $response ina) date;b) who;c) pwd;d) ls;e) exit; esacdone6. 设计一个程序,从命令行接收数值参数,并计算这些参数的和。x=10for y in $*dox=expr $x + $ydoneecho The Sum is: $x四、实验报告要求1列出调试通过程序的清单,并加注释。2. 写出程序运行步骤及结果。3总结上机调试过程中所遇到的问题和解决方法及感想。通过这次实验,我基本上掌握了shell的编程,了解和熟悉创建并使用脚本的步骤;熟悉bash的控制结构;学会简单的shell编程;能够通过编程实现一些功能,学会了Shell的一些控制语句,测试,Shell变量,Shell的特殊字符等。当然了,在实验的过程中肯定会遇到很多的困难,但是根据老师的给出的指导,根据老师的说明一步一步的做,问题不大,遇到了实在解决不了的问题,我会去请教老师和同学,把问题解决掉。初步学会了Linux下Shell的编程,为以后更加系统的学习Linux打下了坚实的基础!实验四 shell编程实验(二)班级: 姓名: 学号: 上机时间: 任课教师: 实验教师: 实验成绩: 一、实验目的综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程。二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。三、实验内容1. 变写一个脚本,求斐波那契数列的前10项及总和。num1=1num2=1echo -n $num1+$num2sum=2for(i=1;i fks1fkubuntu:$ bash fks11+1+2+3+5+8+13+21+34+55=1432编写一个脚本,求一个数的逆序。read matchlet i=matchwhile $i -gt 0 dolet a=i%10echo -n $alet i=i/10doneecho fkubuntu:$ bash fk4123443213设计一个Shell程序,在用户主目录下建立一个userdata目录,在此目录下再建立5个目录,即user1user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。(注意:最后删除自己所建立的目录,恢复原样,以便后面同学做此实验)4用Shell编程,判断一文件是不是普通文件,如果是将其拷贝到 /home/student/test 目录下,用命令查看test目录内容,最后再删除test目录。5编写脚本, 统计指定目录下普通文件及目录文件的数目,要求不能使用wc统计命令。6编程实现简单计算器。要求 用户输入一个表达式并输入结果,程序会判断用户输入的结果是否正确,并给出提示。直到 用户输入q时,才退出执行。参考程序:#!/bin/bash#fileName:first#note:This is the first title#function:input an expretion and the answer, I will tell you right or wrong# You can try it as many times as you like.echo Hello! _ echo Welcom to the calculate testing!echo You can input an expretion such as 2*2 or 3+1, and input the answerecho I will tell you whether you are right or wrong.echo You can input q to exit.echo Now lets begin!number1=0;while $number1 != q do echo Input the first number:read number1 echo Input the operator type: read type echo Input the second number: read number2 echo Input the answer: read yourAnswer case $type in +) myAnswer=expr $number1 + $number2; -) myAnswer=expr $number1 - $number2; *)myAnswer=expr $number1 * $number2; /) if $number2 -eq 0 thenecho Sorry! :-(echo 0 cannot be the divisorcontinue elsemyAnswer=expr $number1 / $number2fi;*) echo Error!; esac if $myAnswer -eq $yourAnswer then echo :-) Congratulations! echo Your are right! echo Input q to exit or try again! else echo :-( Sorry! echo You are wrong!echo The right answer is: echo $number1 $type $number2 = $myAnswer echo Input q to exit or try again! fi # echo Input the first number: # read number1done要求:请同学仔细分析该程序,理解其中的语句及用法,写出程序分析及总结。四、实验报告要求1列出调试通过程序的清单,并加注释。2. 写出程序运行步骤及结果。3总结上机调试过程中所遇到的问题和解决方法及感想。实验五 Linux开发工具的使用班级: 姓名: 学号: 上机时间: 任课教师: 实验教师: 实验成绩: 一、实验目的1掌握C语言编译的基本方法。2掌握gdb调试工具的基本用法。3理解make工具的功能,学会编制makefile的方法。二、实验注意事项实验室内的实验环境与系统是共用设施,请不要在系统内做对系统或对其他用户不安全的事情。要求每个同学登录后系统后,要在自己的家目录下创建一个属于自己的子目录(以自己(拼音)名字或学号)。以后所有工作都要在自己的目录内进行。建议以后的实验都在同台计算机上做,这样可以保持连续性。用户要按通常实验要认真书写实验报告。三、实验内容1. 用gcc带不同参数编译下列C程序。#includemain()printf(”Hello World!n”);2实例教你如何编译和用 gdb 调试程序。被调试的程序相当的简单, 但它展示了 gdb 的典型应用。这个程序被称为 greeting , 它显示一个简单的问候, 再用反序将它列出。3利用gcc 编译下列C 语言程序,查看运行结果,如果有错用gdb调试之。include static char buff256; static char* string; int main () printf ( Please input a string: ); gets (string); printf ( nYour string is: %sn , string); 4多模块组合开发与编译、静态库的构造与使用。设有C语言文件f1.c,内容为:#includef1(int arg)printf(F1: you passed %dn,arg);设有C语言文件f2.c,内容为:#includef2(char *arg)printf(F2: you passed %sn,arg);主函数所的模块为m.c,内容为:#includemain()f1(16);f2(Hello World!);5假设我们有一个程序由5个文件组成,源代码如下所示,编制一个简单的makefile程序。/*main.c*/#include mytool1.h#include mytool2.hint main() mytool1_print(hello mytool1!); mytool2_print(hello mytool2!); return 0; /*mytool1.c*/#include mytool1.h#include void mytool1_print(char *print_str) printf(This is mytool1 print : %s ,print_str);/*mytool1.h*/#ifndef _MYTOOL_1_H#define _MYTOOL_1_H void mytool1_print(char *print_str);#endif/*mytool2.c*/#include mytool2.h#include void mytool2_print(char *print_str) printf(This is mytool2 print : %s ,print_str);/*mytool2.h*/#ifndef _MYTOOL_2_H#define _MYTOOL_2_H void mytool2_print(char *print_str);#endif四、实验步骤1实验内容1编译及运行方法如下所示:gcc c hello.c#生成目标文件hello.ogcc S hello.c#生成汇编程序hello.sgcc hello.c#生成可执行程序a.outgcc o hello hello.c#生成可执行程序hellogcc s o hello_s hello.c #生成汇编程序hello.sgcc o hello_st hello.c -static #生成可执行程序hello_stgcc o hello_sh hello.c -shared #生成可执行程序hello_shgcc o hello_rd hello.c -rdynamic #生成可执行程序hello_rd注意观察各编译参数的意义及作用,最后通过命令ls l a.out hello*来观察所生成文件的不同,为什么会这样?2. 下面列出了实验内容2将被调试的程序:#include#include#include void my_print (char *string) printf (The string is %sn, string); void my_print2 (char *string) char *string2; i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论