当前位置:文档之家› Linux实验报告

Linux实验报告

Linux实验报告
Linux实验报告

实验一熟悉Linux常用命令

一.实验目的:

1.掌握Linux下各类命令的使用方法;

2.熟悉Linux操作环境。

二.实验内容:

练习使用Linux常用命令。

三.实验操作:

1)获得命令帮助,分别演示一下help --help man info 命令的用法:

2)目录操作命令

(1)启动计算机,利用root用户登录到系统,查看提示符,区别#和$提示符。

(2)用pwd命令查看当前所在的目录。

(3)用ls命令列出此目录下的文件和目录,包括ls -a ;ls -l;ls -R等选项的使用。

(4)使用cd 装换目录命令,练习绝对路径和相对路径的使用。

(5) 进入/home目录下,创建目录test,进入test目录,在该目录下创建一个文件hello.C,创建一个目录toto,进入toto目录,创建子目录tata,创建文件 Test.c

(6)删除创建的hello.c,删除目录toto

(7)在/root下创建文件hello.c,拷贝该文件到/home/test下(如果test目录不存在自己创建),并命名文件为tt.c

(8)使用cat more less tail head显示文件的内容。只看/etc/passwd的前5行内容。只看/etc/passwd的后5行内容。

(9)管道的使用,cat hello.c | grep "hello",在hello.C文件中查找具有字符串"hello"的行.

(10)重定向的使用。符号 > >> 发现其不同的用法。

(11)压缩命令的使用。创建三个文件 1.Jpg 2.Jpg 3.Jpg,

把三个文件打包tar cvf hello.tar 1.Jpg 2.Jpg 3.jpg

压缩gzip hello.tar

将hello.tar拷贝到其他目录下解压缩:

gzip -d hello.tar.gz

解包hello.tar

tar -xvf hello.tar

(12)练习拷贝命令,重命名命令,查找命令的使用

(13)熟悉根文件系统下的目录

1)文件操作命令

(1)查找 /etc下的passwd这个文件。

(2)查找/home目录下的所有文件名中有profile的文件,其命名为

(3)在/home下面创建test目录,在test目录下创建目录a,在a目录下创建目录b,

在b目录中创建目录c.在目录c中创建d,用一个命令完成。

(4)创建一个软连接指向/usr/src的源代码,修改源文件,查看连接文件是否改变

2)用户管理与组管理

(1)建立帐号user01,查看/etc/passwd文件有没变化,并设置user01的密码为123456。

在查看/etc/shadow文件有无变化。

●查看/etc/group文件。

●新建一个组,组名为group01,在新建一个用户user02,并指定为group01

●把user02的组更改为user01,

●删除user01这个用户

●删除group01这个组

5)文件的权限属性

●查看/etc/passwd的权限,在查看/etc/shadow的权限。

●在/home下面新建afile文件,查看它的权限

●新建user02这个帐户,

●新建group02这个组,

●把afile的权限设置为对用户来说可读可写,对组来说可读,对其他用户

来说没有任何权限

●把afile文件的所有者更该为user02,所属组更改为group02,

五、思考题:

1.如何查看隐含文件列表?

ls -a 列出当前目录中的所有文件和目录(所有以“.”为开始的文件和目录为隐藏文件),包括隐藏文件和目录但不是查看文件里面的内容,查看文件的里的内容用的是more,less,cat等命令

2.如何将一个目录中所有文件拷贝到另一个目录中,包括不显示任何提示信息?

cp -r(R也可以)当前目录. 目标目录

-R -r 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理

后面的用 '.' 而不是用 '*'

3.如何删除一个目录包括其中所有文件,并且不显示任何提示信息?

rm -rf 目录名字

-r 就是向下递归,不管有多少级目录,一并删除

-f 就是直接强行删除,不作任何提示的意思

4.什么是绝对路径?什么是相对路径?如何表示?

在Linux中,绝对路径是从/(也被称为根目录)开始的,比如/usr如果一个路径是从/开始的,它一定是绝对路径,相对路径是以 . 或 ..开始的,.表示用户当前操作所处的位置,而..表示上级目录;在路径中,.表示用户当前所处的目录,而..指上级目录。cd .表示当前目录,cd..表示上一级目录。

实验二Linux下程序设计基础

