Linux实验报告

Linux实验报告
Linux实验报告

Linux内核实验报告

实验一、linux内核开发环境

一、实验目的

掌握linux内核开发环境的安装、调试

二、实验内容:

虚拟机bochs和virtual PC的安装、运行

使用nasm编写简单例程,生成image文件,并在虚拟机中调试

一个简单的引导程序的设计

三、实验环境:

操作系统windows 、linux

软件工具:见实验配套软件(tools中)

其它:1.44空白软盘一张

四、实验步骤及截图

A、虚拟机bochs和virtual PC的安装、运行

使用记事本打开C:\Program Files\Bochs-2.3\dlxlinux中的bochsrc.bxrc配置文件,浏览该配置文件的内容并回答该demo linux模拟启动的方式是软盘。

B、windows环境使用virtual PC

1、建立虚拟机

1、进入实验文件夹\Microsoft Virtual PC,安装并运行virtual pc软件。

2、按照virtualPC的帮助说明,建立一台虚拟计算机。

2、使用nasm编写简单例程,生成image文件

1、记事本编辑代码sample.asm:

org 07c00h ; 告诉编译器程序加载到7c00处

mov ax, cs

mov ds, ax

mov es, ax

call DispStr ; 调用显示字符串例程

jmp $ ; 无限循环

DispStr:

mov ax, BootMessage

mov bp, ax ; ES:BP = 串地址

mov cx, 16 ; CX = 串长度

mov ax, 01301h ; AH = 13, AL = 01h

mov bx, 000ch ; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)

mov dl, 0

int 10h ; 10h 号中断

ret

BootMessage: db "Hello, OS world!"

times 510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节

dw 0xaa55 ; 结束标志

2、对该文件进行编译。生成sample.bin文件

在命令方式中进入实验目录,运行命令:nasmw sample.asm –o sample.bin。

3、在该目录下以命令方式运行:bximage.exe 选择创建软盘镜像(fd)文件sample.img

4、将sample.bin写入到空白软盘镜像文件中。

命令方式运行:partcopy sample.bin 0 200 sample.img 0

5、将sample.img复制到bochs的安装目录,可以新建一个目录比如\sample,并放

入sample.img。将dlx linux中的配置文件以及批处理文件run.bat复制到\sample。

对这两个文件进行适当的修改。并运行。

bochsrc里面修改:

floppya: image=sample.img, status=inserted(1_44=a 改为image=sample.img)# floppyb: 1_44=floppyb.img, status=inserted(注释此行)

boot: a(c改为a)

# hard disk(以下3行都注释掉)

#ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

#ata0-master: type=disk, path="hd10meg.img", cylinders=306, #heads=4, spt=17 6、如果使用了真正的软盘,请使用该软盘引导计算机,观察并记录结果。或者直接

在bochs中使用软驱设备(配置文件需要修改floppya: 1_44=a:,status=inserted)。

7、运行virtual PC 载入sample.img进行模拟。

3、建立虚拟机一个简单的引导程序的设计

1、打开文件boot.asm ;prog.asm.

2、使用实验二的方法进行编译,并生成image文件,在bochs中模拟运行

(以上两步可能用到的命令:

nasmw boot.asm –o boot.bin

nasmw prog.asm –o prog.bin

partcopy boot.bin 0 200 floppy.img 0

partcopy prog.bin 0 200 floppy.img 200)

3、复制bochs中的run.bat文件为rundbg.bat, 并修改有关语句: ..\bochsdbg -q -f bochsrc.bxrc

4、双击运行rundbg.bat,进入调试模式。

5、输入bochs的调试命令进行调试,观察上述引导程序的执行过程。记录结果。

常用Bochs的调试命令:

help ‘command’查看命令帮助

c 连续执行

s [count] 执行count条指令,默认为1条(仅键入s 为单步运行) q 退出调试

ctrl-c 定制执行,回到命令行

vbreak seg:0ff 设置断点(比如vbreak 0x0000:0x7c00)

n 单步运行,不跟踪进入子程序

u 返汇编

info r 查看当前cpu寄存器内容

dump_cpu 查看cpu所有寄存器内容和状态值

print-stack 显示当前堆栈的内容

详细内容可以查看bochs的联机帮助(在bochs安装主目录\docs下)

五、实验体会

本次实验内容主要是熟悉虚拟机和Linux系统操作,因为之前学习操作系统的时候用过linux,所以觉得操作方面不太难。不过做的时候还是出现了写错误,比如修改bochsrc的时候boot和floppy没有对应,runbat修改的时候忘记修改img 名称等等。经过一番折腾,最终做出实验结果的时候非常开心。此外,之前没用过虚拟机的单步调试,学习了之后发现非常有帮助,以后可以考虑把代码放在虚拟机里跑,这样可以互不干扰而且方便文件管理。通过实验学习到了很多,之后的实验我会更加认真对待。

实验二、Linux0.01内核编译环境

一、实验目的

掌握linux0.01内核的编译方法

掌握使用虚拟机软件进行内核开发调试的方法

二、实验内容:

在virtualPC和BOCHS下建立LINUX0.01内核开发环境

linux0.01的编译和调试

三、实验环境:

操作系统windows 、linux

软件工具:见实验配套软件(ex2中)

其它:移动存储设备用于保存实验环境

四、实验步骤及截图

A、在virtualPC和BOCHS下建立LINUX0.01内核开发环境

1、VirtualPC中运行redhat7.1

2、virtualPC虚拟和windows的文件互访

