文档库 最新最全的文档下载
当前位置:文档库 › linux操作系统实验三

linux操作系统实验三

linux操作系统实验三
linux操作系统实验三

实验三LINUX SHELL脚本程序设计

一、实验目的

通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。对SHELL程序流程控制、SHELL程序的运行方式、bash 程序的调试方法及bash的常用内部命令有进一步的认识和理解。通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。

二、实验环境

操作系统:任何Unix/Linux及Sun Solaris 或windows 系列

应用系统:SHELL 或windows环境下的cygwin模拟系统

三、实验内容

本实验包含三个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术。内容如下:

⑴创建以下菜单程序:

USER: **** HOST: ******** DATE: **/**/20**

A: 创建子目录并复制文件

B: 文件权限测试

C: 文件字符转换

D: 文件总数及文本行数统计

E: 文件查找

Q: 退出系统

———————————————————————————————

A:在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)。

测试目录确实存在后,将已存在的file1、file2两文件拷入其中并分别显示

两文件的内容。显示完成后将file1、file2两文件截断为大小为0的空文件。

B:测试当前用户对系统中某文件是否有r、w、x的权限,输出测试结果。

入新文件。判断上述操作成功后分别显示转换后的新文件的内容。

D:统计/dev目录下目录文件和符号链接文件的数目;统计系统中某文本文件中空行的行数;显示当前系统中所有环境变量。

E:在/dev目录下查找由s开头且文件名由5个字符组成的文件,找到后用file 命令显示其文件类型。

yxh@Cancer:~$ #!/bin/sh

yxh@Cancer:~$ MYDATE='2016-11-01'

yxh@Cancer:~$ THIS_HOST='yxh'

yxh@Cancer:~$ USER='yinxiaohang'

yxh@Cancer:~$ while :

> do

> tput clear

> cat <

>

---------------------------------------------------------------------

--------- User:$USER Host:$THIS_HOST Date:$MYDATE

---------------------------------------------------------------------

--------- A:创建子目录并复制文件

B:文件权限测试

C:文件字符转换

D:文件总数及文本行数统计

E:文件查找

Q:退出系统

------------------------------------------------------------------------------

> MAYDAY

> echo -e -n "\tYour Choice [A,B,C,D,E,Q] : "

> read CHOICE

> case $CHOICE in

> A|a)mkdir --mode=755 /home/yxh/test/yinxiaohang

> if test -d "/home/yxh/test/yinxiaohang"

> then cp file1 file2 /home/yxh/test/yinxiaohang

> cat file1

> cat file2

> :> /home/yxh/test/yinxiaohang/file1

> cat /home/yxh/test/yinxiaohang/file1

> :> /home/yxh/test/yinxiaohang/file2

> cat /home/yxh/test/yinxiaohang/file2

> else echo file1 is not a file name

> fi

> ;;

> B|b) if [ -f file1 ]

> then test -r file1 -a -w file1 -a -x file1

> ls -l file1

> else echo file1 do not rwx

> fi

> ;;

> C|c)tr 'a-z' 'A-Z' < file1 > 1

> tr 'a-z' 'A-Z' < file2 > 2

> if test -f 1 -a 2

> then cat 1

> cat 2

> else echo fail!

> fi

> ;;

> D|d)ls -l /dev

> ls -l /dev |grep ^d|wc -l

> ls -l /dev |grep ^l|wc -l

> cat 3

> cat 3|grep '^$'|wc -l

> env

> ;;

> E|e)find /dev -name "s[a-z][a-z][a-z][a-z]"

> find /dev -name "s[a-z][a-z][a-z][a-z]" >4

> var=$(cat 4)

> file -b ${var%%.*}

> ;;

> Q|q)exit 0

> ;;

> *)echo -e "\t\007unknown user reponse"

> ;;

> esac

> echo -e -n "\tHit the return key to continue"

> read DUMMY

> done

⑵文件pc.txt中保存了三个班级的学生选课成绩,试编写一段shell程序对

文件内容进行统计、计算后输出各个班级选课的学生人数及每班选课成绩的优秀率。

pc.txt文件内容如下:

student1:1301:75

Student2:1302:96

Student3:1303:99

Student4:1302:93

Student5:1303:23

Student6:1301:77

yxh@Cancer:~$ #!/bin/bash

yxh@Cancer:~$ PASS1=0;

yxh@Cancer:~$ PASS2=0;

yxh@Cancer:~$ PASS3=0;

yxh@Cancer:~$ NUMBER1=0;

yxh@Cancer:~$ NUMBER2=0;

yxh@Cancer:~$ NUMBER3=0;

yxh@Cancer:~$ SAVEDIFS=$IFS

yxh@Cancer:~$ IFS=:

yxh@Cancer:~$ while read NAME CLASS SCORE > do

> case $CLASS in

> 1301)

> NUMBER1=`expr $NUMBER1 + 1`

> if [ $SCORE -ge 90 ]

> then PASS1=`expr $PASS1 + 1`

> fi

> ;;

> 1302)

> NUMBER2=`expr $NUMBER2 + 1`