一. 实验目的:

1.掌握Linux下常用编辑器的使用;

2.掌握linux下程序的编译/调试方法。

二.实验内容:

练习linux下的 c语言程序设计,熟练使用vim编辑器编辑文件。学会gcc编译器的使用及常用的编译选项。能够使用gdb调试器进行调试程序。

三、实验操作:

1.Vi 编辑器的使用

1)vi 编辑器的启动

在控制台下输入

$ vi

$ vi 文件名

即可启动vi 编辑器。如果文件是一个新文件,就会在屏幕底部现实一个信息,说明用户正在创建新文件。

2)Vi编辑进入插入模式

3)Vi的保存与退出(末行模式下常用命令)

4)命令模式下常用的命令

命令含义

x 删除光标所指向的当前字符

nx 删除光标所指向的前n 个字符

dd 删除光标所在行,并去除空隙

ndd 删除n 行内容,并去除空隙

小写字母p 将缓冲区的内容粘贴到光标的后面

大写字母P 将缓冲区的内容粘贴到光标的前面

yy 复制当前行到内存缓冲区

nyy 复制n 行内容到内存缓冲区

u 撤消前一条命令的结果

练习要求:

用vi编辑器编写一段文字,然后用上述命令进行操作,最后保存退出。

2.Gcc编译器的使用

1)用vi编辑器编写一个简单hello world程序,命名为hello.c,保存退出。

2)Gcc 编译该hello.c文件,要求生成hello可执行文件,并加入调试信息。

3)运行hello文件,查看实验结果。

Gcc下常用的命令选项:

-c 选项:告诉gcc仅把源程序编译为目标代码而并不做链接工作生成.o文件

-o选项:默认情况下,在gcc没有指定编译选项的情况下会在当前目录生成一个名为a.out 的可执行程序。

-g选项:在可执行文件中输出调试信息,通常是为调试器gdb所用

-Idir选项:指定库以及头文件搜索路径

-Ldir选项:指定在目录中需要搜索的库(动态库.so和静态库.a)

3.Gdb调试器的使用

进入gdb 调试环境

Gdb hello

然后用如下命令进行操作:

调试基本步骤:

?Gdb <可执行文件名> 进入程序调试环境

?Break设置断点

?Run运行程序

?Next 单步运行

四、思考题:

1.断点是否可以设置多个,自己试试看。如何清除所设断点?

可以,clear : 删除程序中所有的断点;clear 行号 : 删除这行的断点;clear 函数名 : 删除该函数的断点

2.如果要调试程序,编译时有和要求?

为了使用gdb进行程序调试,需要在编译程序时加入供gdb使用的调试信息。方法是在编译程序时使用 - g 参数。

gcc -g -o [a.debug] a.c

实验三Linux下进程间管道通信

一. 实验目的:

1.掌握Linux下有名管道和无名管道通信的原理;

2.掌握Linux下进程创建、撤销的方法。

二.实验内容:

(1)编写程序,创建一个进程,通过无名管道实现父子进程之间的通信。

(2)创建一个有名管道,实现任意两个进程之间的通信。

三.实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。

四、实验原理

1.无名管道

无名管道只能实现父子进程或具有亲缘关系的进程间的通信,系统调用为:

int pipe(int pipe[2]),参数是2个元素的int型数组,pipe[0]是读取管道的文件标识符,pipe[1]是写入管道的文件标识符。所使用的头文件 #include

使用时先建立管道再建立子进程的顺序不能变。若不然,先建立子进程,再建立管道,管道只对建立它的进程可见,对另一个进程是看不见的,因此无法实现父子间

的通信。

2.有名管道

有名管道可以实现任意两个进程间的通信,不局限于具有亲缘关系的进程。系统调用为:int mkfifo(const char *path,mode_t mode),

path:要使用的命名管道的路径和名字

mode指明管道的访问权限(O_RDONLY,O_WRONLY,O_RDWR)

所使用的头文件:#include #include

五.有名管道的创建

#define FIFO "/tmp/myfifo"

mkfifo(FIFO,O_CREA T|O_EXCL)

六、实验要求

(1)用无名管道实现父进程和子进程之间的信息传送,父进程发送一段信息,子进程从管道中读出信息并打印。