1、制作虚拟软盘文件。(使用winimage新建一个1.44软盘文件,将ex2\下的linux.tar.gz

拖到该文件中。然后保存为a.vfd。这是virtualPc默认的虚拟软盘镜像文件格式。

2、启动虚拟机linux7.1,以账户root登录,口令为aaaaaa。注意,如果运行时系统

提示内存不够,请重新设置虚拟机的内存,比如64mb。

3、加载步骤1建立的虚拟软盘文件。则该文件就成为虚拟机的软盘。

4、将该软盘挂载到linux的/mnt/floppy下。命令如下:

[root@localhost /root]# mount -t vfat /dev/fd0 /mnt/floppy

5、运行命令:cd /mnt/floppy

ls 如果正常就可以看见软盘中的linux.tar.gz文件。

6、可以将该文件复制到虚拟操作系统的其他路径中,比如,复制到在/home/floppy 中,可以这样操作:

[root@localhost floppy]# mkdir /home/floppy 新建一个目录

[root@localhost floppy]# cp /mnt/floppy/* /home/floppy 复制到新目录中[root@localhost floppy]# ls /home/floppy 浏览新目录

Linux.tar.gz

3、将虚拟机系统中的文件输出到宿主机windows中

1、如果使用虚拟软盘镜像文件,则将虚拟机中的文件输出到windows中,也可以先按照上面步骤6的方法进行,只不过是将文件复制到虚拟软盘挂载到的路径上,比如,要将虚拟机/tmp/下的install.log文件复制到虚拟软盘镜像中,可如下操作:[root@localhost /tmp]# cp /tmp/install.log /mnt/floppy

[root@localhost /tmp]# ls /mnt/floppy

install.log Linux.tar.gz

2、如果要将该文件从虚拟软盘中读出来,首先需要先将该虚拟软盘文件从虚拟机操作系统的文件系统中卸载,然后释放改虚拟软盘。运行命令:

[root@localhost /tmp]# umount /mnt/floppy

[root@localhost /tmp]#

3、运行winimage打开a.vfd。将需要的文件拖到windows中即可。

B、linux0.01的编译和调试

1、linux0.01的编译

1、按照实验一,任务2的方法,把linux0.01源代码压缩包linux.tar.gz复制到虚拟机

的/home/myfile下。

2、使用cd /home/myfile命令进入该目录,然后运行如下命令解压缩,完成后可以看

到目录中多出一个新的目录linux,此目录存放的就是linux0.01的源代码。

[root@localhost /tmp]# cd /home/myfile

[root@localhost myfile]# ls

Linux.tar.gz

[root@localhost myfile]# gzip –d Linux.tar.gz

[root@localhost myfile]# tar xvf Linux.tar

[root@localhost myfile]# ls

linux Linux.tar

3、编译linux0.01,注意首先要修改tools/build和ndisasm的文件属性,给它加上可

执行权。然后在linux目录中执行make。

[root@localhost myfile]# cd linux

[root@localhost linux]# cd tools

[root@localhost tools]# chmod +x ./tools/build

#修改文件属性,增加可执行权

[root@localhost tools]# chmod +x ./ndisasm

[root@localhost tools]# ls -l

total 20

-rwxr-xr-x 1 root root 13019 Sep 18 2001 build

-rw-r--r-- 1 root root 1722 Sep 18 2001 build.c

[root@localhost tools]# cd ../..

[root@localhost linux]# make

4、按如上方法编译成功后,在linux目录下应该有Image和System.map,System.asm

文件。

5、制作linux0.01引导盘。首先使用bximage.exe创建一个虚拟软盘文件a.img。将

该文件载入到虚拟机。或者插入一个真正的软盘,然后载入到虚拟机。

6、运行命令make disk ,生成能够的linux0.01系统引导盘

7、运行命令init 0关闭虚拟机(请特别注意不要直接复位或关闭虚拟机),然后重

新启动。在启动过程中请载入刚才生成的系统引导盘,虚拟机将会被引导进入linux0.01。

8、系统引导後,按动键盘如果打印出按键的ascii码则表示引导成功。

9、将编译生成的System.map输出到windows中,方法如下:

10、重新进入redhat7.1建立一个虚拟软盘b.img,载入到虚拟机。

11、运行命令格式化该虚拟软盘为msdos格式。然后mount,进行复制。

[root@localhost linux]# mformat a:

[root@localhost linux]# mount /dev/fd0 /mnt/floppy

[root@localhost linux]# cp System.map /mnt/floppy

[root@localhost linux]# umount /mnt/floppy

2、linux0.01在bochs中调试

1、使用任务1生成的linux0.01引导软盘镜像文件a.img。在bochs中进行引导

2、参考上次实验内容在bochs中调试linux0.01的运行情况,特别是观察boot.s和

head.s部分代码的运行情况。

3、可以在线性地址0处设置断点,查看System.map,找出main的入口地址,并设

置断点,观察head.s的运行情况,根据观察结果,请回答head.s运行完后,页

目录和页表部分的值是什么。2、对该文件进行编译。生成sample.bin文件

五、实验体会

本次实验内容主要是熟悉使用linux内核的编译方法和调试方法。较实验一

来说,实验难度有所增加,所以做的时候的确遇到了不少问题。比如修改文件属性的时候chmod指令中忘了加.而且文件所在目录进入有误导致结果不对,后来查了指令集后才弄清楚。还有单步调试的时候开始不会设断点,问过同学之后才学会。通过本次实验比上次实验收获得更多,自己动手才会有收获,相信接下来的实验中我会更加认真,也会学到更多。

实验三、linux任务切换实验

一、实验目的

通过一个在内核中预先设置的任务切换,理解linux任务运行和切换的机制。

二、实验内容:

Linux0.00的编译和修改

说明:本例是linux0.00版的源代码,boot.s和head.s的功能基本如课程中介绍,但略有修改,head.s中增加了两个任务(task),并且通过时钟中断轮流进行任务的切换,这两个任务通过系统调用向终端显示字符。

三、实验环境:

操作系统windows 、virPC,BOCHS

四、实验步骤及截图

1、下载实验目录中的linux000文件(boot.s,head.s,makefile)

2、根据前面实验的方法,在virtualPC的linux7.1环境中编译,用生成的image制作一个引导软盘镜像。

3、用该软盘镜像引导系统,观察结果。(AB交替循环出现)

4、在bochs中观察任务切换时cpu的各个寄存器的变化。

5、根据观察试着阐述linux000中,gdt,ldt,idt中的描述符都有哪些,作用如何,本例中任务调用的方式有哪些

进一步思考题:试着修改head.s,增加一个任务,并让三个任务进行轮流

切换。

(1)增加任务2 的TSS和LDT的选择符

TSS2_SEL = 0x40

LDT2_SEL = 0x48

(2)修改中断处理

timer_interrupt:

push %ds

pushl %eax

movl $0x10, %eax

mov %ax, %ds

movb $0x20, %al

outb %al, $0x20

movl $1, %eax

cmpl %eax, current

je 1f # 当前为任务1,则跳转为任务0

jl 3f # 当前为任务0,则跳转为任务2 movl %eax, current

ljmp $TSS1_SEL, $0

jmp 2f # 当前为任务2,则跳转为任务1 1: movl $0, current

ljmp $TSS0_SEL, $0

jmp 2f

3: movl $2, current

ljmp $TSS2_SEL, $0

2: popl %eax

pop %ds

iret

(3)任务2的ldt和tss段

ldt2: .quad 0x0000000000000000

.quad 0x00c0fa00000003ff # 0x0f, base = 0x00000

.quad 0x00c0f200000003ff # 0x17

tss2: .long 0 /* back link */

.long krn_stk2, 0x10 /* esp0, ss0 */

.long 0, 0, 0, 0, 0 /* esp1, ss1, esp2, ss2, cr3 */

.long task2, 0x200 /* eip, eflags */

.long 0, 0, 0, 0 /* eax, ecx, edx, ebx */

.long usr_stk2, 0, 0, 0 /* esp, ebp, esi, edi */

.long 0x17,0x0f,0x17,0x17,0x17,0x17 /* es, cs, ss, ds, fs, gs */

.long LDT2_SEL, 0x8000000 /* ldt, trace bitmap */

.fill 128,4,0

krn_stk2:

linux实验报告

实验一 实验名称:Linux 基本命令的使用 实验时间:2学时 实验目的:熟练使用Linux字符界面、窗口系统的常用命令。 实验内容 (一)Linux操作基础 1.重新启动linux或关机(poweroff,shutdown,reboot,init 0,init 6) 2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal) ①uname:查看系统与内核相关信息 uname -asrmpi 参数: -a :所有系统相关的信息; -s: 系统内核名称; -r: 内核的版本; -m:本系统的硬件名称,如i686或x86_64; -p: CPU的类型,与-m类似,只是显示的是CPU的类型; -i :硬件的平台(ix86). ②date:显示日期的命令 ③cal:显示日历 单独cal:列出当前月份的日历 cal 2014:列出2014年的日历 cal 5 2014:列出2014年五月的目录 3.使用帮助命令(man,help) ①man:是manual(操作说明)的简写,是在线帮助系统 man后跟某个命令就会详细说明此命令,例如:man man就会详细说明man 这个命令的用法; ②help:也是帮助命令,一般会在命令后,例如:cd --help 就会列出cd命令的使用说明。 4.查看当前登陆用户列表(who),显示当前用户(whoami) ①who:显示目前已登录在系统上面的用户信息; ②whoami:查询当前系统账户 5.建立一个新用户mytest,设定密码(useradd,passwd) ①useradd mytest(建立新用户mytest);