> if [ $SCORE -ge 90 ]

> then PASS2=`expr $PASS2 + 1`

> fi;;

> 1303)

> NUMBER3=`expr $NUMBER3 + 1`

> if [ $SCORE -ge 90 ]

> then PASS3=`expr $PASS3 + 1`

> fi

> ;;

> *)

> echo "FAIL !"

> ;;

> esac

> done < pc.txt

yxh@Cancer:~$ echo $PASS1

yxh@Cancer:~$ echo $PASS2

2

yxh@Cancer:~$ echo $PASS3

1

yxh@Cancer:~$ PASS1=$(echo "$PASS1/$NUMBER1+$PASS1%$NUMBER1*0.50"|bc|awk '{printf "%.2f",$0}') yxh@Cancer:~$ PASS2=$(echo "$PASS2/$NUMBER2+$PASS2%$NUMBER2*0.50"|bc|awk '{printf "%.2f",$0}') yxh@Cancer:~$ PASS3=$(echo "$PASS3/$NUMBER3+$PASS3%$NUMBER3*0.50"|bc|awk '{printf "%.2f",$0}') yxh@Cancer:~$ echo "1301 $NUMBER1 $PASS1"

1301 2 0.00

yxh@Cancer:~$ echo "1302 $NUMBER2 $PASS2"

1302 2 1.00

yxh@Cancer:~$ echo "1303 $NUMBER3 $PASS3"

1303 2 0.50

yxh@Cancer:~$ IFS=$SAVEDIFS

⑶认真学习、理解find和grep(家族)命令,编制两个个性化的文件搜索工具。

while :

> do

> tput clear

> cat <

>

> *********************************** A:按文件内容查找文件并显示其路径

B:按文件名查找文件并显示其路径

***********************************

> MAYDAY

> echo -e -n "\t请选择A OR B : "

> read CHOICE

> case $CHOICE in

> A)read -p "请输入字符串:" val

> find .|xargs grep -ri "$val" -l

> ;;

> B)read -p "请输入文件名:" val

> find . -name "*$val*"

> ;;

> *)echo -e "\t\007FAIL !"

> ;;

> esac

> echo -e -n "\tHit the return key to continue"

> read DUMMY

> done

LINUX操作系统实验报告

中国地质大学江城学院 LINUX操作系统实验报告 姓名 班级学号 指导教师冯春华 2012 年月日

实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替 换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/named.conf”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1、 2、 3、 4、 5、

实验二文件和目录操作命令 实验目的: 1、掌握LINUX下文件和目录的操作命令,如pwd、cd、ls、touch、mkdir、rmdir、cp、 mv、rm等。 2、掌握LINUX下建立链接文件的方法。 实验内容: 1、使用命令切换到/etc目录,并显示当前工作目录路径。 2、使用命令显示/root目录下所有文件目录的详细信息,包括隐藏文件。 3、使用命令创建空文件/root/ab,并将该文件的时间记录更改为8月8日8点8分。 4、使用命令创建具有默认权限为744的目录/root/ak,然后将/etc/named.conf文件复制到该目录中,最后将该目录及其目录下的文件一起删除。 5、统计文件/etc/named.conf的行数、字符数和单词数。 6、使用命令创建/root/a文件的硬链接文件/root/b和软链接文件/root/c。 实验步骤及结果:

Linux操作系统实验教程

Linux操作系统实验教程 第1章Linux系统概述 一、Linux系统结构 从操作系统的角度来分析Linux,它的体系结构总体上属于层次结构如下图所示: 从内到外包括三层:最内层是系统核心,中间是Shell、编译编辑实用程序、库函数等,最外层是用户程序,包括许多应用软件。 从操作系统的功能角度来看,它的核心有五大部分组成:进程管理、存储管理、文件管理、设备管理、网络管理。各子系统实现其主要功能,同时相互之间是合作、依赖的关系。进程会管理是操作系统最核心的内容,它控制了整个系统的进程调度和进程之间的通信,是整个系统合理高效运行的关键; 存储管理为其他子系统提供内存管理支持,同时其他子系统又为内存管理提供了实现支持,例如要通过文件管理和设备管理实现虚拟存储器和内外存的统一管理。 二、配置一个双引导系统 如果计算机中已经安装了其他操作系统,并想创建一个引导系统以便兼用Red Hat Linux和另外的操作系统,需要使用双引导。机器启动时,可以选择其中之一,但不能同时使用两者。每个操作系统都从自己的硬盘驱动器或硬盘分区中引导,并使用自己的硬盘驱动器或硬盘分区。 如果计算机上还没有安装任何操作系统,可以使用专门的分区及格式化软件给Windows创建指定大小的分区,Windows的文件系统为FAT,再为Linux系统创建所需要大小的分区(4G或更大),另外再给Linux留100MB 左右的交换分区,Linux的文件系统为ext2。然后就可以安装系统了。应首先安装Windows,然后再安装Red Hat Linux。如果只进行了分区而没有格式化各分区,在安装时可以使用Windows自带的格式化程序和Linux自带的格式化程序进行各自分区的格式化。 当Windows已经被安装,而且已为Linux准备了足够的磁盘空间,就可以安装Linux了。Red Hat Linux安装程序通常会检测到Windows并自动配置引导程序来引导Windows或Red Hat Linux。

