浙江大学Linux程序设计实验报告.docx

上传人:b****4 文档编号:26795655 上传时间:2023-06-22 格式:DOCX 页数:84 大小:49.03KB
下载 相关 举报
浙江大学Linux程序设计实验报告.docx_第1页
第1页 / 共84页
浙江大学Linux程序设计实验报告.docx_第2页
第2页 / 共84页
浙江大学Linux程序设计实验报告.docx_第3页
第3页 / 共84页
浙江大学Linux程序设计实验报告.docx_第4页
第4页 / 共84页
浙江大学Linux程序设计实验报告.docx_第5页
第5页 / 共84页
点击查看更多>>
下载资源
资源描述

浙江大学Linux程序设计实验报告.docx

《浙江大学Linux程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《浙江大学Linux程序设计实验报告.docx(84页珍藏版)》请在冰豆网上搜索。

浙江大学Linux程序设计实验报告.docx

浙江大学Linux程序设计实验报告

Linux程序设计实验报告1

——操作系统基本命令使用

一、实验目的

1.通过对Emacs、vi、vim、gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法;

2.通过对常用命令mkdir、cp、cd、ls、mv、chmod、rm等文件命令的操作,掌握Linux操作系统中文件命令的用法。

二、实验任务与要求

1.emacs的使用,要求能新建、编辑、保存一个文本文件

2.vi或vim的使用,要求能新建、编辑、保存一个文本文件

3.gedit的使用,要求能新建、编辑、保存一个文本文件

4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录

5.掌握cp、ls、mv、chmod、rm命令的操作,要求能拷贝文件、新建文件、查看文件、文件重命名、删除文件等操作。

三、实验工具与准备

计算机PC机,LinuxRedhatFedoraCore6操作系统

四、实验步骤与操作指导

任务1.学习emacs的使用,要求能新建、编辑、保存一个文本文件

(1)启动emacs

(2)输入以下C程序

(5)修改程序

任务2.vi或vim的使用,要求能新建、编辑、保存一个文本文件

(1)点击”应用程序”→“附件”→“终端”,打开终端,在终端输入命令:

按i键,进入插入状态。

(2)输入以下C程序

intmain()

{

printf(“Helloworld!

\n”);

return0;

}

此时可以用Backspace、→、←、↑、↓键编辑文本。

按Esc键,进入最后行状态,在最后行状态输入:

wq保存文件,退出vi。

(5)修改程序为:

intmain()

