嵌入式linux系统实验指导书0908.docx

上传人:b****0 文档编号:10058664 上传时间:2023-05-23 格式:DOCX 页数:41 大小:89.75KB
下载 相关 举报
嵌入式linux系统实验指导书0908.docx_第1页
第1页 / 共41页
嵌入式linux系统实验指导书0908.docx_第2页
第2页 / 共41页
嵌入式linux系统实验指导书0908.docx_第3页
第3页 / 共41页
嵌入式linux系统实验指导书0908.docx_第4页
第4页 / 共41页
嵌入式linux系统实验指导书0908.docx_第5页
第5页 / 共41页
嵌入式linux系统实验指导书0908.docx_第6页
第6页 / 共41页
嵌入式linux系统实验指导书0908.docx_第7页
第7页 / 共41页
嵌入式linux系统实验指导书0908.docx_第8页
第8页 / 共41页
嵌入式linux系统实验指导书0908.docx_第9页
第9页 / 共41页
嵌入式linux系统实验指导书0908.docx_第10页
第10页 / 共41页
嵌入式linux系统实验指导书0908.docx_第11页
第11页 / 共41页
嵌入式linux系统实验指导书0908.docx_第12页
第12页 / 共41页
嵌入式linux系统实验指导书0908.docx_第13页
第13页 / 共41页
嵌入式linux系统实验指导书0908.docx_第14页
第14页 / 共41页
嵌入式linux系统实验指导书0908.docx_第15页
第15页 / 共41页
嵌入式linux系统实验指导书0908.docx_第16页
第16页 / 共41页
嵌入式linux系统实验指导书0908.docx_第17页
第17页 / 共41页
嵌入式linux系统实验指导书0908.docx_第18页
第18页 / 共41页
嵌入式linux系统实验指导书0908.docx_第19页
第19页 / 共41页
嵌入式linux系统实验指导书0908.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

嵌入式linux系统实验指导书0908.docx

《嵌入式linux系统实验指导书0908.docx》由会员分享,可在线阅读,更多相关《嵌入式linux系统实验指导书0908.docx(41页珍藏版)》请在冰点文库上搜索。

嵌入式linux系统实验指导书0908.docx

嵌入式linux系统实验指导书0908

《嵌入式Linux系统》课程配套实验

实验指导书

 

湖北经济学院电子工程系

2009年8月

目录

实验一Linux系统安装与简单配置3

实验二常用命令使用4

实验三vi编辑器6

实验四shell编程11

实验五常用开发工具17

实验六Linux内核编译实验22

实验七建立嵌入式文件系统实验30

实验八编写多进程程序35

实验九管道通信实验36

实验一Linux系统安装与简单配置

(2学时)

一、实验目的

1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。

2.掌握多操作系统安装前,利用硬盘分区工具(如PQMagic)为Linux准备好分区。

3.掌握Linux操作系统的安装步骤。

4.掌握Linux系统的简单配置方法。

5.掌握Linux系统的启动、关闭步骤。

二、实验内容

1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。

2.安装Linux系统(如红旗Linux桌面版)。

3.配置Linux系统运行环境。

4.正确地启动、关闭系统。

三、主要实验步骤

1.制订安装计划。

2.如果在机器上已安装了Windows系统,没有给Linux预备硬盘分区,则安装硬盘分

区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。

3.在光驱中放入Linux系统安装盘,启动系统。

按照屏幕提示,选择/输入相关参数,

启动安装过程。

4.安装成功后,退出系统,取出安装盘。

重新开机,登录Linux系统。

5.对Linux系统进行配置,包括显示设备、打印机等。

6。

安装软件工具和开发工具(利用工具软件盘和开发软件盘)。

四、说明

1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被

破坏。

2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。

实验二常用命令使用

(2学时)

一、实验目的

1.掌握Linux一般命令格式。

2.掌握有关文件和目录操作的常用命令。

3.掌握有关进程操作的常用命令。

4.熟练使用man命令。

二、实验内容

1.正确地登录和退出系统。

2.熟悉date,cal,who,echo,clear,passwd命令。

3.在用户主目录下对文件进行操作:

复制一个文件、显示文件内容、查找指定内容、

排序、文件比较、文件删除等。