LINUX实验报告

实验报告 ( 2014/ 2015 学年第一学期) 课程名称操作系统A 实验名称文件系统 实验时间2014 年12 月8 日指导单位计算机学院计算机科学与技术系 指导教师徐鹤 学生姓名王生荣班级学号B12040809 学院(系) 计算机学院专业软件工程

实验名称文件系统指导教师徐鹤 实验类型设计实验学时 2 实验时间2014.12.08 一、实验目的和要求 1. 学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。 2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。 3.实现一个文本文件的某信息的插入和删除 4.实现一个记录文件的某记录的插入和删除 二、实验环境(实验设备) Windows XP + VMWare + RedHat Linux 8

三、实验过程描述与结果分析 1. 目录/proc下与系统相关的文件和目录 (1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。 例如:#ls /proc/851/fd 0 1 2 255 这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。 (2)/proc/filesystems:该文件记录了可用的文件系统类型。 (3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat /proc/mount (4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps 2.常用命令讲解 ls 命令 用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ ls -liah * 22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile

浙江大学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机,Linux Redhat Fedora Core6操作系统 四、实验步骤与操作指导 任务1.学习emacs的使用,要求能新建、编辑、保存一个文本文件 (1)启动emacs (2)输入以下C程序 (3)保存文件为kk.c (4)用emacs打开文件kk.c (5)修改程序 (6)另存为文件aa.txt并退出。 任务2.vi或vim的使用,要求能新建、编辑、保存一个文本文件 (1)点击”应用程序”→ “附件”→“终端”,打开终端,在终端输入命令: [root@localhost root]#vi kk.c 按i键,进入插入状态。 (2)输入以下C程序 #include int main( ) {

printf(“Hello world!\n”); return 0; } 此时可以用Backspace、→、←、↑、↓键编辑文本。 (3)保存文件为kk.c 按Esc键,进入最后行状态,在最后行状态输入:wq保存文件,退出vi。 (4)用vi打开文件kk.c,输入命令: [root@localhost root]#vi kk.c (5)修改程序为: #include int main( ) { printf(" Hello world!\n"); printf("*****************\n"); return 0; } (6)按Esc键,进入最后行状态,在最后行状态输入:wq aa.txt保存文件,如图1所示,另存为文件aa.txt并退出vi。。 图1 程序编辑环境 任务3.gedit的使用,要求能新建、编辑、保存一个文本文件 (1)启动gedit,点击”应用程序”→ “附件”→“文本编辑器”,打开文本编辑器,如图所示。