(2)有名管道实现同样的内容,一个进程发送信息,另外一个进程把信息读出并打印显示。

七、思考题

1.为什么无名管道只能在具有亲缘关系的进程间通信?

因为无名管道的应用是通过fork()的方式来创建一个子进程,返回进程标识符,然后子进程和父进程之间的管道就可以读写,所以说有亲缘关系的进程(父子进程)之间

2.管道与文件有什么样的区别?

管道分为无名管道和有名管道,其中无名管道不属于任何文件系统,只存在于内存中,可以把它看作一种特殊的文件,通过使用普通文件的read(),write()函数对管道进行操作,

有名管道是有名有形的,为了使用这种管道,LINUX中设立了一个专门的特殊文件系统--管道文件,它存在于文件系统中,任何进程可以在任何时候通过有名管道的路径和文件名来访问管道。

实验四IPC进程间共享内存通信

一.实验目的:

1.掌握Linux下进程间使用共享内存进行通信的基本原理;

2.掌握共享内存的使用方法。

二.实验内容:

1.创建一块共享内存,然后使用该共享内存实现两个进程之间的通信。

三.实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。

四.实验原理

1.Linux采用内存映射技术把共享内存区域映射到有关进程的虚拟内存空间,使他成为进程虚拟内存的一部分,从而进程可以对这部分虚拟内存区域进行读写。

错误!未找到引用源。

对共享内存的基本操作包括:

进程与共享内存的结合;共享内存映射到进程虚拟区域的过程

进程与虚拟内存的分离;当使用共享内存完成数据交换后需要释放相关的虚拟内存区域,即脱离与共享内存的的联系。

主要系统调用

(1)int shmget(key_t key,int size,int shmflg)//创建共享内存

(2)shmctl(int shmid,int cmd,struct shmid_ds *buf)//共享内存的控制

(3)int shmat(int shmid,char*shmaddr,int shmflg) //共享内存映射到进程虚拟区

(4)int shmdt(char*shmaddr)//进程与虚拟内存的分离

五、实验要求

用共享内存实现2个进程之间的通信,一个进程向共享内存发送一段信息,另外一个进程读共享内存并把信息打印显示。

六.思考题

1.共享内存通信相比其它通信方式有没有优势?

共享内存通信方式允许两个不相关的进程能够访问处理同一块内存区域。从而达到进程间数据的交换和处理等。在这些进行通信方式中,共享内存是一种非常高效的通信方式,一种最快的通信方式。.用在任何进程,不比考虑进程关系,可以随机读取所需要的数据。

实验五IPC信号量使用

一、实验目的:

1.学习在LINUX 下信号量的使用方法。

2.学习使用信号量实现进程间互斥操作的原理。

二.实验内容:

在PC机上编写程序,实现2个进程间的互斥操作。

三.实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。

四、实验原理

信号量机制用于进程同步与互斥。某种资源的信号量代表该资源的数量,可以限制一种资源同时被多少个地方访问。一个进程如果申请信号量失败,说明那个资源在其他地方被使用,需要等待,于是这个进程会被挂起,等资源释放了再继续。

(1)在Linux下使用信号量的步骤:

1) 创建信号量集合

2) 初始化信号量的个数,即设置每种信号量有多少个。

3) 申请获得某个信号量

4) 释放以获得的某个信号量

(2)系统调用

1) 创建信号量集合:int semget(key_t key, int nsems, int flag)

a) key是用来生成信号量标识的整数,使用IPC_PRIVATE可以由系统自动选择。

b) nsems是信号量集合中有多少种信号量。创建两种信号量并不需要调用这个函数两次,只要设置nsems就可以一次创建多种信号量。

c) flag是信号量访问权限,用S_IRWXU设为可读写

2) 初始化信号量个数:int semctl(int semid, int semnum, int cmd, union semun arg)

a) semid是信号量集合标识,由semget()产生

b) semnum用来指定要访问信号量集合中的哪个信号量,第一个信号量编号为0,其余递增。

c) cmd是执行的操作,有很多种,这里用SETVAL,设置信号量个数。

d) arg是输入信息,新的信号量个数写在里面。arg是一个需要自己定义的联合体,结构如下:

union semun

{

int val; //要把信号量设置为多少

struct semid_ds *buf; //一个系统定义的结构体,本例中不用理会

ushort *array; //用于一次设置多个信号量,本例不用理会

}