{

printf("Helloworld!

\n");

printf("*****************\n");

return0;

}

(6)按Esc键,进入最后行状态,在最后行状态输入保存文件,如图1所示,另存为文件并退出vi。

图1程序编辑环境

任务3.gedit的使用,要求能新建、编辑、保存一个文本文件

(1)启动gedit,点击”应用程序”→“附件”→“文本编辑器”,打开文本编辑器,如图所示。

(2)输入以下C程序

(5)修改程序

任务4.掌握mkdir、cd命令的操作,要求能建立目录、进入与退出目录

(1)打开终端”应用程序”→“附件”→“终端”,在终端用命令新建目录kkk

[root@localhostroot]#mkdirkkk

(2)进入目录kkk,并在kkk目录下新建目录kkka,进入kkka目录

[root@localhostroot]#cdkkk

[root@localhostkkk]#mkdirkkka

[root@localhostkkk]#cdkkka

[root@localhostkkka]#

(3)执行命令cd..命令,然后再进入kkka目录,输入命令cd、cd/etc,观察其结果。

[root@localhostkkka]#cd..

[root@localhostkkk]#cdkkka

[root@localhostkkka]#cd

[root@localhostroot]#cd/etc

[root@localhostetc]#

任务5.掌握cp、ls、mv、chmod、rm命令的基本操作,要求能拷贝文件、新建文件、查看文件的权限、修改文件以及删除文件。

(1)在kkka目录下建立文件

[root@localhostroot]#cd/root/kkk/kkka

(2)查看文件的属性

[root@localhostkkka]#cd..

此时可用命令ls查看

[root@localhostkkk]#ls-l

(6)删除文件与文件夹

删除kkka文件夹下

[root@localhostkkk]#rmdirkkka

查看是否删除了文件夹

[root@localhostkkk]lskkka-l

(7)新建一个linux_d目录,并设置它的权限为666。

(8)在指定的目录中搜索文件,利用find命令搜索含有通配符的文件*.c。

(9)练习命令:

ping\netstat\mount\ifconfig\

(10)在根目录下用find查找.c文件。

(11)练习检查磁盘命令fdisk的使用。

列出结果中有关/dev/sd的磁盘信息。

/sbin/fdisk-l|grep/dev/sd

(12)设置当前的时间为2013年10月01日10点23分。

(13)在后台运行命令gedit,并用命令kill杀死gedit的进程。

(14)检查磁盘,列出目录/dev/sd的磁盘信息。

(15)查找/usr/sbin及/usr/bin/两个目录中所有的C语言程序。

(16)统计当前目录下txt文件的总字节数。

(17)把。

五、实验结果记录

任务2.vi或vim的使用

1

2、输入

任务3.gedit的使用

1、

2、

3、,使用ctrl+h替换,另存为

4、

任务4.掌握mkdir、cd命令的操作

1、输入mkdirkkk新建目录kkk

2、

cdkkk进入kkk文件夹

mkdirkkka新建目录kkka

cdkkka进入kkka文件夹,结果如图

3、输入cd..返回上级目录,cdkkka再进入kkka文件夹

4、

输入cd进入用户主目录,即root文件夹,可使用pwd命令查看当前路径

输入cd/etc进入etc文件夹

任务5.掌握cp、ls、mv、chmod、rm命令的基本操作

1、输入cd/home/brs/work/kkk/kkka即绝对路径

2、

编辑保存后,输入–l查看指定文件详细属性

输入

输入

输入使用ls命令查看是否删除

输入rmdirkkka删除kkka文件夹,再次查看是否删除

3、新建一个linux_d目录,设置权限为使用chmod666linux_d设置其权限为可读可写可执行

4、

5、输入find/home/brs/work/kkk-name*.c在指定目录搜索.c文件

6、

输入find~-name*.c在根目录下搜索.c文件

7、输入ping查看与XX连接情况,使用ctrl+c中断

8、

输入netstat显示各种网络相关信息,如网络连接,路由表,接口状态

输入ifconfig查看网络配置信息,如IP地址

9、mount/dev/sda1/mnt/usb将设备名为sda1的U盘挂载至/mnt/usb

10、

使用umount/mnt/usb卸载U盘

11、输入/sbin/fdisk–l|grep/dev/sd列出有关/dev/sd的磁盘信息,此处使用管道命令|将fdisk的输出作为grep的参数输入

12、

13、:

00"设置系统时间

14、

15、输入gedit&在后台运行gedit,此时输入ps查看gedit进程PID号为100963,再输入kill-9100963结束进程。

16、

17、输入find/usr-name*.c查找usr目录下所有.c文件

18、

10、输入wc–c*.txt统计当前目录下txt文件的总字节数

19、输入ps>sort>result把ps命令的标准输出结果输入给sort,经过排序后结果被保存到result中

20、

六、实验结果分析

通过使用shell命令可直接完成文件命令操作,文本文件的编辑,并更改简单的系统设置

七、实验心得(思考和意见)

Linux的shell命令让用户可以使用功能强大的命令,完成一些windows上无法完成或繁琐的操作,为以后程序的编写,系统管理提供了便利,我们应熟练掌握这些基础知识。

在学习过程中遇到了不少问题,通过网络得到了解决。

1、soduapt-get命令

2、

在使用vi编辑器时,上下左右按键变成了ABCD,这是由于vi版本号不同所造成的,此时需要使用sudoapt-getremovevim卸载原版vim,再输入soduapt-getinstallvim安装最新版本,便可解决问题。

此外sudoapt-getupgrade用于更新已安装的软件。

3、su命令

4、

以常规用户登录时权限不足,在修改系统文件时会遭到拒绝,此时输入su及root密码可临时切换至root用户,获取最高命令。

5、rmdir命令只能删除空文件夹,若要删除非空文件夹,应使用rm–r

6、

7、开机登陆界面输入密码后无法进入桌面,此时按下ctrl+alt+F1可进入tty命令行,实际上F1-F6对应6个本地命令台,而F7对应图形界面,修改完成后按下ctrl+alt+F7即可返回图形界面。

8、

Linux程序设计实验报告2

——SHELL程序设计1

一、实验目的

1.Shell程序设计中变量的使用;

2.理解通道的概念并初步掌握它的使用方法;

3.掌握算术操作、字符串操作、逻辑操作、文件操作;

4.掌握ifthenfi、iftheneliffi、case、while、for等控制语句;

5.在shell脚本中使用函数;

二、实验任务与要求

1.观察变量$#,$0,$1,$2,$3,$@的含义

3.顺序、分支、循环程序的设计

4.菜单程序的编写

三、实验工具与准备

计算机PC机,LinuxRedhatFedoraCore6操作系统

四、实验步骤与操作指导

任务1.调试下列shell程序,写出变量$#,$0,$1,$2,$3,$@的含义。

#!

/bin/bash

echo“程序名:

$0”

echo“所有参数:

$@”

echo“前三个参数:

$1$2$3”

shift

echo“程序名:

$0”

echo“所有参数:

$@”

echo“前三个参数:

$1$2$3”

shift3

echo“程序名:

$0”

echo“所有参数:

$@”

echo“前三个参数:

$1$2$3”

exit0

修改程序,使用变量$#,程序运行时从键盘输入文件名,判断文件是否存在,如果存在,显示文件内容。

提示:

readDORF

if[-d$DORF]

then

ls$DORF

elif[-f$DORF]

任务2.编写一个shell程序,此程序的功能是:

显示root下的文件信息,然后建立一个kk的文件夹,在此文件夹下新建一个文件aa,修改此文件的权限为可执行。

提示:

1.进入root目录:

cd/root

2.

3.显示root目录下的文件信息:

ls–l

4.

5.新建文件夹kk:

mkdirkk

6.

7.进入root/kk目录:

cdkk

8.

9.新建一个文件aa:

viaa#编辑完成后需手工保存

10.

11.修改aa文件的权限为可执行:

chmod+xaa

12.

13.回到root目录:

cd/root

14.

请修改程序,所建立的目录名从键盘输入,把/root下的所有文件信息保存在aa文件中。

任务3.调试下列shell程序,此程序的功能是:

利用内部变量和位置参数编写一个名为test2的简单删除程序,如删除的文件名为a,则在终端输入的命令为testa。

提示:

除命令外至少还有一个位置参数,即$#不能为0,删除的文件为$1。

(1)用vi编辑程序

[root@localhostbin]#vitest2

#!

/bin/sh

iftest$#-eq0

then

echo"Pleasespecifyafile!

"

else

gzip$1//先对文件进行压缩

echo"File$1isdeleted!

"

fi

(2)请修改程序,查看回收站中的文件,从键盘输入回收站中的某一文件,把此文件恢复到/home目录下。

(3)删除垃圾箱中的所有文件。

任务4.调试下列程序,程序的主要思想是用while循环求1到100的和。

(1)用gedit编辑脚本程序test12

[root@localhostbin]#gedittest12

total=0

num=0

while((num<=100));do

total=`expr$total+$num

((num+=1))

done

echo"Theresultis$total"

(2)用for语句完成以上求和。

(3)编写shell程序计算1+1/2+1/3+1/4+......+1/n

5.调度下列程序,使用shell编写一个菜单,分别实现列出以下内容:

(1)目录内容、

(2)切换目录、(3)创建文件、(4)编辑文件、(5)删除文件的功能。

在此例中将用到循环语句until、分支语句case、输入输出语句read和echo。

#!

/bin/bash

until

echo"

(1)Listyouselecteddirectory"

echo"

(2)Changetoyouselecteddirectory"

echo"(3)Creatanewfile"

echo"(4)Edityouselectedfile"

echo"(5)Removeyouselectedfile"

echo"(6)ExitMenu"

readinput

iftest$input=6then

exit0

fi

do

case$inputin

1)ls;;

2)echo-n"Entertargetdirectory:

"

readdir

cd$dir

;;

3)echo-n"Enterafilename:

"

readfile

touch$file

;;

4)echo-n"Enterafilename:

"

readfile

vi$file

;;

5)echo-n"Enterafilename:

"

readfile

rm$file

;;

*)echo"Pleaseselected1\2\3\4\5\6";;

esac

done

(2)修改以上程序,用菜单形式完成算术四则混合运算。

(3)修改以上程序,用菜单形式完成7种电脑图形游戏。

任务6.调试下列程序

#!

/bin/bash

xx=0

func(){

dire=${PWD%/*}

forfilein$(ls);do

if[-f“$file”];then

i=xx

while[“$i”–gt“0”];do

echo/c“+“

done

echo/c“-“

echo${dire}”/$file”

elif[-d“$file”];then

cd"$file"

dire=${PWD%/*}

xx=$(($xx+1))

func;

cd..

fi

done

}

func

分析程序的运行结果,此程序的功能类似于windows的什么命令。

五、实验结果记录

任务1.调试下列shell程序,写出变量$#,$0,$1,$2,$3,$@的含义。

输入参数12345678910结果如下

$#传入的参数个数

$0文件名及路径

$1传入的第一个参数

$2传入的第二个参数

$3传入的第三个参数

$@所有参数

修改程序代码如下

输入文件名输出文件内容,输入文件夹名输出其中文件,若无参数传入,输出提示语句,结果如图

任务2.编写一个shell程序,此程序的功能是:

显示root下的文件信息,然后建立一个用户输入的的文件夹,在此文件夹下新建一个文件aa,将/root下的所有文件信息保存在aa中,修改此文件的权限为可执行。

代码如下

输入文件夹名example,结果如下

任务3.调试下列shell程序,此程序的功能是:

利用内部变量和位置参数编写一个名为test2的简单删除程序,代码如下

(2)请修改程序,查看回收站中的文件,从键盘输入回收站中的某一文件,把此文件恢复到/home目录下。

代码如下

(3)删除垃圾箱中的所有文件。

代码如下

运行结果如下

任务4.调试下列程序,程序的主要思想是用while循环求1到100的和。

(2)用for语句完成以上求和,代码及运行结果如下

(3)计算1+1/2+1/3+1/4+......+1/n,代码及结果如下

5.调度下列程序,使用shell编写一个菜单,分别实现列出以下内容:

(1)目录内容、

(2)切换目录、(3)创建文件、(4)编辑文件、(5)删除文件代码如下

(2)修改以上程序,用菜单形式完成算术四则混合运算。

代码如下

六、实验结果分析

七、实验心得(思考和意见)

易错知识点:

1、内部参数在shell编程中十分有用,应熟练掌握

$0:

程序所在的路径

$#:

传递给程序的总的参数数目

$?

shell程序在shell中退出的情况,正常退出返回0,反之为非0值

$*:

传递给程序的所有参数组成的字符串

2、赋值时等号左右无空格,表达式[expression]判断时左右都有空格,也可使用testexpression

3、使用$(command)格式进行命令替换,如echo$(date)将输出

ThuJul2317:

10:

38CST2015

4、使用’expr$x+$y’来进行数值运算

5、在循环列表中空格表示换行

6、IFS(InternalFieldSeperator)是Linux的shell中预设的分隔符,备份->替换->还原

IFSBAK=$IFS(备份原来的值)->IFS=,(替换)->IFS=$IFSBAK(还原)

7、使用bc计算器时,用scale=n来精确到n位小数

在shell程序中使用a=`echo”scale=n;x+y”|bc`来进行运算

 

Linux程序设计实验报告3

——SHELL程序设计2

一、实验目的

1.提高Shell程序编程的技巧;

2.提升综合shell编程能力。

二、实验任务与要求

1.菜单的实现

2.遍历所有以该目录为祖先的文件

3.分支与循环、随机数在游戏程序中的应用

4.定时检查存储空间文件的变化

5.消息框程序设计

6.菜单界面程序设计

三、实验工具与准备

计算机PC机,LinuxRedhatFedoraCore6操作系统

四、实验步骤与操作指导

五、

任务1.编写下列程序。

程序的功能是要实现如下菜单所表示的功能。

请输入您要清空的文件类型

1—文件夹

2—其他文件

3—所有文件

0—没想好,先退出

任务2.调试下列shell程序。

补充完整以下Shell程序,要求输入一个目录名,函数list的功能是遍历所有以该目录为祖先的文件,大致实现命令“ls-R”的功能。

#!

/bin/sh

list()

{

cd$1

ls-l

foriin$(ls$1)

do

if[-d$i]

then

directory="$1/$i"

echo"Thedirectory$directoryisasubdirectoryof$1,whichincludes:

"

list$directory

cd$1

fi

done

}

任务3.调试下列shell程序,这是一个小游戏,阅读程序,写出这个游戏的玩法。

#!

/bin/bash

foriin$(seq154)#初始化牌

do

ok[$i]=1

done

max=0#初始化赢家

foriin$(seq14)#游戏开始

do

echo"Player$i"#玩家i的回合

a=$((RANDOM%53+1))#抽牌

while[[${ok[$a]}-eq0]];

do

a=$((RANDOM%53+1))

done

ok[$a]=0

if[$a-gt$max];then

max=$a

num=$i

fi

HuaSe=$((a%4))#生成花色

case$HuaSein

0)HS='C';;#草花

1)HS='D';;#方块

2)HS='H';;#红心

3)HS='S';;#黑心

esac

DaXiao=$((a/4+1))#生成牌值

case$DaXiaoin

2|3|4|5|6|7|8|9|10)echo$HS$DaXiao;;

11)echo$HS'J';;

12)echo$HS'Q';;

13)echo$HS'K';;

1)echo$HS'A';;

14)echo'smallJOKE';;#小王

15)echo'bigJOKE';;#大王

esac

readll

done

echo"Player$numwin!

"#游戏结果

任务4.编写下列shell程序。

编写一个程序,每隔5分钟检查一下当前用户(假设用户名为liujh)是否有新的邮件,若有则提示用户。

提示题目的关键问题是获取5分钟前后此文件夹的存储容量,如果邮件箱中存储容量发生变化,则可判断有新邮件到达。

提示关键语句:

count1=`ls-l/var/mail/liujh|awk'{print$5}'`

echo$count1

sleep300#隔5分钟检测一次

count2=`ls-l/var/mail/liujh|awk'{print$5}'`

echo$count2

if[$count1-eq$count2]

任务5.调试下列程序,程序调试后把此程序改写为游戏菜单控制程序。

#!

/bin/sh

dialog--title"Start"--msgbox

dialog--title"WelcometotheStartMenu."

dialog--title"Confirm"--yesno"DoyouwanttoentertheMenu?

"918

if[$?

!

=0];then

dialog--infobox"Welcome!

"

sleep2

dialog--clear

 exit0

fi

if["$M_O"="1"];then

!

gnome-cd

elif["$M_O"="2"];then

!

gnome-sound-recorder

else

!

gnome-volume-control

fi

exit0

任务6.调试下列程序。

程序功能是设计了一个简单的调查问卷菜单界面,调查学生一些个人信息。

此程序运用了GUI图形化界面、使用了条件语句,case

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

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1