2《Linux基础》实验报告 基本配置Linux

实验序号: 2 《Linux基础》 实验报告 实验名称:基本配置Linux操作系统 姓名: 学院:计算机学院 专业: 班级: 学号: 指导教师: 实验地址:N6-113 实验日期:2017.3.7

说明 一.排版要求 1.实验报告“文件名”按模板要求填写。 2.一级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,四号字体,加粗。 3.二级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,小四号字体,加粗。 4.三级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,五号字体。 5.正文:每段缩进量:2个汉字。两端对齐;汉字用宋体,阿拉伯数字用 Times New Roman字体,五号字体。 6.图形要求 (1)在正文中要有引用。 (2)要有图名,图名位于图的下方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)图和图名“居中”。 7.表格要求 (1)在正文中要有引用。 (2)要有表名,表名位于表的上方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)表和表名“居中”。 二.注意事项 1.复制、拷贝、抄袭者取消成绩。 2.没有安实验报告排版要求者不及格。

实验2基本配置Linux操作系统实验 【实验目的】 1.。。。。 2.。。。。 3.。。。。 4.思考: (1)Linux默认的系统超级管理员帐户是什么? (2)Linux的操作系统引导器是什么?它有哪几种的操作界面? (3)RHEL的支持哪几种X-Window图形管理器?默认是使用哪一种?(4)RHEL支持哪几种Shell?默认是使用哪一种? 【实验原理】 1.。。。 。。。 2.。。。 。。。 (1)。。。 。。。 (2)。。。 。。。 3.。。 【实验环境】 1.实验配置 本实验所需的软硬件配置如表1所示。 表1 实验配置 本实验的环境如图1所示。

linux操作系统实验报告要点

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年05月16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的内容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。 4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

操作系统-Linux课程实验报告材料

实验1.1、1.2 Linux Ubuntu的安装、创建新的虚拟机VMWare

实验1.3 Shell编程 1.实验目的与内容 通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。 编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。 2.程序源代码清单 #include #include int main(){ printf("Hello Linux\n"); int pid; int state; int pfd[2]; pipe(pfd); if (fork()==0){ printf("In the grep progress\n"); dup2(pfd[0],0); close(pfd[0]); close(pfd[1]); execlp("grep","grep","sh",0); perror("exelp grep error");

} esle if(fork()==0){ printf("In the ps progress\n"); dup2(pfd[1],1); close(pfd[0]); close(pfd[1]); execlp("ps","ps","-ef",0); perror("execlp ps -ef"); } close(pfd[1]); close(pfd[0]); wait(&state); wait(&state); } 实验2.3 内核模块 实验步骤: (1).编写内核模块 文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产生/proc/clock被读时的动作。(2).编译内核模块Makefile文件 # Makefile under 2.6.25

Linux文件系统实验报告

黄冈师学院 提高型实验报告 实验课题文件系统的设计与实现(实验类型:□综合性 设计性□应用性) 实验课程操作系统原理 实验时间2015-2016 第二学期 学生何正发 专业班级软件工程1401 学号07

成绩: 一、实验目的和要求 1、熟悉操作系统设计的过程,巩固操作系统的基本知识,加深对操作原理、功能及各种不同的存储管理方法理解与应用; 2、学会运用各种语言、软件开发新软件的基本方法; 3、增强实际应用能力和动手操作能力。 二、实验条件 Win7 /Windows 8.1/Linux等操作系统,装有java、C、C++、C#等语言工具的环境。 三、实验原理分析 可以选择最佳适应算法,按照从小到大的次序组成空闲区自由链,当用户作业或进程申请一个空闲区时,存储管理 程序从表头开始查找,当找到第一个満足要求的空闲区时,停止查找。如果该空闲区大于请求表中的请求长 度,将减去请求长度后的剩余空闲区部分留在可用表中。回收时,从作链中删去要回收的作业块,同时在空 闲链中插入该作业大小的空闲区,并按顺序排列 四、实验方案或步骤 1、应用环境、需求分析 本模拟系统主要针对文件的管理和操作名主要有:创建用户、文件、文件夹,读文件,写文件,执行文件,关闭文件,删除用户、文件夹、文件的功能。 创建用户、文件、文件夹:在对系统发出操作命令之前必须先登录用户,然而登录之前必须创建该用户。在创建完后,可通过登录用户来创建文件和文件夹。在创建文件时可设置文件的属性和输入文件的容。 读文件:读取任何已创建的只读或读写文件的容;如果所要读的文件不是可读文件时,系统会显示该文件不可读;如果所读文件不存在,系统会显示文件不存在。 写文件用户可写或重写读写文件中的容,并保存文件中的重写容,以供下次读取;当所要写的文件不是可写的文件时,系统会显示该文件不可写;当所要写的文件并不存在时,系统会显示该文件不存在。

Linux常用命令实验报告

实验二 姓名:陈辉龙学号:201407010201 班级:14计科(1)一.实验目的: 掌握Linux常见命令,为今后的实验打下良好的基础。 二.实验内容 1.新建用户为chenhuilong,配置密码为passwd: 2.切换到chenhuilong用户,并在/home/chenhuilong目录下新建文件夹dir: 3.在文件夹dir下新建文件hello(内容为"printf hello world!"),并将其拷贝至/home/user目录: 4.统计/home/user目录下文件的个数,包括子目录里的首字符为-的普通文件:

5.统计/home下目录的个数,包括子目录里的目录: 6.显示/home/user目录下名为hello的文件的行数、字数以及字符数(使用输入重定向): 7.将上步的结果输出重定向到名为cnt_hello的文件: 8.删除/home/user目录下的hello文件: 9.进入/home/user/dir文件夹,将hello文件属性变为-rwxrw-r--(使用符号标记方式),并为hello文件在/home/user目录下建立软链接,链接文件名为link_hello:

