热门搜索 :
考研考公
您的当前位置:首页正文

实验一Linux基本操作和shell编程

来源:伴沃教育


福建农林大学计算机与信息学院实验报告

Linux基本操作和shell编程

实验环境 1、硬件环境:

计算机设备:P4+256MB内存 2、软件环境:

VM+红旗Linux 4.0 桌面版

一、实验目的:

1)掌握Linux常用的命令操作。

2)掌握在Linux下的C编程基本方法。 3)掌握shell编程方法。

4)掌握dialog图形化编程方法。

二、实验内容

1、启动红旗linux系统或其它Linux系统 操作步骤:

1) 以root用户,登录红旗linux,进入其桌面环境。

2) 查看红旗linux的桌面图标、系统面板和主菜单中的内容,并记录相应的项目。 2、在终端中完成下列命令操作,并记录结果

1) 在root主目录下创建一个mydir子目录和一个myfile文件,再在mydir下建立d1

和d2两个子目录。 Mkdir /root/mydir;cat >myfile(若是空文件直接ctrl+d结束);mkdir /mydir/d1 my/dir/d2;

2) 查看mydir和myfile的默认权限 ls –dl mydir myfile

3) 查看当前myfile和mydir的权限值是多少? ls –dl mydir myfile

由上可知mydir权限值是755,myfile权限值是644

4) 将myfile文件分别复制到root 和d1的主目录中 cp myfile /root/mydir/d1

5) 将root主目录中的myfile改为yourfile mv myfile yourfile

6) 通过从键盘产生一个新文件text.txt并输入I am a student cat >text.txt

7) 查找text.txt文件是否包含student字符串 grep –n student text.txt

3、创建一个新用户,名为dd1。要求记录操作步骤或命令序列。 Useradd dd1;passwd 123456

4、编写能输出“Hello world!”问候语的C程序,并在终端中编译、执行。要求记录所使用的命令及结果。 #include main()

{ printf(“Hello World!); Getch(); }

5、编写一个程序并设置其在后台执行,其功能是在一段时间后(可自行设置),在屏幕上显示信息:Time for play!,写出相应的程序、命令及结果

#include < unistd.h > #include

main()

{ sleep(10);

printf(“Time for play!‖); getch();}

6、编写C程序,求1到100之间整数的阶乘和,并对程序进行优化。写出程序、命令和结果。

#include Main()

{int I;double jc=1;double sum=0; For(i=1;i<=100;i++) {jc*=I; Sum+=jc; }

Printf(―total is :%d‖,sum);}

7、编写C程序,根据键盘输入的半径求圆面积,要求在命令行使用不同的圆周率(PI=3.14,PI=3.14159,PI=3.14159626等)进行编译,写出程序、命令和结果。 #include #include

double getArea(double r, double PI){ double area = 0; area = PI * r * r; return area;}

int main(int argc, char *args[]){ double R = 0; double Area = 0;

double PI = atof(args[1]);

printf(\"The valum of PI is: %f\\n\ printf(\"Imput the R: \"); scanf(\"%lf\ Area = getArea(R, PI);

printf(\"面积是:%f\\n\

8、编写shell程序sh.1, 完成向用户输出“你好!”的问候语。并根据实验的时间,分别给出:“上午好!”或者“下午”,或“晚上”好的问候。 #!/bin/sh

TIME=$(date +%H)

if [ \"$TIME\" -ge 1 ] && [ \"$TIME\" -le 11 ] ;then echo \"早上好!\"

elif [ \"$TIME\" -ge 12 ] && [ \"$TIME\" -le 18 ] ;then echo \"下午好!\"

elif [ \"$TIME\" -ge 19 ] && [ \"$TIME\" -le 24 ] ;then echo \"晚上好!\" fi

9、编程sh.2:如果存在sh.1文件,则输出信息:sh.1文件已经存在,并询问是否运行?如果用户回答:要运行。那么结果是什么?如果sh.1不存在,则提示用户先创建文件。 #!/bin/sh

PWD=$(pwd)

if [ -f \"$PWD\"/8.sh ] ; then

echo \"脚本8.sh存在,是否运行,输入Y/N\" read a

if [ $a == Y ] || [ $a == y ] ; then $PWD/8.sh

elif [ $a == N ] || [ $a == n ] ; then exit 2 fi else

echo \" 上一题的脚本8.sh不存在,退出\" exit 1 # fi

10、编程sh.3:循环显示所有的sh.*文件。 #!/bin/sh

for i in $(ls sh.*) do ls -l $i done

11、Dialog 工具编程sh.4:实现用信息框+输入框:显示问候语“某同学,你好!”的信息。(提示:输入信息请用英文。) #!/bin/sh

dialog --inputbox \"Enter your name:\" 9 28 2>1.txt export name=$(cat 1.txt)

dialog --msgbox \"$name同学,你好\" 9 28

12、设计一个图形化的菜单查询系统sh.5,名为“欢迎来到学生之家!”,调查内容包括:姓名、性别、年龄和建议(提示:输入信息请用英文。)。并将所得到的结果,用信息框显示出来。(格式不限,自由发挥。) #!/bin/sh

dialog --title \"欢迎来到学生之家\" --inputbox \"姓名\" 10 25 —inputbox \"性别\" 10 25 --inputbox \"年龄\" 10 25 --inputbox \"建议\" 10 25 2>12.txt info=$(cat 12.txt)

dialog --msgbox \"$info\" 10 30

13、对教材P49的程序代码4-1.C进行调试,要求在进入两个函数的调用时进行跟踪并单步运行,记录结果中要求给出断点的设置、进入函数体内的跟踪情况(用行号表示),并说明静态变量的作用。

本程序中的静态变量是 lastnum.静态变量,是当函数printmessage退出后,这个变量的值还将保存起来,以等待下一次调用。 gcc test4_1.c –o a -g gdb a

(gdb)b main

三、实验结果与讨论(根据实验结果回答下列问题)

1、 你所使用的实验环境是什么?请写出Linux的平台、内核版本号。 2、 在Linux中,标准设备文件有哪些?这些设备文件在哪个目录?

3、 对于上述各编程题目中所用到了的各个头文件,请找到它们的位置。 4、 使用gdb进行调试的步骤,s命令与n命令有何区别? 四、总结

因篇幅问题不能全部显示,请点此查看更多更全内容

Top