4.对目录进行管理:

创建和删除子目录、改变和显示工作目录、列出和更改文件权

限、链接文件等。

5.利用man显示date,echo等命令的手册页。

6.显示系统中的进程信息。

三、主要实验步骤

1.登录进入系统,修改个人密码。

2.使用简单命令:

date,cal,who,echo,clear等,了解Linux命令格式。

3.浏览文件系统:

(1)运行pwd命令,确定当前工作目录。

(2)运行ls-1命令,理解各字段含义。

(3)运行ls-aj命令,理解各字段含义。

(4)使用cd命令,将工作目录改到根(/)上。

运行ls-l命令,结合书中图2.2,了解各目录的作用。

(5)直接使用cd,回到哪里了?

用pwd验证。

(6)用mkdir建立一个子目录subdir。

(7)将工作目录改到subdiro

4.文件操作:

(1)验证当前工作目录在subdir。

(2)运行date>filel,然后运行catfilel,看到什么信息?

(3)运行catsubdir,会有什么结果?

为什么?

(4)利用man命令显示date命令的使用说明。

(5)运行mandate>>filel,看到什么?

运行catfilel,看到什么?

(6)利用ls-lfilel,了解链接计数是多少?

运行lnfilel../fa,再运行ls-lfilel,看链接计数有无变化?

用cat命令显示fa文件内容。

(7)显示filel的前10行,后10行。

(8)运行cpfilelfile2,然后1s-1,看到什么?

运行mvfile2file3,然后ls-l,看到什么?

运行catf*,结果怎样?

(9)运行rmfile3,然后ls-1,结果如何?

(10)在/etc/passwd文件中查找适合你的注册名的行。

(11)运行ls-l,理解各文件的权限是什么?

(12)用两种方式改变filel的权限。

(13)统计filel文件的行数、字数。

(14)运行manls|more,显示结果是什么?

实验三vi编辑器

(2学时)

一、实验目的

学习使用vi编辑器建立、编辑、显示及加工处理文本文件。

二、实验内容

1.进入和退出vi。

2.利用文本插入方式建立一个文件。

3.在新建的文本文件上移动光标位置。

4.对该文件执行删除、复原、修改、替换等操作。

三、主要实验步骤

1.进入Vi。

2.建立一个文件,如file.c。

进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。

最后,将该文件存盘。

回到shell状态下。

3.运行gccfile.c-omyfile,编译该文件,会发现错误提示。

理解其含义。

4.重新进入vi,对该文件进行修改。

然后存盘,退出vi。

重新编译该文件。

如果编译

通过了,可以用./myfile运行该程序。

5.运行mandate>filel0,然后vifilel0。

使用x,dd等命令删除某些文本行。

使用u命令复原此前的情况。

使用c,r,s等命令修改文本内容。

使用检索命令进行给定模式的检索。

6.(选作部分)使用Vi编辑器完成以下4个文件的内容输入:

hello.h

starfun.h

hello.c

star.c

Starfun.h文件内容如下:

/*****starfun.h*****/

#ifndefSTARFUN_H

#defineSTARFUN_H

#defineNUM4

#defineNUMBER3

intstar1(){

inti,j,k;

for(k=1;k<=NUM;++k){

for(i=1;i<=(NUM-k);++i)

printf("");

for(j=1;j<=(2*k-1);++j)

printf("*");

printf("\n");

}

return0;

}

intstar2(){

inti,j,k;

for(k=NUMBER;k>=0;--k){

for(i=1;i<=(NUMBER-k+1);++i)

printf("");

for(j=1;j<=(2*k-1);++j)

printf("*");

printf("\n");

}

return0;

}

#endif

hello.h文件内容如下:

/*hello.h*/

#ifndefHELLO_H

#defineHELLO_H

voidhello(){

star1();

printf("hello,myfriends\n");

}

#endif

hello.c文件内容如下:

voidshowhello(){

hello();

}

star.c文件内容如下:

#include"starfun.h"

#include"hello.h"

#include

intmain(){

star1();

star2();

showhello();

return0;

}

四、vi基本功能与使用方法说明

vi有三种状态,即编辑方式、插入方式和命令方式。

在命令方式下,所有命令都要以:

开始,所键入的字符系统均作命令来处理,如:

q代表退出,:

w表示存盘。

当你进入vi时,会首先进入命令方式(同时也是编辑方式)。

按下i就进入插入方式,用户输入的可视字符都添加到文件中,显示在屏幕上。

按下ESC就可以回到命令状态(同时也是编辑方式)。

编辑方式和命令方式类似,都是要输入命令,但它的命令不要以:

开始,它直接接受键盘输入的单字符或组合字符命令,例如直接按下u就表示取消上一次对文件的修改,相当于WINDOWS下的Undo操作。

编译方式下有一些命令是要以/开始的,例如查找字符串就是:

/string则在文件中匹配查找string字符串。

在编辑模式下按下:

就进入命令方式。

基本命令解释:

1.光标命令

k、j、h、l-上、下、左、右光标移动命令。

虽然您可以在Linux中使用键盘右边的4个光标键,但是记住这4个命令还是非常有用的。

这4个键正是右手在键盘上放置的基本位置。

nG-跳转命令。

n为行数,该命令立即使光标跳到指定行。

Ctrl+G-光标所在位置的行数和列数报告。

w、b-使光标向前或向后跳过一个单词。

2.编辑命令

i、a、r-在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。

cw、dw-改变(置换)/删除光标所在处的单词的命令(c=change、d=delete)。

x、d$、dd-删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。

3.查找命令

----/string、?

string-从光标所在处向后或向前查找相应的字符串的命令。

查找下一个键入n

4.拷贝复制命令

----yy、p-拷贝一行到剪贴板或取出剪贴板中内容的命令。

在命令提示(:

)下键入y3,表示从当前光标处开始复制3行,数字可以自己根据需要修改,之后将光标移动到需要粘贴的地方,键入p即可粘贴刚刚复制的内容。

常用操作:

无论是开启新档或修改旧文件,都可以使用vi,所需指令为:

$vi filemane

如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在创建新文件。

如果文件早已存在,vi则会显示文件的首廿四行,用户可再用光标(cursor)上下移动。

上面是一个经vi开启的模拟文件,一行开始处的波折号(~)表示文件的结尾。

—指令i在光标处插入正文

—指令I在一行开始处插入正文

—指令a在光标後追加正文

—指令A在行尾追加正文

—指令o在光标下面新开一行

—指令O在光标上面新开一行

在插入方式下,不能打入指令,必需先按〈Esc〉键,返回命令方式。

假若户不知身处何态,也可以按〈Esc〉键,不管处於何态,都会返回命令方式。

在修改文件时,如何存档及退出指定文件都非常重要。

在vi内,行使存档或退出的指令时,要先按冒号(:

),改变为命令方式,用户就可以看见在荧幕左下方,出现冒号(:

),显示vi已经改为指令态,可以进行存档或退出等工作。

:

q!

放弃任何改动而退出vi,也就是强行退出

:

w存档

:

w!

对于只读文件强行存档

:

wq存档并退出vi

:

x与wq的工作一样

:

zz与wq的工作一样删除正文

删除或修改正文都是利用编辑方式,故此,下面所提及的指令只需在编辑方式下,直接键入指令即行。

—x删除光标处字符(Character)

—nx删除光标处後n个字符

—nX删除光标处前n个字符

—ndw删除光标处下n个单词(word)

—dd删除整行

—d$或D删除由光标至该行最末

—u恢复前一次所做的删除

当使用vi修改正文,加减字符时,就会采用另一组在编辑方式下操作的指令。

— r char由char代替光标处的字符

—Rtext〈Esc〉由text代替光标处的字符

—cwtext〈Esc〉由text取代光标处的单词

—Ctext〈Esc〉由text取代光标处至该行结尾处

—cc使整行空白,但保留光标位置,让你开始打入

—如删除指令一样,在指令前打入的数,表示执行该指令多少次。

要检索文件,必需在编辑方式下进行。

—/str〈Return〉向前搜寻str直至文件结尾处

—?

str〈Return〉往後搜寻str直至文件开首处

—n同一方向上重复检索

—N相反方向上重复检索

—vi缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。

全程替换命令:

:

%s/string1/string2/g在整个文件中替换“string1”成“string2”。