10.查看/home/user/dir/hello文件的详细信息: 11.切换至根目录下查找hello文件: 12.打包home/user/dir/hello文件,并进行压缩,然后再进行解压缩解包: 13.退出user用户,删除/home/user文件夹:

14.将文件夹/home的所有者改为user用户,并删除user用户: 三.实验总结: 本实验旨在熟悉Unix的常用命令,实验较简单,操作起来还算顺利,做了一遍感觉还不是很熟悉,因此做了两遍,第二遍就很得心顺手。通过这次实验,熟悉了一些常用的命令操作,为以后的学习打下坚实的基础,提高自己的动手能力。

linux应用程序开发实验报告3

实验报告 学生姓名:白迪学生学号:222014********* 日期:2016年11月15日与11月29日 院(系):计算机与信息科学学院软件学院专业(班级):网络工程实验题目:终端驱动属性编程及利用属性特性的应用程序编程 一. 实验目的 掌握终端驱动属性的特殊功能,掌握终端驱动属性的显示与修改方法编程,掌握利用终端驱动属性的特属性编写需要特殊功能的应用程序技巧。 二. 实验原理 三. 实验器材 安装有Windows操作系统PC机一台,实验环境为LINUX虚拟机(包含gcc 与gdb). 四. 实验分析与设计 补全终端设备属性位与控制字符的信息输出: Main函数

Flags的补充 显示flags函数

Setecho函数,设置echo的状态位Echostate函数。显示echo状态 Setecho函数

忽略特殊的一些按键,CTRL+C、CTRL+\,不能一直阻塞等待键盘输入,设置等待一定的时间的非阻塞。 预处理 Main函数 Tty—mode set_nodelay_mode()//没阻塞 set_nobuf_noecho_mode()//没回显,没缓冲

Getresponse() 中断处理函数 五. 实验结果 属性位与控制字符的信息输出

stty控制字符的修改功能,setecho 忽略特殊的一些按键,CTRL+C、CTRL+\,不能一直阻塞等待键盘输入,设置等待一定的时间的非阻塞。当按下的键不是y或者n就显示f。 六. 实验心得 通过本次试验中对终端文件更加的了解了,还学会了对中断文件的一些基本的设置,前面的实验做起来就是一些验证比较简单,但是收获很大,最后一个做的时候先看过书后,自己编写的,调试过程中总是出错,做到最后跟书上的代码比较发现自己的代码跟书上比差了好远,修改了很多,自己用的是Redhat5,cc—

实验一 Linux基本操作实验报告

实验一Linux基本操作 一.实验目的: 1. 二.实验环境: 虚拟机+Red Hat Enterprise Server 5.0 三.实验内容: 根据以下的文字提示,调用相应的命令来完成,记录相应的运行结果。一)用户和组基本操作 1.添加一个user01用户,家目录为/home/sub2,并设置密码 2.添加一个group1 组 3.将user01用户添加到group1组中 4.修改group1组名称为group2 5.修改user01的家目录为/home/user01 6.判断/etc/password这个目录是否包含user01这个用户 7.修改user01的shell为/bin/tcsh 8.添加一个group3组,把user01和root用户都添加到该组

https://www.360docs.net/doc/7616484376.html,er01用户从group2组切换到group3组 10.设置user01的密码在2012-5-20过期 11.把/home/user01目录所属的组修改为group3 12.删除user01帐号 13.查看内核版本号 二)进程管理 1.运行cat命令:vi test,输入若干字符如this is a example,挂起vi进程 2.显示当前所有作业 3.将vi进程调度到前台运行

4.将vi进程调度到后台并分别用kill/pkill/killall命令结束该该进程。 三)磁盘管理 1.通过fdisk 将为硬盘增加一个分区(主分区或者逻辑分区)。 2.并格式化ext3系统,

3.检测分区是否有坏道 4.检测分区的完整性 5.加载分区到/mnt目录(或者其他分区)下,并拷贝一些文件到该目录下 6.(选做)为test用户设置磁盘配额(软限制和硬限制参数自行设定) 7.退出/mnt目录后卸载该分区 8.用du查看/usr目录的大小

linux编程实验报告

linux编程实验报告 篇一:Linux程序设计实验报告 《Linux程序设计》 实验报告 安徽工业大学计算机学院 XX年6月 1 实验一 Linux基本 命令的使用 1、实验目的 学习和掌握Linux的基本命令。 2、实验内容和步骤 步骤1:以user_login用户身份并使用telnet登录Linux服务器,按照提示创建自己的账户和口令。 步骤 2:使用新创建的用户账户和口令登录Linux系统,察看登录后的界面。 步骤3:使用pwd命令察看当前的工作目录,然后用ls 命令查看当前目录下的内容,尝试使用-a,-l,-F,-A,-lF等不同选项并比较不同之处。 步骤4:在当前目录下建立一个名为test的新目录,然后将工作目录切换到test下,尝试将/etc目录下的文件passwd拷贝到该目录下(cp 源文件目的目录)。察看当前目录下的passwd文件的属主和文件权限。

2 步骤5:尝试向当前目录下的passwd文件和/etc/passwd 文件分别写入一些新内容(可使用echo “字符串” >>文件的命令),看看操作能否成功,如果不能成功,请说明原因。用cat命令浏览文件password的内容,用more命令进行浏览翻页操作,再用less命令浏览文件的内容。比较这几个命令的不同之处 步骤6:用ls命令查看test下文件的权限,用mv命令更改文件password的文件名为test.txt,尝试用chown和chgrp更改文件的属主为root、组为root,看看能否成功,不成功,请说明原因。尝试用chomd将文件权限为“-rw-------”。看看能否成功,不成功,请说明原因。 3 步骤7:用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。(想一想有没有一条命令将目录及目录下的所有文件删除,写出这条命令) 步骤8:使用ps命令查看当前系统内的进程,并利用man命令获取ps命令的参数,写出获取当前终端进程执行情况的ps命令。 4 步骤9:使用df命令查看当前系统已安装的文件系统的空间使用情况,记录结果。

