课程编号:B080103040
Linux操作系统
实验报告
姓 名
邵春晓
学 号班 级
软工1201
指 导 教 师
石 凯
实验名称
Linux操作系统实验
开 设 学 期
2014-2015第一学期
实 验 时 间
第11周——第18周
评 定 成 绩
评定人签字
石 凯
评 定 日 期
东北大学软件学院
实验一 熟悉Linux环境
【实验内容】
一、练习常用的Shell命令。
当用户登录到字符界面系统或使用终端模拟窗口时,就是在和称为shell的命令解释程序进行通信。当用户在键盘上输入一条命令时,shell程序将对命令进行解释并完成相应的动作。这种动作可能是执行用户的应用程序,或者是调用一个编辑器、GNU/Linux实用程序或其他标准程序,或者是一条错误信息,告诉用户输入了错误的命令。
二、熟悉vim编辑器
在编写文本或计算机程序时,需要创建文件、插入新行、重新排列行、修改内容等,计算机文本编辑器就是用来完成这些工作的。
Vim编辑器的两种操作模式是命令模式和输入模式(如图2所示)。当vim处于命令模式时,可以输入vim命令。例如,可以删除文本并从vim中退出。在输入模式下,vim将把用户所输入的任何内容都当作文本信息,并将它们显示在屏幕上。
三、熟悉gcc编译器
GNU/Linux中通常使用的C编译器是GNU gcc。编译器把源程序编译生成目标代码的任务分为以下4步:
a. 预处理,把预处理命令扫描处理完毕 ;
b. 编译,把预处理后的结果编译成汇编或者目标模块;
c. 汇编,把编译出来的结果汇编成具体CPU上的目标代码模块;
d. 连接,把多个目标代码模块连接生成一个大的目标模块;
四、熟悉gdb调试工具
LINUX包含了一个叫gdb的GNU调试程序。gdb是一个用来调试C和C++程序的强有力调试器。它使你能在程序运行时观察程序的内部结构和内存的使用情况。它具有以下一些功能:
·监视程序中变量的值;
·设置断点以使程序在指定的代码行上停止执行;
·一行行的执行代码。
五、掌握Linux下C程序编辑运行过程
Linux下编写C程序要经过以下几个步骤:
= 1 \* GB2 ⑴启动常用的编辑器,键入C源程序代码。
= 2 \* GB2 ⑵编译源程序
= 3 \* GB2 ⑶运行可执行文件
【实验总结】
在学习linux的过程中间,最主要的就是耐心和细心。linux的命令很多,只有一遍一遍的看一次又一次的用,才能记住很多的命令,才能很好的使用linux。通过这次实验,我对linux的系统以及vim编辑器,gcc编译器,gdb调试工具更加熟悉,这也让我让我能够更加努力学习。
实验二 文件操作
【实验内容】
1.文件的创建(必做题)
编写程序,实现cp命令的功能。被复制的文件名与复制出的新文件由用户指定。调用方法:“你编写的程序名 被复制文件名 复制出的文件名”。要求程序有一定的健壮性,即对用户错误调用及其他错误要有处理和反馈。(提示:可以使用man手册查看具体的系统调用,e.g., man 2 open)。
#include
#include
#include
#include
#include
main(int ac, char *av[]){
int fd1, fd2;
int n;
char buf[512];
if(ac!=3){
printf("missing file operand\n");
exit(1);
}
if((fd1=open(av[1], O_RDONLY))==-1){
perror("cannot open");
exit(1);
}
if((fd2=creat(av[2], 0777))==-1){
perror("cannot creat");
exit(1);
}
while((n=read(fd1, buf, 512))>0){
write(fd2, buf, n);
}
close(fd1);
close(fd2);
}
2.查看目录内容及文件属性
(1)编写程序,实现ls -l的功能。调用方法:“你编写的程序名”——这时打印出当前目录文件及其属性;“你编写的程序名 目录名”——这时在终端显示给定目录下的文件及其属性。(提示:当用户给定目录后,需要改变进程的当前目录,可使用chdir()。)
#include
#include
#includ