Linux操作系统实验指导书

《Linux系统管理与维护》实验指导书 实验一初识Linux操作系统 一实验名称 初识Linux操作系统 二实验目的与要求 掌握Linux的启动、登录与注销。 三实验内容 1.以root用户和普通用户两种不同身份登录Linux,说出其登录后得差异。 2.图形模式下的注销、重启与关机。 3.学会在虚拟机上登录和注销Linux。 四操作步骤与结果分析 五问题与建议

实验二Linux的桌面应用 一实验名称 Linux的桌面应用 二实验目的与要求 熟悉Linux操作系统桌面环境 熟悉Linux文件系统及常用的操作 掌握Linux下使用外部存储设备、网络设备 掌握Linux下安装应用程序 三实验内容 1.查看GNOME提供的“应用程序”、“位置”或者“系统”菜单,运行其中的应用程 序和工具。 2.查看Linux文件目录结构,学会常用的文件目录操作,如复制、粘贴、移动、删 除、更名、创建文档、创建文件夹等。 3.练习在Linux下使用光盘和U盘。 4.学会网络配置,使计算机能够进行网络浏览等操作。 5.学会在Linux下安装新的应用软件。 四操作步骤与结果分析 五问题与建议

实验三Linux操作系统的安装 一实验名称 Linux操作系统的安装 二实验目的与要求 掌握安装Linux操作系统 三实验内容 1.通过学习《项目五Linux操作系统的安装及远程服务》的内容,学会如何安装Linux。 环境:windows 系统、vmware虚拟机、Redhat Linux镜像光盘。 通过安装向导将安装分为两步:1、基本安装,2、配置及具体安装。 在第一阶段重点如何分区,在第二阶段重点掌握如何设置密码及安装桌面环境。四操作步骤与结果分析 五问题与建议

Linux操作系统实验二

实验报告 2016 至2017 学年第二学期

