操作系统实验
实验一:linux常用命令 一、 实验目的
1、 掌握linux常用命令的使用方法和任务操作能力;
2、 用超级用户与普通用户帐户登录linux系统,了解在linux系统中超级用户与普通用户将具有那些
本质上不同的权限;
3、 能描述在linux 系统启动过程中包含了哪些主要的阶段; 二、 实验内容和要求
1、 使用自己的帐户登录linux系统查看系统提示符确定自己使用的 shell程序类型。 2、 修改个人口令后重新登录。
3、 用who命令查看当前登录在系统中的用户列表、用户总数、系统启动时间等。 4、 查看当前用户的标志符及当前进程的状态。 5、 用 cal命令查看自己的生日是星期几。
6、 将 Windows下的C盘链入linux 系统的根目录下。
7、 将C盘上的一个文本传递到linux下的当前用户目录下,并进行浏览查看。 8、 使用mail进行电子邮件的传递与查看。 9、 在系统中与其他用户对话。
10、练习允许与拒绝其他用户向自己的终端上发送信息。 三、 实验结果:请同学们自己写出 上机执行参考序列:
1、 用户使用的shell可查阅/etc/passwd文件确定。 2、 修改口令的命令为:passwd
5、 cal –m 3 –y 1990
mount/dev/hda1/dosc
vim ./myexample.txt
subject:hello
查看信件只需要键入”mail” % mail
用户屏幕将分成两半,其显示:请同学们自己写 此时zhangming 回应: % talk wangyong@class
则zhangming 的屏幕就会分成两半,双方开始对话。 10、% mesg y
1
实验二:shell编程 一、实验目的
1、 理解shell的基本功能和作用。
2、 了解shell命令解释原理及linux特殊命令的使用方法。
3、 根据需要设定自己的shell环境参数,构造一个具有特色的shell工作环境。 4、 掌握shell 基本程序设计方法,能够编写需要的 shell程序。 二、实验内容和要求(同学们可以任意选择2题)
1、 使用FOR循环语句编写一段B-shell程序,完成显示用户注册目录下a_bub、b_sub 子目录下的所有C
程序文件及其目标的列表。
2、 为了便于系统管理员对磁盘分配的管理,请编写一段B-shsell程序,当文件系统/home的占用空间量改
变时给出相应的提示。要求/home占用量在系统磁盘中为: (1) 小于50%时,提示“用户文件系统磁盘使用负荷量小”。
(2) 大于50%,小于90%时,提示“用户文件系统磁盘使用负荷正常”。 (3) 大于等于90%时,提示“用户文件系统磁盘使用负荷量偏大”。
3、 编写一段shell 程序完成:根据从键盘输入的学生成绩,显示相应的成绩标准(分出及格和优秀)。 三、参考代码 1、 # !/bin/sh
# showfile .sh
if test –d $HOME/ a_sub #测试目录a_sub是否存在 then
echo “---the .c and .obj files in $HOME /a_sub:---” for filename in ?ls $HOME / a_sub? do
case $ filename in #显示文件 *.c) echo $ filename; *.obj) echo $ filename; esac done else
echo “$HOME / a_sub dose not exist!!! ” fi
if test –d $HOME/ b_sub #测试目录b_sub是否存在 then
echo “---the .c and .obj files in $HOME /b_sub:---” for filename in ?ls $HOME / b_sub? do
case $ filename in #显示文件 *.c) echo $ filename; *.obj) echo $ filename; esac done else
echo “$HOME / b_sub dose not exist!!! ” fi
2
2、 cat diskusage.sh
# !/bin/sh # diskusage.sh echo
echo “---disk usage condition---” #获得用户已使用的磁盘空间数 used = ?du -s $HOME | cut -f1 ? echo -e “used blocks:\\t$used ” #获得磁盘空闲块数
free = ? df | tail –l | tr -s “[ ]” | cut –f4 –d “ ” ? echo –e “ free blocks : \\t$free”
#计算出用户可以使用的总的磁盘空间大小 total = $ ( echo ?expr $used + $free? ) echo –e “total blocks : \\ t$total ” echo
echo “---disk usage ratio---” #计算出用户的磁盘占用率
ratio = $( echo “scale=6 ; $used*100/$total ” | bc) echo –e “ usage ratio : \\t$ratio%” if [ ?expr “$ratio < 50 ” ? ] then
echo “用户文件系统磁盘使用负荷量小” else if [ ?expr “$ratio > 90 ” ? ] then
echo “用户文件系统磁盘使用负荷量偏大” else
echo “用户文件系统磁盘使用负荷正常”fi echo
3、 cat score.sh # !/bin/sh #score.sh
echo –e “ please enter the score: \\c”
while read SCORE do
case $SCORE in ? | [ 1-5 ?] echo “Failed !”
echo –e “please enter the score: \\c” ;; 6?) echo “ passed! ”
echo –e “please enter the score: \\c” ;;
7 ? ) echo “ Medium!”
echo –e “please enter the score: \\c” ;;
3
8 ? ) echo “Good !”
echo –e “please enter the score: \\c” ;; 9 ? | 100 ) echo “excellent!”
echo –e “please enter the score: \\c” ;; * ) exit ;; esac done
四、实验结果
请同学们写出shell 程序执行结果和小结、体会。 五 思考问题
1、 shell程序的主要功能有哪些?
2、 请说明使用shell编程时,如何将编写完成的 shell程序提交给系统运行?
4