如果要替换文件中的路径:

使用命令“:

%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin换成/bin。

也可以使用命令“:

%s/\/usr\/bin/\/bin/g”实现,其中“\”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

同时编辑2个文件,拷贝一个文件中的文本并粘贴到另一个文件中:

命令如下:

----vifile1file2

----yy在文件1的光标处拷贝所在行

----:

n切换到文件2(n=next)或者按ctrl+ww,就在两个文件间切换。

----p在文件2的光标所在处粘贴所拷贝的行

----:

n切换回文件1

将文件中的某一部分修改保存到临时文件,例如仅仅把第20~59行之间的内容存盘成文件/tmp/1,我们可以键入如下命令。

----vifile

----:

20,59w/tmp/1

如果要在 vi执行期间,转到shell执行,使用惊叹号(!

)执行系统指令,例如在vi期间,列出当前目录内容,可以键入:

   :

!

ls

另一方面,用户可以在主目录中创建.exrc环境文件,用set打入选项,每次调用vi时,就会读入.exrc中的指令与设置。

下面是.exrc环境文件的实例:

set wrapmarging=8

set showmode

set autoindent

实验四shell编程

(2学时)

一、实验目的

了解Shell的作用和主要分类。

了解Bash的一般语法规则。

练习编写简单的shell程序。

二、实验内容

1.Shell变量的定义及其使用。

2.位置参数和环境变量。

3.Shell中的特殊字符。

4.条件判断结构与循环结构

5.函数的定义和使用

三、主要实验步骤

(1)Shell变量

Shell有两种变量:

环境变量和临时变量。

在Shell脚本中临时变量又分为两类:

用户定义的变量和位置参数。

Ø用户定义的变量

用户定义的变量是最普遍的Shell变量,变量名是以字母或下化线打头的字母、数字和下线符序列,并且大小写字母意义不同。

变量名的长度不受限制。

定义变量并赋值的一般形式是:

变量名=字符串例如,

MYFILE=/usr/meng/ff/m1.c

a.定义并显示变量的值

在程序中使用变量的值时,要在变量名前面加上一个符号“$”。

这个符号告诉Shell,要读取该变量的值。

练习1.1:

$dir=/usr/mengqc/file1

$echo$dir

/usr/mengqc/file1

$echodir

dir

$today=Sunday

$echo$today$Today

Sunday

$str="HapyNewYear!

"

$echo"WishYou$str"

WishYouHappyNewYear!

b.read命令

作为交互式输入手段,可以利用read命令由标准输入(即键盘)上读取数据,然后赋给指定的变量。

其一般格式是:

read变量1[变量2...]

练习1.2:

$readname-----输入read命令

mengqc-----输入name的值

$echo"YourNameis$name."

YourNameismengqc-----显示输出的结果

$readabc-----read命令有三个参数

crtvucnedu-----输入三个字符串,中间以空格隔开

$echo"Email:

$a.$c.$b"

Email:

-----显示输出结果

利用read命令可交互式的为变量两赋值。

输入数据时,数据间以空格或制表符作为分隔符。

注意以下情况:

*若变量个数与给定数据个数相同,则依次对应赋值,如上面例子所示。

*若变量数少于数据个数,则从左至右依次给变量赋值,而最后一个变量取得所有余下数据的值。

*若变量个数多余给定数据个数,则从左到右依次给变量赋值,后面的变量没有输入数据与之对应时,其值就为空串。

Ø位置参数

执行Shell脚本时可以使用参数。

由出现命令行上的位置确定的参数称做位置参数。

在sh中总共有十个位置参数,其对应的名称依次是$0,$1,$2,...$9。

其中$0始终表示命令名或Shell脚本名,对于一个命令行,必然有命令名,也就必定有$0;而其它位置参数依据实际需求,可有可无。

练习1.3位置参数的作用。

a.在你的计算机上建立以下三个文件(设建立在目录/usr/username之下,其中username表示你的主目录名):

文件m1.c:

main()

{

printf("Begin\n");

}

文件m2.c:

#include