Linux实验报告_大三上

实验三普通文件和目录编程 1.编写程序mycp.c,实现从命令行读入文件的复制功能,用原始文件系统调用。 实验流程图: 判断输入main 函数参数个数 argc argc!=3 no Exit(0) fd1=Open(argv[1],O_RDONLY); fd2=open(argv[2],O_RDWR|O_CREA T); 1 read(fd1,buf,bufsize); write(fd2,buf,i); if(i!=bufsize) break;

实验程序代码: //mycp.c #include #include #include #include #define bufsize 5 int main(int argc,char * argv[]) { int fd1,fd2; int i; char buf[bufsize]; if(argc!=3) { printf("argument error\n"); exit(1); } fd1=open(argv[1],O_RDONL Y); if(fd1==-1) { printf("file %s can not opened\n",argv[1]); exit(1); } fd2=open(argv[2],O_RDWR|O_CREAT); if(fd2==-1) { printf("Can not open file %s\n",argv[2]); exit(1); } while(1) { i=read(fd1,buf,bufsize); write(fd2,buf,i); if(i!=bufsize) break; }

Linux实验报告

Linux实验 一、实验目的 1. 了解Linux基本使用方法; 2. 掌握Linux基本设置方式; 3. 掌握Linux基本操作命令使用。 二、内容要求 1. 了解进程管理、文件管理与内存管理 2.掌握系统设置文件与命令 3. 熟练使用系统操作与维护命令 4. 熟练使用系统操作与维护命令 三、实验原理 Linux 系统常用命令格式: command [option] [argument1] [argument2] ... 其中option以“-”开始,多个option可用一个“-”连起来,如 “ls-l -a”与“ls-la”的效果是一样的。根据命令的不同,参数 分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在 标准输出,而错误信息则显示在标准错误输出设备。可使用重定向功能对这 些设备进行重定向。如: ls –lh > a.txt 命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回 一个非零值(在shell中可用变量$?查看)。在shell script中可用此返 回值作为控制逻辑的一部分。 DSL命令操作: 帮助命令: man 获取相关命令的帮助信息 例如:man dir 可以获取关于dir的使用信息。 info 获取相关命令的详细使用方法 例如:info info 可以获取如何使用info的详细信息。 基本操作: echo 显示字符串 pwd 显示当前工作目录 ls 查看当前文件夹内容 ls -a 查看当前文件夹内容(包括隐藏项) ls -l 查看当前文件夹内容(详细) ls / 查看根目录内容 cd / 移动到根目录

pwd 显示当前工作目录 ls -al 查看根目录文件夹内容(详细情况并包括隐藏项) cd /home/dsl 回到“家”目录 pwd 显示当前工作目录 df -h 显示剩余磁盘空间,参数“-h”表示适合人读取(human readable) du -h 显示文件夹(及子文件夹)所占空间 mkdir fd0 在当前目录下创建目录fd0 touch a.txt 创建一个空文件a.txt ls / -lh > a.txt 利用重定向功能将根目录中的内容写入a.txt。 cat a.txt 显示a.txt内容 wc a.txt 显示a.txt的行数,字数与字节数 find / -name *conf 在根目录下(包括子目录)查找以conf结尾的文件 sudo mount /dev/fd0 fd0 将软盘镜像挂载到目录fd0上 cd fd0 进入软盘镜像所挂载的目录 ls -lh 查看软盘镜像中的文件 cd .. “..”表示进入上一层目录 gzip a.txt 使用gzip压缩a.txt ls -lh 查看当前文件夹 sudo cp a.txt.gz fd0/ 将a.txt复制到fd0目录下,即将其复制到软盘镜像中 sudo mv fd0/a.txt.gz ./ 将a.txt移动到当前目录下,“.”表示当前目录 sudo umount /dev/fd0 将软盘镜像卸载 ls fd0 显示fd0 目录内容 gzip -d a.txt.gz 解压缩a.txt.gz ls -lh 查看当前文件夹 权限管理: 假设当前处于/home/dsl 目录下,且有a.txt(文件)与fd0(目录),当前用户名为dsl。 sudo cat /etc/passwd 用户 sudo cat /etc/shadow 密码 sudo cat /etc/group 组 users 查看当前登录用户 sudo chmod -x fd0 更改文件夹权限 ls fd0 fd0不能被执行,则意味着无法打开! sudo chmod +x fd0 更改文件夹权限 ls fd0 fd0能被打开 sudo chown root fd0 更改目录fd0的所有者 ls -lh 注意看fd0目录的属性 sudo chown dsl:root fd0 更改目录fd0的所有者为dsl,所属组为root ls -lh 注意看fd0目录的属性 chmod a-r a.txt 现在a.txt不具有“读”权限,不能被读取

linux基础实验报告含代码

Linux基础实验

目录 实验一 (3) 实验二 (4) 实验三 (6) 实验四 (9) 实验五 (11) 实验六 (14) 实验七 (16)

实验一螺旋矩阵 一、实验目的 1.熟悉linux下c程序编写。 2.掌握Makefile编写方法。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写螺旋矩阵程序 2.编写Makefile文件 四、实验结果 五、实验心得 通过这次实验,我熟悉了linux下c语言程序的编写,掌握了vi的一些常用操作,学会了使用gcc命令和makefile文件两种方法编译程序。同时也使我熟悉了linux里常用命令的使 用,还有,学会了挂载U盘的方法,可以很方便的往linux里传送文件。 六、关键代码 Makefile 文件 CC=gcc EXEC=juzhen OBJS=juzhen.o all:$(EXEC) $(EXEC):$(OBJS) $(CC) -o $@ $(OBJS) clean: -rm -f $(EXEC) $(OBJS)