1.crontab帮助信息 usage: crontab [-u user] file crontab [ -u user ] [ -i ] { -e | -l | -r } (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) -i (prompt before deleting user's crontab) 2.查看用户的计划任务列表 命令:crontal -l 如图,当前用户为cyril,还没有计划任务。 3.建立计划任务 命令:crontal –e 为当前用户建立计划任务,如果为其他用户建立计划任务需要使用-u参数指定。 执行命令后会打开一个由EDITOR变量指定的编辑器如vim,在其中写好计划任务保存后,终端回显:crontab: installing new crontab 编辑计划任务时,格式为: *****command 分时日月周命令 其中*/5 这样的格式表示“每5(分钟、小时…)”

这里我先写了一个脚本,用来在/tmp目录下创建文件,脚本内容如下: 然后创建计划任务来每隔一分钟运行这个脚本,如下图: 现在再查看一下任务列表:

查看脚本的执行情况: 如图,显示了7个由计划任务调用脚本创建的文件。20170424-16:48.txt 20170424-16:49.txt 20170424-16:50.txt 20170424-16:51.txt

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目录下的容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

操作系统实验5文件系统:Linux文件管理

实验5 文件系统:Linux文件管理 1.实验目的 (1)掌握Linux提供的文件系统调用的使用方法; (2)熟悉文件和目录操作的系统调用用户接口; (3)了解操作系统文件系统的工作原理和工作方式。 2.实验内容 (1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:*********** 0. 退出 1. 创建新文件 2. 写文件 3. 读文件 4. 复制文件 5. 修改文件权限 6. 查看文件权限 7. 创建子目录 8. 删除子目录 9. 改变当前目录到指定目录 10. 链接操作 *********** 代码: #include #include #include #include #include #include #include #include void menu(void); void openfile(void); void writefile(void); void readfile(void); void copyfile(void); void chmd(void); void ckqx(void); void cjml(void); void scml(void); void ggml(void); void ylj(void); int main() { int choose; int suliangjin=1;

menu(); scanf("%d",&choose); while(choose!=0) { switch(choose) { case 1:openfile();break; case 2:writefile();break; case 3:readfile();break; case 4:copyfile();break; case 5:chmd();break; case 6:ckqx();break; case 7:cjml();break; case 8:scml();break; case 9:ggml();break; case 10:ylj();break; } menu(); scanf("%d",&choose); } return 0; } void menu(void) { printf("文件系统\n"); printf("1.创建新文件\n"); printf("2.写文件\n"); printf("3.读文件\n"); printf("4.复制文件\n"); printf("5.修改文件权限\n"); printf("6.查看文件权限\n"); printf("7.创建子目录\n"); printf("8.删除子目录\n"); printf("9.改变目前目录到指定目录\n"); printf("10.链接操作\n"); printf("0.退出\n"); printf("请输入您的选择...\n"); } void openfile(void) { int fd; if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");

linux操作系统实验指导书第2周

第3周Linux文件与目录管理 一、实验内容 1.练习Linux文件和目录操作命令。 2.实验目的练习Linux文件权限和文件查找命令。 二、实验目的 1.掌握文件与目录管理命令 2.掌握文件内容查阅命令 3.了解文件与目录的默认权限与隐藏权限 4.掌握如何改变文件属性与权限 5.掌握命令与文件的查询方法 三、实验题目 1. 文件与目录管理 (1) 查看Ubuntu根目录下有哪些内容? (2) 进入/tmp目录,以自己的学号建一个目录,并进入该目录。 (3) 显示目前所在的目录。 (4) 在当前目录下,建立权限为741的目录test1,查看是否创建成功。 (5) 在目录test1下建立目录test2/teat3/test4。 (6) 进入test2,删除目录test3/test4。 (7) 将root用户家目录下的.bashrc复制到/tmp下,并更名为bashrc (8) 重复步骤6,要求在覆盖前询问是否覆盖。 (9) 复制目录/etc/下的内容到/tmp下。 (10) 在当前目录下建立文件aaa。 (11)查看该文件的权限、大小及时间 (12) 强制删除该文件。 (13) 将/tmp下的bashrc移到/tmp/test1/test2中。 (14) 将/test1目录及其下面包含的所有文件删除。 2. 文件内容查阅、权限与文件查找 (1) 使用cat命令加行号显示文件/etc/issue的内容。 (2) 反向显示/etc/issue中的内容。 (3) 用nl列出/etc/issue中的内容。

(4) 使用more命令查看文件/etc/man.config (5) 使用less命令前后翻看文件/etc/man.config中的内容 (6) 使用head命令查看文件/etc/man.config前20行 (7) 使用less命令查看文件/etc/man.config后5行 (8) 查看文件/etc/man.config前20行中后5行的内容 (9) 将/usr/bin/passwd中的内容使用ASCII方式输出 (10) 进入/tmp目录,将/root/.bashrc复制成bashrc,复制完全的属性,检查其日期 (11) 修改文件bashrc的时间为当前时间 3. 文件权限 (1) 执行echo pwd >> pwd.sh,然后使用ls -al查询一下,发生了什么事? (2) 以两种方式查看系统中新建文件或目录的默认权限 (3) 新建文件test1和目录test2,查看它们的权限是否与(2)中的默认权限相符 (4) 修改pwd.sh文件权限为r-xr--r--。 (5) 执行pwd.sh。(提示:执行本路径下文件的命令是./文件名)。 (6) 添加用户stu,修改密码为123。 (7) 修改文件test1的属主为stu,test1所属的组为stu。 (8)增加test1的属主具有可执行的权限。 4. 文件查找 (1) 查看文件/root/.bashrc的类型 (2) 查询ifconfig和cd命令的完整文件名 (3) 只找出跟passwd有关的“说明文件”文件名 (4) 找出系统中所有与passwd相关的文件名 (5) 将过去系统上面3天前的24小时内有改动(mtime)的文件列出 (6) 使用find查找当前目录下比man.config新的文件,并存储到man.config.new文件。 (7) 列出/etc下比/etc/man.config新的文件 (8) 查找系统中所有属于root的文件及不属于任何人的文件 (9) 使用find查找/下面所有名称为man.config的文件。 (10) 找出文件名为man.config的文件 (11) 使用locate查找所有名称为man.config的文件。 (12) 11步和12步的结果一样么?为什么? (13) 找出/etc下文件类型为f的文件 (14) 找出系统中大于1M的文件

Linux操作系统实验实验报告

实验1:安装L i n u x系统 【实验目的和要求】:安装Linux系统,掌握操作系统的系统配置,建立应用环境的过程。 【实验内容】: 1、首先在windows系统中安装虚拟机。在网上找到VMwareWorksttionPro版本, 确定安装目录。一直下一步,不需要太多的说明。 2、 图为安装完成后的界面。 3、然后在阿里巴巴开源镜像网站下载centos系统镜像,然后虚拟机创建新的虚 拟机, 进行一些简单的虚拟机设置,设置了网络链接nat模式等等。 安装完成后的界面 实验2:Linux下c语言开发 【实验目的】:学会和掌握用c语言开发一个应用程序的全过程,包括,编译,调试等等。

【实验步骤】:首先在系统中查看是否已经安装有gcc,输入查看命令发现没有,于是需要安装gcc。在centos系统中可以使用比较简便的yum命令。在之前已经配置好了yum源。直接输入yuminstallgcc。回车自动安装程序和需要的依赖包。 因为虚拟机中和电脑很多地方切换使用不方便,所以安装了xshell软件。图为xshell中的截图。

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

实验一Linux操作系统基础

实验一 1 实验名称:Linux操作系统基础 2 实验目标 2.1 掌握安装Linux操作系统的方法。 2.2 掌握Linux操作系统的基本配置。 2.3 了解GNOME桌面环境。 2.4灵活掌握基本shell命令的使用。 3 实验准备 3.1 下载VMware Workstation虚拟机软件(版本不限)。 3.2 准备Linux操作系统的安装源(内核版本和发行版本均不限)。 注:实验准备、实验内容4.1和4.2作为回家作业布置,同学们利用课余时间完成。 4 实验要求、步骤及结果 4.1 安装虚拟机软件。 【操作要求】安装VMware Workstation虚拟机软件,版本不限,并填写以下内容。 4.1.1安装VMware Workstation虚拟机软件的环境(操作系统) 4.1.2VMware Workstation虚拟机版本号

4.2 安装Linux操作系统。 【操作要求】在VMware虚拟机下安装Linux操作系统,版本不限,并填写以下内容。 4.2.1 Linux发行版本: 4.2.2 Linux内核版本: 4.2.3Linux操作系统的主要配置参数

4.3 了解Linux操作系统的桌面环境之一GNOME。 【操作要求1】打开图形化用户界面、查看桌面图标,查看主菜单,查看个人用户主目录等使用环境。 【操作要求2】启动字符终端2,了解命令提示行含义。 Alt+F2+Ctrl

[用户名@主机名目录名]提示符 【操作要求3】注销字符终端2 【操作要求4】关闭图形化用户界面,关闭Linux操作系统。 4.4 掌握基本shell命令的使用。 注:以下需要截取shell命令与结果,没有结果截到下一命令提示行。 【操作要求1】用超级用户登陆;将主机名改为具有个人学号后3位特征的名称,退出虚拟终端后重新登录;查看当前目录的绝对路径。 【操作步骤-登陆】 【操作步骤-修改主机名】 【操作步骤-查看结果】 【操作要求2】查看ls命令的手册页帮助信息;了解其中-d选项的作用,并举例说明。 【操作步骤】 【主要显示结果1-ls命令-d选项】

操作系统实验指导书(LINUX版)

《操作系统》实验指导书 实验学时:16 适用专业:计算机科学与技术 实验一:进程和线程的创建 1.在linux下编写一个应用程序,命名为an_ch2_1b。这个程序不断地输出如下行:Those output come from child,[系统时间] 另外写一个应用程序,命名为an_ch2_1a。这个程序创建一个子进程,执行an_ch2_1b。这个程序不断地输出如下行: Those output come from child,[系统时间] 观察程序运行的结果,并对你看到的现象进行解释。 2。在linux环境下编写一个控制台应用程序,程序中有一个共享的整型变量shared_var,初始值为0;创建一个线程并使其立即与主线程并发执行。新创建的线程与主线程均不断地循环,并输出shared_var的值。主线程在循环中不断地对shared_var进行加1操作,即每次循环shared_var被加1;而新创建的线程则不断地对shared_var进行减1操作,即每次循环shared_var被减1。观察程序运行的结果,并对你看到的现象进行解释。 3。提交源代码以及实验报告。 实验二:进程和线程同步和互斥 1。生产者消费者问题(信号量) 参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。

可选的实验:在上面实验的基础上实现部分消费者有选择地消费某些产品。例如一个消费者只消费小写字符,一个消费者只消费大写字母,而另一个消费者则无选择地消费任何产品。消费者要消费的产品没有时,消费者进程被阻塞。注意缓冲的管理。 2。用线程实现睡觉的理发师问题,(同步互斥方式采用信号量或mutex方式均可) 理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。 3。读者写者问题 教材中对读者写者问题算法均有描述,但这个算法在不断地有读者流的情况下,写者会被阻塞。编写一个写者优先解决读者写者问题的程序,其中读者和写者均是多个进程,用信号量作为同步互斥机制。 4。提交源代码以及实验报告。 实验三:实现一个文件查找程序 仿照unix操作系统中的find命令,在实现一个myfind命令。myfind命令从指定的目录下开始,递归地查找指定文件。其命令格式如下: myfind PATH-option参数[-print][-exec命令{}\;] PATH:查找的起始目录。 -option参数:用来控制搜索方式,具体如下(以下只给我常用的): -name"文件":指定要查找的文件名,可以有通配符?*等。 -prune目录:指出搜索时不搜索该目录。 -mtime+n或-n:按时间搜索,+n:表示n天之前修改过的文件;-n:表示今天到n天前之间修改过的文件。 -ctime+n或-n:也是按时间查找,+n:表示n天之前创建的文件;-n:表示今天到n天前之间创建的文件。 -print:将搜索结果输出到标准输出。 可选的实验1:实现-exe选项。

linux操作系统实验五

linux操作系统实验五

实验五进程管理子系统——进程控制 实验类别:设计型实验时数:6学时 开课单位:计算机学院 实验地点:健翔校区计算中心 一、实验目的 ◆掌握进程的概念,深入理解进程的含义。认识并理解并发环境中进程执 行的实质问题,了解构成并发机制的进程创建过程。能够使用系统调用完成进程创建,形成多个进程并发的环境。 ◆了解在进程创建后通过对进程控制的系统调用,可实现对进程的有效控 制。掌握在进程执行中对进程进行睡眠、同步、撤销等控制方法。 ◆进一步认识并发执行的实质,分析进程竞争资源的现象,学习解决进程 互斥的方法。 二、实验环境 操作系统:任何Unix/Linux及Sun Solaris 或windows 系列 应用系统:gcc编译器。若OS为windows系列,则还需相应的模拟环境 三、预备知识 1、L INUX系统中进程的含义

在LINUX中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基本单位。进程是并发环境中的实体,每个进程用一个task_struct的数据结构来表示,用来管理系统中的进程,因而task_struct就是LINUX系统中的PCB。另外,系统内核中还有一个task向量表,是指向系统中每一个task_struct数据结构的指针的数组,因而task向量表就是LINUX系统中的PCB表。 2、L INUX中的进程创建 除了init进程外,LINUX中的所有进程都是由其他进程创建的。LINUX 中提供了系统调用fork和clone,可被进程用来创建子进程。但系统调用fork 和clone其实都是调用内核函数do_fork(),通过克隆当前进程来创建子进程的。 四、实验内容 本实验要求在LINUX/UNIX环境下用C语言编写三个多进程并发执行的程序,基本涉及了LINUX/UNIX进程管理子系统中较为常用的有关进程控制的系统调用。实验内容如下: (1)使用fork()系统调用创建进程,使父、子进程分别运行不同的代码(要 求子进程在父进程之前运行): 子进程:①以长格式显示当前目录的情况;②分屏显示file1的内容。 父进程:①对1—100之间的自然数求和;②分屏显示file2的内容。 程序可能涉及到的系统调用:fork(), exec(), wait() 1

(完整版)Linux操作系统实验指导书-4磁盘

Linux 操作系统》实验指导书 实验四 实验题目:磁盘管理 实验目的:熟悉并掌握磁盘管理常用命令;掌握利用虚拟机增加新硬盘,使用fdisk对磁盘分区操作;熟悉和了解磁盘显示信息内容;掌握使用卷组进行磁盘管理操作。 实验类型:综合 实验要求:必修 仪器设备:计算机 实验内容、方法、步骤: 1,使用GUI方式建立用户userOI,具体属性如下: 登录shell为/bin/bash,主目录/userOI,用户id: 520,用户组grpOl 2,使用修改配置文件方式建立用户user02,具体属性如下: 登录shell 为/bin/bash,主目录/user02,用户id: 530,用户组grp02 3,使用命令方式建立用户user03,具体属性如下: 登录shell为/bin/bash,主目录/user03,用户id: 530,用户组grp03,附属组grp02 4,对user01, user02, user03,设置密码并登录。

一、磁盘和分区信息查看 1 fdisk查看当前系统硬盘及分区情况,在实验报告中说明当前的磁盘容量,分区数量、名 称和大小,分区挂载点,分区使用方式(卷组名称、逻辑卷名称和大小)。 步骤:fdisk - 2显示当前文件系统使用情况,在实验报告中说明当前主要文件系统信息及使用情况(包括主要文件系统名称、挂载点、容量、使用量及百分比等) 步骤:df — 二、添加新硬盘 内容:关闭虚拟机操作系统,添加2块硬盘,大小分别为5G和10G。开机后查看新硬盘 是否成功添加。 步骤: 1 关机:in it 0 2添加新硬盘:右键单击虚拟机,选择setting (设置)。在Add中按照要求添 加2块新硬盘(HardDisk ) 3开机后,打开终端。输入命令fdisk -或Is /dev/sd*查看新硬盘是否添加成功。 三、对新添加硬盘进行分区 内容: 1.将第二块硬盘sdb分区(5G),要求分区1 (sdb1 )为主分区,类型为swap (82),大小为500M ;分区2 (sdb2)为主分区,类型为linux (83),大小为 2G;分区3为扩展分区(sdb3),大小为sdb所有剩余容量;分区5为逻辑分区,类型为lvm (8e),大小为2G。分区后,查看sdb新添加所有分区,将截图添加到实验报告 中。 raot^AS5:jid?v _賀 中件? 狒(曰音百?池①标符? 苕时3 Last cylludAT or raize or taizeM or zeL (307 6S2 default 65^)i052N Comaomd (n for help)s □ Co>niaand action 1 logical(5 or over) p prlnsr partilion (1-4) 1 First cylinder (307-652. defoul t307)t defautt vftlue 307 Laat cylinder or H-size or i-si or "bsl sei1307 052,default C52)s^2G

linux操作系统实验大纲

《UNIX操作系统》实验教学大纲 一、课程的性质和目的 通过实验,使学生认识多用户、多任务、分时的操作系统,掌握这种操作系统的基本特征和操作使用,初步认识文件、输入输出重定向、系统管理、网络配置等操作系统基本概念,并掌握编辑工具的使用,在充分了解基本原理和基本语法格式的基础上,鼓励学生综合运用所学知识提出自己独特的和新的实现方案。 二、课程的教学内容要求及学时分配 实验一命令基础(2学时) 1、实验目的 熟悉LINUX命令的格式和常用的命令,熟悉如何使用帮助。 2、实验环境 硬件:计算机局域网。 软件:操作系统:RedHat Linux 9.0。 3、实验内容: 1.登录系统,修改密码,退出系统。 2.基本命令date,cal,who,finger,clear,echo,wc的使用。 3.特殊键的使用。 4.man 命令。 4、实验的主要步骤 1.登录进入UNIX系统。 2.使用passwd更改自己的用户口令。 3.执行以上几个常用的命令。

实验二文件与目录(4学时) 1、实验目的 使用户熟悉目录与文件的操作。 2、实验环境 硬件:计算机局域网。 软件:操作系统:RedHat Linux 9.0。 3、实验内容: 1.检查当前所处的环境。 2.查看目录。 3.对文件进行打开、复制、移动操作。 4.对目录进行创建、改变操作,一次创建多个目录。 5.删除空目录和非空目录。 4、实验的主要步骤 1.登录系统。 2.用pwd命令显示当前目录的目录名。 3.用cd命令改变当前目录。 4.使用ls命令的不同命令选项,来查看文件与目录的属性。 5.用mkdir和rmdir命令创建和删除目录。 6.用touch命令创建0长度的文件。 7.用cp.mv.ln及rm命令对文件进行拷贝、移动、重命名、链接及删除文件。 8.用cat或 more命令查看文件的内容。

操作系统linux版实验报告

操作系统实验报告(Linux版) 网络142 潘豹142999

实验一观察Linux进程状态 一、实验目的 在本实验中学习Linux操作系统的进程状态,并通过编写一些简单代码来观察各种情况下,Linux进程的状态,进一步理解进程的状态及其转换机制。 二、实验环境 硬件环境:计算机一台,局域网环境; 软件环境:Linux Ubuntu操作系统,gcc编译器。 (四)查看“不可中断阻塞”状态(D) 创建一个C程序,如uninter_status.c,让其睡眠30s 代码: #include #include int main() { int i=0,j=0,k=0; for(i=0;i<1000000;i++) { for(j=0;j<1000000;j++) { k++; k--; } } } 实验结果:

(二)查看“暂停”状态(T) 运行run_status进程,其进入R状态: 代码同上: (三)查看“可中断阻塞”状态(S) 创建一个C程序,如interruptiblie_status.c,让其睡眠30s 编译链接,后台运行该程序(后接&符号),并使用ps命令查看运行状态代码: #include #include int main() { sleep(30); return; } 实验结果: (四)查看“不可中断阻塞”状态(D) 创建一个C程序,如uninter_status.c,让其睡眠30s 编译链接,后台运行该程序(后接&),并使用ps命令查看运行状态 代码: #include #include int main() { if(vfork()==0)

linux操作系统实验三

实验三LINUX SHELL脚本程序设计 一、实验目的 通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。 二、实验环境 操作系统:任何Unix/Linux及Sun Solaris 或windows 系列 应用系统:SHELL 或windows环境下的cygwin模拟系统 三、实验内容 本实验包含三个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术。内容如下: ⑴创建以下菜单程序: USER: **** HOST: ******** DATE: **/**/20** A: 创建子目录并复制文件 B: 文件权限测试 C: 文件字符转换 D: 文件总数及文本行数统计 E: 文件查找 Q: 退出系统 ———————————————————————————————

A:在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)。测试目录确实存在后,将已存在的file1、file2两文件拷入其中并分别显示两文件的内容。显示完成后将file1、file2两文件截断为大小为0的空文件。

B :测试当前用户对系统中某文件是否有r 、w 、x 的权限,输出测试结果。

C:将file1、file2两文件中的小写字符转换为大写,并将转换后的内容分别写入新文件。判断上述操作成功后分别显示转换后的新文件的内容。 D:统计/dev目录下目录文件和符号链接文件的数目;统计系统中某文本文件中空行的行数;显示当前系统中所有环境变量。

Linux操作系统实验指导书

实验一熟悉Linux环境 (一)实验类型:验证型 (二)实验目的 1.熟悉Linux桌面环境的操作方式; 2. 了解Linux系统下的Shell常用命令; 3.掌握文件及目录命令操作;掌握联机帮助命令的使用方法; 4. 掌握文件打包、压缩命令; 5. 熟悉vi编辑器。 (三)实验内容 1.利用文件管理命令在用户的个人主目录下创建一个子目录,目录名称为本人的学号(例如201020205002),利用vi 编辑器编写一个SHELL 脚本,在终端运行后显示:Hello Linux! I have known how to use all kinds of commands. My name is xxx. (例如:My name is Shi Zhida. ) My student ID is xxx. (例如:My student ID is 201020205002 ) 2.在个人主目录下建立子目录bk+本人学号(例如bk201020205002)。 3.创建组,组名为身份证的后四位;创建用户,用户名为user+学号后4 位;把所建的用户添 加到组中。 4.删除由学号建立的目录。 5. 运行man date>file, 然后vi file, 进行编辑。每个命令的功能需要解析,每个命令的 结果需要截图显示。 使用x, dd等命令删除某些文本行; 使用u命令复原此前的情况; 使用c,r,s等命令修改文本内容; 使用检索命令进行给定模式的检索。 实验二:LINUX下Shell编程 学时:2 (一)实验类型:设计型 (二)实验目的 1.熟悉Shell脚本语言的基本语法;

2.掌握基本的Shell编程基本操作; 3.掌握如何执行Shell脚本程序。 (三)实验内容 1.在Linux 环境下,利用vi 编写SHELL 脚本程序。(sh1.sh、sh2.sh、sh3.sh) 2.程序sh1.sh: (1)要求用if 结构 (2)功能 在终端下运行程序,首先清屏,然后提示:Input a file or directory name, please! 。从键盘输入一个字符串(如:xxx ),如果该字符串是目录,则显示:xxx is a directory. ;如果该字符串是文件(如:xxx ),则显示:xxx is a regular file. ;如果既不是目录也不是文件,则显示:This script cannot get the file/directory! 。” 3.程序sh2.sh要求: (1)要求用case结构或if 结构 (2)功能 在终端下运行程序,首先清屏,然后提示:“Input your age!”。从键盘输入你的年龄(如:22),如果年龄在20-29,则输出“Please go to room 101 !”;如果年龄在30-39,则输出“Please go to room 201 !”;如果年龄在40-49,则输出“Please go to room 301 !”;如果年龄在50-59,则输出“Please go to room 401 !”;如果年龄在60-69,则输出“Please go to room 501!”;如果年龄不在上述范围,则输出“Please wait at the door!”; 4.程序shi3.sh 要求: (1)要求用循环结构 (2)功能 程序中循环列表为某一目录下的所有子目录和文件,运行程序,列出该目录下的所有文件。

linux操作系统试验报告书

linux操作系统实验报告书(1) Linux基本命令的使用 二.实验目的: 1.进一步练习Linux登录和退出的方法 2.练习与目录和文件操作相关的Linux命令: cd:切换目录 mkdir:建立一个新目录 cp:文件拷贝 ls:显示目录及文件的内容 mv:更改文件名称 cat、more、less:浏览文件内容 chmod:更改文件或目录的访问权限 rm:删除文件 rmdir:删除目录 三.实验内容: 1.登录进入Linux 系统。 2.将工作目录切换到根目录,用ls命令查看根目录下的内容,尝试使用等不同选项并比较不同之处。-a,-l,-F,-A,-lF. 3.在家目录下建立一个名为test的新目录,将工作目录切换到test下,然后将/tmp下的文件lesson.log拷贝到该目录下,并将lesson.log用mv命令改名为:TestRenName.txt。 4.用cat命令浏览文件TestRenName.txt的内容,用more命令进行浏览翻页操作。再用less命令浏览文件TestRenName.txt的内容。 5.用ls命令查看test下的文件的权限,并更改文件TestRenName.txt的权限为:只允许自己读写,不允许其他用户访问。用ls命令查看更改后的结果后再将文件TestRenName.txt的权限更改为系统默认的权限:-rw-r--r--。 6.用rm命令删除test目录下的所有文件,再用rmdir命令删除test目录。7.用logout命令退出系统。 四.结果分析: 五.实验心得 ********************************************************************* linux操作系统实验报告书(2)

LinuX操作系统实验的一6

淮海工学院计算机工程学院实验报告书 课程名:《网络操作系统》 题目:文件及目录操作 班级:网络122 学号: 姓名:

一、目的与要求 掌握linux常用的命令 二、实验内容与题目 1、在根目录/下建立以自己名字命名的目录 2、查找文件install.log、httpd.conf、hosts、smb.conf、network 3、把上述文件复制到1所建目录中 4、用ls命令显示上述文件名(利用各种参数) 5、在1所建目录中逐个删除上述文件 6、以student用户运行以下命令, 并将STDOUT重定向到/tmp/output.txt 7、列出/usr/share/doc 中以数字4结尾的文件. 8、显示/etc/hosts 中包含数字的所有行 9、显示/etc/hosts 中包含127.0.0.1 的行 10、给文件/home/john.txt做一个备份/tmp/john.bak 11、利用vi创建文件/home/john.txt 12、为文件/home/john.txt创建一个符号连接/home/xu 13、利用tar命令将/usr/share/doc中的文件打包,文件名sharedoc.你的姓名.tar.gz 14、并且将其解压到在根目录/下建立以自己名字命名的目录中。 15、掌握主要的帮助命令 三、实验步骤与源程序 1、在根目录/下建立以自己名字命名的目录

2、查找文件install.log、httpd.conf、hosts、smb.conf、network 3、把上述文件复制到1所建目录中 4、用ls命令显示上述文件名(利用各种参数)

5、在1所建目录中逐个删除上述文件 6、以student用户运行以下命令, 并将STDOUT重定向到/tmp/output.txt 7、列出/usr/share/doc 中以数字4结尾的文件. 8、显示/etc/hosts 中包含数字的所有行 9、显示/etc/hosts 中包含127.0.0.1 的行 11、利用vi创建文件/home/john.txt

相关文档
相关文档 最新文档