3)申请获得某个信号量:int semop(int semid, struct sembuf semoparray[], size_t nops)

a) semid是信号量集合标识,由semget()产生

b) semoparray[]是一个结构体数组,由这个数组指定要操作那个信号量,是申请还是释放,申请多少或释放多少,如果申请不到的话是略过还是等待。sembuf结构体定义如下:

struct sembuf{

ushort sem_num; //选择要操作集合中的哪个信号量,编号从0开始

short sem_op; //+n表示归还n个信号量,-n表示申请n个信号量

short sem_flg; //失败处理,IPC_NOWAIT表示略过,SEM_UNDO表示等待

}

c) nops指定取semoparray[]中前多少个数据来进行操作。

4)释放某个信号量:int semop(int semid, struct sembuf semoparray[], size_t nops)。和申请相同,不过在结构体的sem_op中指定正数。

(3)主要头文件

五、实验要求

自己写一个程序,练习信号量的使用。

六、思考题

1.信号量实现进程间互斥的原理是什么?

PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:

P(S):①将信号量S的值减1,即S = S - 1;

②如果s >= 0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。 V(S):①将信号量S的值加1,即S = S + 1;

②如果S > 0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。

实验八设备驱动程序

一、实验目的:

1.学习在LINUX 下进行驱动设计的原理。

2.掌握使用模块方式进行驱动开发调试的过程。

二、实验内容:

在PC 机上编写简单的虚拟硬件驱动程序并进行调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。

三、实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。

四、实验原理

1.驱动程序与应用程序的区别

应用程序一般有一个main 函数,从头到尾执行一个任务;驱动程序却不同,它没有main 函数,通过使用宏init_module(); 将初始化函数加入内核全局初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止等待被应用软件调用。驱动程序中有一个宏cleanup_module()注册退出处理函数。它在驱动退出时被调用。

2.主设备号和次设备号

传统方式中的设备管理中,除了设备类型外,内核还需要一对称作主次设备号的参数,才能唯一标识一个设备。主设备号相同的设备使用相同的驱动程序,次设备号用于区分具体设备的实例。比如PC 机中的IDE 设备,一般主设备号使用3,WINDOWS 下进行的分区,一般将主分区的次设备号为1,扩展分区的次设备号为2、3、4,逻辑分区使用5、6….。设备操作宏MAJOR()和MINOR()可分别用于获取主次设备号,宏MKDEV()用于将主设备号和次设备号合并为设备号,这些宏定义在include/linux/kdev_t.h 中。对于查看/dev 目录下的设备的主次设备号可以使用如下命令:

[/mnt/yaffs]ls /dev –l

3.设备驱动程序接口

通常所说的设备驱动程序接口是指结构file_operations{},它定义在

include/linux/fs.h 中。

4.模块的加载与卸载

加载模块:insmod test.O

卸载模块:rmmod test

显示已安装的模块:lsmod

五、实验要求

自己写一个简单的驱动程序,驱动程序中定义struct file_operations{}结构,在其中定义自己的接口,利用该驱动程序实现设备文件的写入与输出。写一个应用程序测试自己的驱动程序。

六、思考题

1. 驱动程序框架中要有哪几部分?

1驱动程序的注册和注销。

2设备的打开和释放。

3设备的读写操作。

4设备的控制操作。

5设备的中断和轮询处理。

2.模块方式与直接编译进内核有什么优缺点?

Linux提供了一种动态加载内核的机制,这种机制称为模块(Module),模块具有一下特点:

1、模块本身不被编译入内核映像,从而控制了内核的大小。

2、模块一旦被加载,它就和内核中的其它部分完全一样

模块直接加入进内核,只需要修改kconfig和makfile文件

实验九 Linux 下socket网络通信

一. 实验目的:

1.学习在LINUX 下进行网络通信的原理。

2.掌握基本的网络协议。

3.能够自己编写网络通信程序实现网络内主机的通信。

二.实验内容:

在PC 机上编写简单的一个网络程序,实现局域网内两台主机之间的通信。客户端向服务器端发送信息,服务器端接受信息并显示。

三.实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。

四.实验原理

1.套接字相关数据结构

struct sockaddr