实验二添加、删除用户 一、实验目的 1.设计一个shell程序,分组批量添加用户。 2.再设计一个批量删除用户的shell程序。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写shell程序 2.修改文件权限 chmod +x addusers 3.运行脚本 四、实验结果 添加用户: 删除用户:

五、实验心得 通过本次实验,我了解了shell脚本编程的方法和其语法规则。掌握了使用shell脚本程序添加、删除用户的方法。需要注意的是:shell脚本直接用vi编写,要特别注意空格。 六、关键代码 添加用户: 删除用户:

Linux实验报告

Linux程序设计 实验报告 姓名:杨帆 班级:计1242 学号: 121842284 专业:计算机科学与技术指导老师:赵帼英

实验一 Linux系统安装与启动(选做实验) 一、实验目的(通过实践及查阅资料完成如下实验) 1.掌握虚拟机的配置过程。 2.掌握Linux系统的安装过程和简单配置方法。 3.掌握与Linux相关的多操作系统的安装方法。 4.掌握Linux系统的启动、关闭步骤。 5.了解Linux文件系统和目录结构。 二、实验内容 1.安装虚拟机软件(如VMware、Virtualbox)。 2.在虚拟机软件中安装Linux操作系统(如Fedora、Ubuntu、redhat等)。 3.配置Linux系统运行环境。 4.正确地启动、关闭系统。 三、实验步骤 1 .安装虚拟机软件(VMware Workstation 7.0) 。 2.在虚拟机软件中新建Linux虚拟机 2.1设置内存大小(建议大于256MB) 2.2设置虚拟硬盘大小(建议大于8GB) 2.3设置虚拟光驱(虚拟方式,镜像文件) 2.4设置网络连接模式(建议采用桥接方式) 2.5设置共享目录(建议英文目录名) 1.在Linux虚拟机中安装Linux操作系统(fedora10 )。 3.1选择安装界面 3.2检测安装截介质(建议跳过) 3.3安装过程中的语言、键盘选择 3.4磁盘分区(采用自动分区,总大小与2.2相匹配) 3.5引导程序选择(采用GRUB) 3.6注意事项(禁用SELinux) 2.通过相关命令实现对操作系统的登录、退出与关机 3.使用文件浏览器査看Linux操作系统目录结构

Linux实验报告

燕山大学 Linux技术上机实验指导

实验一Linux系统安装与简单配置 一、实验目的 1.掌握Linux系统安装的分区准备。 2.掌握Linux系统的安装步骤。 3.掌握Linux系统分区的挂载和卸载。 4.掌握Linux系统的启动和关闭操作。 二、实验内容 1.安装VMware虚拟机,设置光盘驱动器,为Linux系统安装做准备。2.在虚拟机下安装Linux操作系统(如Ubuntu桌面版本)。 3.配置Linux系统运行环境。 4.利用空闲分区创建新的Linux系统分区。 5.将新的Linux系统分区挂载到系统中;卸载新挂载的分区,重新挂载到目录树中的其他位置。 三、主要的实验步骤 1.制定安装系统的分区计划。 2.配置光驱引导镜像文件iso,启动系统,开始安装过程。 3.根据安装计划,对磁盘空间进行分区设置。 4.根据系统安装指导,完成Linux系统的安装过程。 5.安装成功后,退出系统,重新启动虚拟机,登陆Linux操作系统。6.对Linux系统进行配置,如网络设备等。 7.利用磁盘使用工具和mount,将新创建的Linux系统分区挂载到系统中。将新挂载的分区卸载,并重新挂载到目录树的其他位置。

实验二Linux常用命令使用 一、实验目的 1.掌握Linux一般命令格式。 2.掌握有关文件和目录操作的常用命令。 3.熟练使用man命令。 二、实验内容 1.熟悉cd、date、pwd、cal、who、echo、clear、passwd等常用命令。2.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。 3.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。 4.利用man命令显示date、echo等命令的手册页。 5.显示系统中的进程信息。 三、主要实验步骤 1.登陆进入系统,修改个人密码。 2.使用简单命令:date、cal、who、echo、clear等,了解Linux命令格式。

Linux操作系统实验实验报告

实验1:安装Linux系统 【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用环境的过程。 【实验内容】: 1、首先在windows系统中安装虚拟机。在网上找到VMware Worksttion Pro版 本,确定安装目录。一直下一步,不需要太多的说明。 2、 图为安装完成后的界面。 3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新的虚 拟机,

进行一些简单的虚拟机设置,设置了网络链接nat模式等等。 安装完成后的界面

实验2:Linux下c语言开发 【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编译,调试等等。 【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没有,于是需要安装gcc。在centos系统中可以使用比较简便的yum命令。在之前已经配置好了yum源。直接输入yum install gcc。回车自动安装程序和需要的依赖包。 因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。图为xshell中的截图。

安装完毕。然后使用vi或者vim编写hello.c 运行,在屏幕上打印出hello,world。

实验3:进程创建 【实验目的和要求】 1. 了解进程的概念及意义;2. 了解子进程和父进程 3. 掌握创建进程的方法。 【实验内容】 1. 子进程和父进程的创建; 2.编写附件中的程序实例 【实验步骤】一1、打开终端,输入命令gedit 1_fork.c,在1_fork.c 文件中输入1_fork.bmp 中的代码; 2、输入命令gcc 1_fork.c -o 1_fork,回车后显示无错误; 3、输入命令:./1_fork 运行程序。 二、1、打开终端,输入命令gedit 2_vfork.c,在2_vfork.c 文件中输入2_vfork.bmp 中的代码; 2、输入命令gcc 2_vfork.c -o 2_vfork,回车后显示无错误: 3、输入命令:./2_vfork 运行程序。 从上面可以看到两次的运行结果不一样。我们知道write 函数是不带缓存的。因为在fork 之前调用write,所以其数据写到标准输出一次。但是,标准I/O 库是带缓存的。如果标准输出连到终端设备,则它是行缓存的,否则它是全缓存的。当以交互方式运行该程序时,只得到printf 输出的行一次,其原因是标准输出缓存由新行符刷新。但是当将标准输出重新定向到一个文件时,却得到printf 输出行两次。其原因是,在fork 之前调用了printf 一次,当调用fork 时,该行数据仍在缓存中,然后在父进程数据空间复制到子进程中时,该缓存数据 也被复制到子进程中。于是那时父、子进程各自有了带该行内容的缓存。在exit 之前的第二个printf 将其数据添加到现存的缓存中。当每个进程终止时,缓存中的内容被写到相应文件中。