{

printf("OK!

\n");

}

文件ex3:

#ex3:

shellscripttocombinefilesandcountlines

cat$1$2$3$4$5$6$7$8$9|wc-l

#end

b.将ex3改为具有执行权限:

$chmod+xex3

c.利用env命令查看在环境变量PATH中是否包含你的当前工作目录(即/usr/use-name)。

如果没有包含在其中,则利用以下语句改变PATH的值:

$PATH=$PATH:

/usr/usr/username

d.执行脚本ex3:

$ex3m1.cm2.c

10

练习1.4利用位置参数给定变量赋值。

a.建立脚本ex5,如下所示:

n1=$1

n2=$2

n3=$3

cat$n1$n2$n3|wc-l

b.将ex5改为具有执行权限:

$chmod+xex5

c.执行脚本ex5:

$ex5m1.cm2.c

10

(2)Shell中的特殊字符

Ø通配符

通常的通配符有三种:

*星号,它匹配任意字符的0次或多次出现。

但注意,文件名前面的圆点(.)和路径名中的斜线(/)必须显示匹配。

问号,它匹配任意一个字符。

[]一对方括号,其中有一个字符组。

其作用是匹配该字符组所限定的任意一个字符。

应该注意:

字符*和?

在一对方括号外面是通配符,若出现在其内部,它们就失去通配符的能力了。

叹号,若它紧跟在一对方括号的左方括号[之后,则表示不在一对方括号中所列出的字符。

Ø引号

在Shell中引号分为三种:

单引号、双引号、和倒引号。

◆双引号

由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其功能外,其余字符通常作为普通字符对待。

练习1.5

a.建立以下文件ex8:

echo"currentdirectoryis`pwd`"

echo"homedirectoryis$HOME"

echo"file*.?

"

echo"directory'$HOME'"

b.执行ex8:

$shex8

◆单引号

由单引号括起来的字符都作为普通字符出现。

◆倒引号

练习1.6:

$today=`date`

$echoTodayis$today

TodayisThuMay0410:

56:

20CST2000

$

又:

$users=`who|wc-l`

$echoThenumberofusersis$users

Thenumberofusersis5

◆反斜线

转义字符,若想在字符串中使用反斜线本身,则必须采用(\\)的形式,其中第一个反斜线作为转义字符,而把第二个反斜线变为普通字符。

(3)条件判断与循环结构

Øif语句

练习1.7

a.建立脚本ex9:

echo"Thecurrentdirectoryis`pwd`"

iftest-f"$1"

thenecho"$1isanordinaryfile."

elseecho"$1isnotanordinaryfile."

fi

b.执行ex9:

$shex9ex1

Thecurrentdirectoryis/usr/mengqc

ex1isanordinaryfile.

if语句的else部分还可以是else-if结构。

(wj14)

iftest-f"$1"

thencat$1

elseiftest-d"$1"

then(cd$1;cat*)

elseecho"$1isneitherafilenoradirectory."

fi

fi

如上例改写成为:

iftest-f"$1"

thencat$1

eliftest-d"$1"

then(cd$1;cat*)

elseecho"$1isneitherafilenoradirectory."

fi

Ø测试语句:

有两种常用形式:

一种是用test命令,如上所示。

另一种是用一对方括号将测试条件括起来。

两种形式完全等价。

例如,测试位置参数$1是否是已存在的普通文件,可写成:

test-f"$1",也完全可写成:

[-f$l]

在格式上应注意,如果在test语句中使用shell变量,为表示完整、避免造成歧异起见最好用双引号将变量括起来。

利用一对方括号表示条件测试时,在左方括号[之后、右方括号]之前各应有空格。

练习1.8

a.建立脚本文件ex10

echo"Enteryourfilename"

readfilenane

if[-f"$filename"]

thencat$filename

elseif[-d"$filename"]

thencd$filename

ls-l*

elseecho"$filename:

badfilename"

fi

fi

b.执行ex10

$shex10

Øwhile语句

练习1.9

a.建立脚本ex11:

while[$1]

do

if[-f$1]

thenecho"display:

$1"

cat$1

elseecho"$1isnotafilename."

fi

shift

done

b.执行ex11

练习1.10

a.建立脚本ex12:

echo"leyinfile->\c"

readfilename

echo"keyindata:

"

while[\n$x]

do

readx

echo$x>>$filename

done

cat$filename

b.执行ex12,并分析

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2