{

sa_family_t sa_family;

char sa_data[14];

}

面向TCP/IP协议使用的套接字地址结构:

struct sockaddr_in

{

short int sin_family; /*套接字域*/

unsigned short int sin_port;/*端口号,网络直接顺序*/

struct in_addr sin_addr; /*Internet 地址,网络直接顺序*/

unsigned char sin_zero[8]; /*没用*/

}

五、实验要求

(1)实现两台主机之间的通信,一台主机作为服务器端,可以多台客户端主机与其通信。

(2)客户端发送信息,发送的内容从键盘输入,直接发送到服务器端显示。

客户端:

服务端:

六、思考题

1.使用TCP协议与使用udp协议有什么不同?

TCP(传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机

UDP(用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境

2.如何利用socket使用udp协议实现网络主机之间的通信?

UDP Server程序

1、编写UDP Server程序的步骤

(1)使用socket()来建立一个UDP socket,第二个参数为SOCK_DGRAM。

(2)初始化sockaddr_in结构的变量,并赋值。sockaddr_in结构定义:

struct sockaddr_in {

uint8_t sin_len;

sa_family_t sin_family;

in_port_t sin_port;

struct in_addr sin_addr;

char sin_zero[8];

};

这里使用“08”作为服务程序的端口,使用“INADDR_ANY”作为绑定的IP地址即任何主机上的地址。

(3)使用bind()把上面的socket和定义的IP地址和端口绑定。这里检查bind()是否执行成功,如果有错误就退出。这样可以防止服务程序重复运行的问题。

(4)进入无限循环程序,使用recvfrom()进入等待状态,直到接收到客户程序发送的数据,就处理收到的数据,并向客户程序发送反馈。这里是直接把收到的数据发回给客户程序。

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课程实验报告材料

实验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实验报告

实验报告 ( 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文件系统实验报告

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

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

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常用命令实验报告

实验二 姓名:陈辉龙学号: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课程综合训练实验报告 姓名:柳晓阳 班级:软件94班 学号:09161071

一.实验目的 熟练掌握Linux操作系统的使用,掌握Linux的各项系统管理功能,掌握Linux下各类网络服务的安装、配置以及使用,并能用shell脚本实现简单的管理任务。 二.实验内容 (1)准备工作:利用虚拟机安装Linux操作系统,要求对 /home目录单独分区,在系统中安装适当的软件包以备后续的实验需要,可关闭防火墙和SeLinux。完成安装后将/root中的anaconda-ks.cfg 文件的内容附到报告中。(5分) 实现过程:首先安装虚拟机VMware,然后在虚拟机里新建一个虚拟机,利用老师的光盘Fedora-10-i386-DVD.iso安装Linux操作系统,因为题目要求对/home目录单独分区,所以在安装时有个分区选项,默认是不打勾的,打勾后按下一步,会有个分区,在下拉列表框中选出/home,然后设置它的大小,默认是200mb的大小,我设置为5000mb。在安装的最后新建了一个非管理员用户gui,密码123456,用于平时的登录。 附:anaconda-ks.cfg文件的内容

关闭selinux需要修改/etc/selinux/config文件中的SELINUX="" 为disabled ,然后重启。Linux关闭防火墙用chkconfig iptables off 命令。

(2)题目1: 查看Linux系统磁盘空间的使用情况(给出显示结果)(3分) 在命令行新建几个用户,如tux,tom,lily等,给每个用户创建密码,测试各个用户是否创建成功。(2分) 并为/home分区创建磁盘配额,使得你所创建的每个用户的可用空间的软限制为100M,硬限制为150M,且每个用户可用的inodes的软限制为300,硬限制为400。试编写shell测试脚本验证你的磁盘配额设置。(10分) 实现过程:首先,查看Linux系统磁盘空间的使用情况用df这个命令。显示结果如下: 其次,新建几个用户和密码,所用的命令为useradd和passwd。比如说我们新建2个用户,一个为tux,密码为09161071;另一个为tom,密码为09161071。

实验一 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.doczj.com/doc/926890097.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实验报告_大三上

实验三普通文件和目录编程 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程序设计实验报告总结计划.docx

实验报告 课程名称:Linux程序设计 学院:信息科学与工程学院 专业:13计算机班级:2013-1姓名:学号: 2016年6月28日 山东科技大学教务处制 实验报告

组别姓名同组实验者 实验项目名称实验一熟悉linux命令实验日期教师评语第 12 周周四9,10 节 实验成绩指导教师廉文娟 1.登录和退出 Linux 系统 用户登录系统时为了使系统能够识别自己必须输入用户名和密码经系统验证无后 方能进入系统。用户登录分两步进行,第一步输入用户的登录名,系统根据该登录 名来识别用户,第二步输入用户的口令,该口令是用户自己选择的一个字符串对其 他用户是保密的,是在登录时系统用来辨别真假用户的关键字。 必须输入用户的账号,分为 1)root ——系统管理员账号,该账号可以进行任意操作。2)普通用户——拥有一定的权限 2.其他命令 三、实验内容 常用操作命令。 1、在 Linux 系统中打开终端,利用快捷键ctrl+alt+T,打开,结果如下: 2、退出: 不论是 root 用户还是普通用户,需要退出系统,在 shell 提示符下,键入 exit 命令 即可。 3、关机与重启: Linux 中提供了命令 shutdown,可以安全地关机或重启系统,该命令只能是超级用 户可以使用,命令格式: shutdown [ 选项 ][ 时间 ][ 警告信息 ] 其中警告信息是向其他用户发布的信息,时间指定关机或是重启的时间,选项的意 义如下: -h关机,关机前关闭相关进程,执行fsck 命令(文件系统的一致性检查) -r系统重新启动 -f快速关机,系统关机前不执行 fsck命令 -n快速关机,系统关机前不执行 init命令 -k不关机,只是将警告信息向其他用户发布 -c终止执行正在运行的 shutdown 命令 举例: 1.系统立即关机shutdown–h now 2.两分钟后重启系统,发布信息 System will be down in 2 minutes!给其他终端用户。 Shutdown – r +2“System will be down in 2 minutes!” 除了可以使用 shutdown 命令来关机和重启系统外, Linux 还有专门用于关机和重启系统的命令 poweroff 和 reboot ,reboot 用于重启系统(相当于 shutdown –r now),

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操作系统 实验学期 2015 至 2016 学年第二学期学生所在院部计算机学院 年级大三专业班级信管B132班 学生姓名学号 成绩评定: 1、工作量: A(),B(),C(),D(),F( ) 2、难易度: A(),B(),C(),D(),F( ) 3、答辩情况: 基本操作: A(),B(),C(),D(),F( ) 代码理解: A(),B(),C(),D(),F( ) 4、报告规范度: A(),B(),C(),D(),F( ) 5、学习态度: A(),B(),C(),D(),F( ) 总评成绩: 指导教师:兰芸 计算机系制

《Linux操作系统》课程综合性实验报告 开课实验室:基础七2016年6月29日

四、程序、调试步骤 1、根据实验内容建立需要的目录与文件 图1 /home/stu/abc目录 图2 x1文件的填写内容 图3 建立/home/stu/backup目录内的bak01.txt文件 图4 建立data文件 图5 显示backup目录下的内容 2、利用crontab –e编辑定时任务 图 6 编辑任务 3、shell程序 #!/bin/bash #usage:procfile files while true do echo -n "1:定时删除文件2:定时复制文件内容3:定时打包文件4:定时卸载U盘[1|2|3|4|q]:" read choice

case $choice in 1* ) crontab /home/stu/task1.cron;; 2* ) crontab /home/stu/task2.cron;; 3* ) crontab /home/stu/task3.cron;; 4* ) crontab /home/stu/task4.cron;; q* ) exit 0;; * ) echo Illegal Options;; esac done 程序说明:crontab执行任务命令格式:crontab [-u user] file 利用while do循环语句,让用户进行选择,分为1,2,3,4执行不同的语句。即若要执行第一个任务,则:crontab /home/stu/task1.cron,其他任务相同。 图7 shell 程序 五、指令执行前、后截图 首选使用root用户登录系统。 ①task1 定时删除文件 递归显示/home/stu目录下的文件。在/home/stu/abc下建立文件aa。 图8 建立aa 执行前: 图9 查看aa存储场所 执行后:abc内的子目录和子文件aa已被删除

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实验报告(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

相关主题
文本预览
相关文档 最新文档