Linux实验报告(2)

Linux 实验报告姓名 黄芳恺 班级软件工程114 学号119074258 指导教师阮越

目录 实验一 Linux基本命令的使用 实验二简单Shell程序设计 实验三 Linux下简单C程序设计与文件操作实验四 Linux下进程操作与进程间通信 实验五 Linux线程的使用 实验六 Linux进程间的IPC 实验七 Linux下访问Mysql数据库 实验八 Linux下网络编程 练习题: grep、 bash、生产者消费者

实验一 Linux基本命令的使用 1、实验目的 学习和掌握 Linux 的基本命令。 2、实验内容和步骤 步骤 1:以user_login用户身份并使用telnet登录Linux服务器,按照提示创建自己的账户和口令。 步骤 2 :使用新创建的用户账户和口令登录Linux系统,察看登录后的界面。 步骤 3:使用 pwd 命令察看当前的工作目录,然后用ls命令查看当前目录下的内容,尝试使用 -a,-l,-F,-A,-lF等不同选项并比较不同之处。 -a do not ignore entries starting with -I, --ignore=PATTERN do not list implied entries matching shell PATTERN -l use a long listing format -F, --classify append indicator (one of */=>@|) to entries -A, --almost-all do not list implied . and .. -lF ignore file

Linux实验报告(2)

Linux实验报告 姓名黄芳恺_____________ 班级软件工程114 学号119074258 指导教师阮越

目录 实验一Linux基本命令的使用 实验二简单Shell程序设计实验三Linux下简单C程序设计与文件操作 实验四Linux下进程操作与进程间通信实验五Linux线程的使用 实验六Linux进程间的IPC 实验七Linux下访问Mysql数据库 实验八Linux下网络编程练习题:grep bash生产者消费者

实验一 Linux 基本命令的使用 1、 实验目的 学习和掌握Linux 的基本命令。 2、 实验内容和步骤 步骤1:以user_login 用户身份并使用tel net 登录Lin ux 服务器,按照提示创建自己的账 户和口令。 步骤2 :使用新创建的用户账户和口令登录 Linux 系统,察看登录后的界面。 [max@localhost Documents]f pwd /home/max/Documents [max@localhost Documents]f 步骤3:使用pwd 命令察看当前的工作目录,然后用 使用-a,-l,-F,-A,-IF 等不同选项并比较不同之处。 -a do no t ig nore en tries start ing with [max^localhost Documents]$ Is -a, ?.* VirtualBox Dropped Files -I, --ig nore=PATTERN do not list implied en tries matchi ng shell PATTERN -l use a long listi ng format [max@localhost Documents]f Is -I total 4 drwx -------- ? 3 max max 4096 Apr 27 16:45 VirtualBox Dropped Files appe nd in dicator (one of */=>@|) to en tries [max^localhost Desktop^ Is - F a.c c~ 台?out* firefox ?d 包gnoaedesktop* -A, --almost-all do not list implied . and .. [max@lacailhost Docjments]J Is -A VirtualBox Dropped Files -lF ignore file [maxglacBlhost Deskt 叩]$ Is -IF total 24 -rw- rw- r--. L max max 145 May 22 22:32 a. c -rw- rw- r- - * 1 max max 143 May 22 22:32 a. c- -rwx rwx r ■ x . 1 max max 6707 May 22 22:32 OUt* 1 rwx rwx rwx. 1 max max 39 Hay 18 19:07 firefox .desktop -> /u5r/share/applicatio ns/firefox. desktop -rwxrwxr^x. 1 max max 6333 Apr 27 22:40 eriindl■( iesktop* Is 命令查看当前目录下的内容,尝试 -F, --classify

linux编程SHELL编程实验报告

Linux编程课程设计报告题目: Linux Shell编程 专业 学号姓名 指导教师 日期

题目:Linux Shell编程 一、设计目的和任务 实验目的:1.熟悉Shell环境和Shell的执行 2.熟悉Shell的基本语法和语句 3.了解Shell程序的调试方法 实验内容:1.编写Shell程序 2.调试和执行Shell程序 二、设计原理 Linux是一种开放源码、能够免费使用及自由传播的类似于UNIX操作系统。它可运行于各种平台之上。因为它不但具有UNIX系统的良好性能(如稳定性、安全性),同由于其具有开源和免费的特点,也越来越广泛地应用于各种嵌入式系统中。 Shell是用户和Linux操作系统内核程序间的一个借口。Shell既是命令解释器,有事一种编程语言。作为命令解释器,Shell为用户使用Linux操作系统提供丰富的工具界面。若用户输入命令,Shell负责解释执行该命令并向用户返回结果。作为编程语言,它利用自身的语言结构将工具命令组合起来提供更复杂的功能。 三、实验环境和总体设计 一台 2.安装虚拟机版的Linux操作系统 四、详细设计步骤 1.打开vmware软件,启动Linux系统 2.用root用户名和密码登入系统中 3.将某目录下面所有的文件名后面加上所有者的名字,如的所有者为owner,修改后为a[owner].txt文件。 基本要求: ①使用方法为usage:程序名称目录名称 若没有“目录名称”参数,则修改当前目录下文件名称 ②对目录中的子目录不做变化。 ③ 给出实验结果。 五、结果测试与分析 1. 进入root模式创建2618文件夹和文件 2.编写shell程序

相关文档
最新文档