logo资料库

《Linux操作系统》实验报告.pdf

第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
资料共40页,剩余部分请下载后查看
Linux 操作系统 实验报告 姓 名 班 级 实 验 名 称 学 号 指 导 教 师 Linux 操作系统实验 开 设 学 期 2 0 1 5 第 一 学 期 开 设 时 间 第 1 1 周 — — 第 1 8 周 报 告 日 期 评 定 成 绩 评 定 人 评 定 日 期 1
【实验目的】 实验一 熟悉 Linux 环境 1.了解 Linux 系统基本操作方法,学会独立使用该系统。 2.熟悉 Linux 下如何编辑、编译和运行一个 C 语言程序。 3.学会利用 gcc、gdb 编译、调试 C 程序。 【预习内容】 1.预习 Linux 下各种应用程序的使用。 2.预习常用的 SHELL 命令。 3.预习 vim 编辑器和 emacs 编辑器使用方法。 4.预习 Linux 下 C 程序编辑、编译和运行过程。 【实验内容】 一、常用的 Shell 命令。 1.目录操作 mkdir abc 创建一个目录 abc cd /abc 将工作目录改变到 abc cd 改变当前目录到主目录 ls 列出当前目录的内容 ls -l 输出当前目录内容的长列表 pwd 显示当前目录的全路径 根据实际操作,其命令执行的书写形式和简略内容如下: [qdf@localhost ~]$ mkdir abc [qdf@localhost ~]$ cd abc bash: cd: /abc: 没有那个文件或目录 [qdf@localhost ~]$ cd [qdf@localhost ~]$ ls abc a.out ha math maths.c nano.save rr.c 公共的 视频 文档 音乐 abc.c d h.c matH m.c q.c xx 模板 图片 下载 桌面 [qdf@localhost ~]$ ls -l 总用量 92 drwxrwxr-x 2 qdf qdf 4096 12 月 1 08:05 abc -rw-rw-r-- 1 qdf qdf 6810 12 月 1 07:04 a.out drwxrwxr-x 3 qdf qdf 4096 12 月 1 06:41 d ······ drwxr-xr-x 2 qdf qdf 4096 12 月 1 02:58 视频 drwxr-xr-x 2 qdf qdf 4096 12 月 1 02:58 图片 drwxr-xr-x 2 qdf qdf 4096 12 月 1 02:58 文档 drwxr-xr-x 2 qdf qdf 4096 12 月 1 02:58 下载 drwxr-xr-x 2 qdf qdf 4096 12 月 1 02:58 音乐 drwxr-xr-x 3 qdf qdf 4096 12 月 1 08:03 桌面 [qdf@localhost ~]$ pwd /home/qdf 2
2.文件显示实用程序 cat mx.c 显示 mx.c 文件内容 more mx.c 分屏显示 mx.c 内容 cat file1 file2 连接 file1 和 file2 根据实际操作,其命令执行的书写形式和简略内容如下: [qdf@localhost ~]$ vi mx.c [qdf@localhost ~]$ cat mx.c #include main(){ Printf(“Hello world!!!”); Printf(“Hello world!!!”); Printf(“Hello world!!!”); } [qdf@localhost ~]$ more mx.c #include main(){ Printf(“Hello world!!!”); Printf(“Hello world!!!”); Printf(“Hello world!!!”); } [qdf@localhost ~]$ vi file1 file2 [qdf@localhost ~]$ cat file1 file2 abcdef 123456 3.文件管理实用程序 cp file1 file2 将文件 1 复制到文件 2 mv file1 file2 将文件重命名为 file2 rm filename 删除文件 filename 根据实际操作,其命令执行的书写形式和简略内容如下: [qdf@localhost ~]$ cp file1 file2 [qdf@localhost ~]$ cat file2 abcdef [qdf@localhost ~]$ vi file1 [qdf@localhost ~]$ cat file1 A-B-C-D-E-F-G [qdf@localhost ~]$ mv file1 file2 [qdf@localhost ~]$ cat file2 A-B-C-D-E-F-G [qdf@localhost ~]$ rm filename [qdf@localhost ~]$ cat filename cat: file2: 没有那个文件或目录 [qdf@localhost ~]$ 3
4.数据操作实用程序 tty 显示当前终端的路径和文件名 who 显示当前登录用户的列表 根据实际操作,其命令执行的书写形式和简略内容如下: [qdf@localhost ~]$ tty /dev/pts/6 [qdf@localhost ~]$ who qdf tty1 2014-12-01 03:04 (:0) qdf pts/4 2014-12-01 04:50 (:0.0) qdf pts/6 2014-12-01 08:03 (:0.0) 5.其他实用程序 根据实际操作,其命令执行的书写形式和简略内容如下: [qdf@localhost ~]$ date 2014 年 12 月 01 日 星期一 09:12:50 CST [qdf@localhost ~]$ history 1 vi ha.c 2 vi h.c 3 cc h.c 4 ls -l h.c 5 ./a.out ······ 121 cat file 122 history 二、Linux 下 C 程序编辑运行过程 1.Linux 下编写 C 程序编辑运行过程的步骤: ⑴命名 C 程序为 hello.c,同时启动 vi 编辑器,并键入 C 源程序代码,具体如下: #include void main(void) { Printf(“Hello world!!!\n”); } ⑵编译源程序,即用 gcc 编译器对 hello.c 进行编译,以生成 hello.out。方法如下: gcc -o hello.out hello.c ↙ ⑶键入一条指令,运行 hello.out。 ·/ hello.out ↙ 2.Linux 下 C 程序编辑运行命令执行的形式和容如下: [qdf@localhost ~]$ vi hello.c [qdf@localhost ~]$ gcc -o hello.out hello.c 4
[qdf@localhost ~]$ ./hello.out Hello world!!! [qdf@localhost ~]$ 三、实验心得总结 首先,由对 Linux 基本不了解到能独立安装 Linux 虚拟机以及可以独立编写一些简单的 shell 命令,我认为这就是一种进步。本次实验共四学时,实验期间对 Linux 系统基本操作 方法有了深入的了解,进一步巩固了常用的 shell 命令,如显示文件内容的命令:cat、more、 less、head、tail;文件的创建与删除的命令:mkdir、rmdir;改变工作目录、显示路径以 及显示目录内容的命令:cd、pwd、ls 等等。 其次,在具体的实验内容指导下,能熟悉地利用 vi 命令打开编辑器(如 vi hello.c 命令就是编辑一个名为 hello.c 的 C 源程序),更改所编写的文本或计算机程序的文件名或 目录名(如 cd f1 f2 就是将 f1 文件名更改为 f2),修改其内容或删除已建的文件或目录(如 rm hello.c 就是删除名为 hello.c 源程序文件),同时熟悉了在 Linux 系统下如何编辑、编 译和运行一个 C 语言程序。 再者, 最后, 5
实验二 文件操作 【实验目的】 1.掌握文件的概念及对文件的操作。 2.掌握对目录及文件系统的操作。 3.掌握对设备文件的操作。 【实验内容】 char buf[]=[512]; fd=open(av[1], O_RDONLY); 一、文件的创建 编写程序,实现 cp 命令的功能。被复制的文件名与复制出的新文件由用户指定。调用方法: “你编写的程序名 被复制文件名 复制出的文件名”。要求程序有一定的健壮性,即对用户 错误调用及其他错误要有处理和反馈。(提示:可以使用 man 手册查看具体的系统调用,e.g., man 2 open)。 [qdf@localhost ~]$ vi read.c [qdf@localhost ~]$ cc read.c [qdf@localhost ~]$ ./a.out [qdf@localhost ~]$ cat read.c #include #include #include main(int ac, char *av[]){ int fd; int n; while((n=read(fd,sizeof,buf,sizeof(buf)))>0) } [qdf@localhost ~]$ ls -l read.c -rw-rw-r-- 1 qdf qdf 299 12 月 9 19:06 read.c [qdf@localhost ~]$ cp read.c readcp.c [qdf@localhost ~]$ ls -l readcp.c -rw-rw-r-- 1 qdf qdf 299 12 月 9 19:27 readcp.c 二、查看目录内容及文件属性 1.编写程序,实现 ls -l 的功能。调用方法:“你编写的程序名”——这时打印出当前目录 文件及其属性;“你编写的程序名 目录名”——这时在终端显示给定目录下的文件及其属 性。(提示:当用户给定目录后,需要改变进程的当前目录,可使用 chdir()。 (1)编写程序: #include printf(“%.*s\n”,n,buf); close(fd); 6
#include #include main(int ac, char *av[]){ DIR * dirp; struct dirent * p; if(1==ac){ dirp=opendir("."); dirp=opendir(av[1]); }else{ } while((p=readdir(dirp))!=NULL){ if(p->d_name[0]!='.'){ } printf("%s\n", p->d_name); } closedir(dirp); } (2)实现 ls -l 的功能 [qdf@localhost ~]$ vi lsone.c [qdf@localhost ~]$ cc lsone.c [qdf@localhost ~]$ ls -l lsone.c -rw-rw-r-- 1 qdf qdf 292 12 月 9 19:48 lsone.c [qdf@localhost ~]$ mkdir ls1 [qdf@localhost ~]$ ls -l lsone.c ls1 -rw-rw-r-- 1 qdf qdf 292 12 月 9 19:48 lsone.c ls1: 总用量 0 [qdf@localhost ~]$ 2.编写程序,实现 ls -R 的功能。 (1)编写程序: #include #include #include #include main(int ac, char *av[]){ int fd; int n; char buf[512]; fd=open(av[1], O_RDONLY); 7
printf("%.*s", n, buf); while((n=read(fd, buf, 512))>0){ } close(fd); } (2)实现 ls -R 的功能 [qdf@localhost ~]$ vi open.c [qdf@localhost ~]$ cc open.c [qdf@localhost ~]$ ./a.out [qdf@localhost ~]$ [qdf@localhost ~]$ ls -R open.c open.c 三、设备文件操作 在/dev 目录下,找到你的鼠标对应的文件。打开这个文件,从该文件循环读出字符,并将 字符对应的 ascII 代码在终端显示出来。 四、实验总结 【实验报告】 8
分享到:
收藏