linux操作系统实验三.docx
- 文档编号:15223321
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:15
- 大小:126.88KB
linux操作系统实验三.docx
《linux操作系统实验三.docx》由会员分享,可在线阅读,更多相关《linux操作系统实验三.docx(15页珍藏版)》请在冰点文库上搜索。
linux操作系统实验三
实验三LINUXSHELL脚本程序设计
一、实验目的
通过本实验练习,使学生了解常用SHELL的编程特点,掌握SHELL程序设计的基础知识。
对SHELL程序流程控制、SHELL程序的运行方式、bash程序的调试方法及bash的常用内部命令有进一步的认识和理解。
通过本实验,学生应能够基本掌握编写SHELL程序的步骤、方法和技巧。
二、实验环境
操作系统:
任何Unix/Linux及SunSolaris或windows系列应用系统:
SHELL或windows环境下的cygwin模拟系统
三、实验内容
本实验包含三个具体的SHELL程序编写任务,较为全面地涉及了
SHELL程序的设计方法和技术。
内容如下:
⑴创建以下菜单程序:
User・****HOST:
********DATE・**/**/20**
A:
创建子目录并复制文件
B:
文件权限测试
C:
文件字符转换
D:
文件总数及文本行数统计
E:
文件查找
Q:
退出系统
A:
在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)
测试目录确实存在后,将已存在的file1、file2两文件拷入其中并分别显
示两文件的内容。
显示完成后将filel、file2两文件截断为大小为0的空
文件
Oubuntu16.04±
風计Jf机
<公共旳
純袁本F钊襄哥充度:
日〒行h灵】*崗入
B:
测试当前用户对系统中某文件是否有r、w、x的权限,输出测试结果。
UserjyinxiaohancjHost:
yxhDate
M创坯子目录并复制文件恥文件枚限週试匚:
文件字為转挟
口:
哀坪总数及文足幻散统计匸:
文卅査找
J:
退出玉烧
YourChoice[ApB,CpP,EfQJ;b
rw-rw-r--1y?
thyxh62前夕月2623;67filelUtttheretuinkeytflcontinual
C:
将filel、file2两文件中的小写字符转换为大写,并将转换后的内容分别
写入新文件。
判断上述操作成功后分别显示转换后的新文件的内容。
yxhjjpCancer*
X创锂子目戒井宴制文杵日:
文件权限劝试
I文杵字苻诗浜
D;文件总数恐哀本行数统计
E:
文眸查找
Q:
退出系蔬
Vour[A,R,C(D*F,Q]:
c
DATE⑴U5EACOHMANDSOAT£
(1)
hAME
DATE-PRINT0RSETTHESrSTErtDATEANDTIME
SVWPSI5
DATE[OPTION].,.[+FORMAT]
DATE|-Ut--LjTC|--UNIVERSALJ(MHDDHHMn[[CCJYY]j.SS]{
DESCRIPTION
DISPLAVTHECURRENTTIMEINTHEGIVENFORMAT.ORSETTHESYSTEMDATE.
MANDATORYARGUMFNTST0IONGOPTIONSARFMANDATORYFORSHORTOPTIOWSTOO.
D:
统计/dev目录下目录文件和符号链接文件的数目;统计系统中某文本文件中空行的行数;显示当前系统中所有环境变量。
QO<9yxh^Cancen-crw*rw—-1roottty
crw'rw-1roottty
crw^rw-—1routtty
(frwxr-«r-x2rootrootcrw1rootroot
crw■''t'1gorroot
crw---*■■■irootrootcrw-------1rootroot
crw'rw-rw-1rootroot17
11
helloworldI
XDGVTNft-7
XDGlSESSIONID-C2
CLUTTER_ir_HODyLE-Htn
XDGGREETERDATADlft=/var/liL/lightdn*data/yxhSESSTON-ubuntil
GPG_A6FWT_rNF0=/hone/yxh/.gnupg/S+gpg-Hgt^it:
fl:
1LHELL-/btn/haEh
E:
在/dev目录下查找由s开头且文件名由5个字符组成的文件,找到后用file命令显示其文件类型。
/KhjjpCancer-
Host:
yxh
User:
yinxidoh^ng
A:
创锂子目说井复制文件
B:
文件权限Q试匚:
文件字粽转挨
D:
文件启数尺文本行教蜿计
"文件音我
Q:
澹出系统
YDUFChoLCfi[肌B’GD,E»Q]:
t
/dev/stdtnsynboliElinkto/proc/self/fd/9
Hitthereturnkeytoconttnuel
yxh@Cancer:
~$
yxh@Cancer:
~$
#!
/bin/sh
MYDATE='2016-11-01'
yxh@Cancer:
~$
THIS_HOST='yxh'
yxh@Cancer:
~$
USER='yinxiaohang'
yxh@Cancer:
~$while
>do
>tputclear
>catvvMAYDAY
>
User:
$USERDate:
$MYDATE
B:
文件权限测试
文件字符转换
件总数及文本行数统计
查找
统
Host:
$THIS_HOST
A:
创建子目录并复制文件
C:
D:
文
E:
文件
Q:
退出系
>MAYDAY
>echo-e-n"\tYourChoice[A,B,C,D,E,Q]
>readCHOICE
>case$CHOICEin
>A|a)mkdir--mode=755/home/yxh/test/yinxiaohang
>iftest-d"/home/yxh/test/yinxiaohang"
>thencpfile1file2/home/yxh/test/yinxiaohang
>catfile1
>catfile2
>:
>/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
afile
name
>fi
>;;
>B|b)
if[
-f
file1
]
>then
test
-r
file1
-a
-wfile1
-a-xfile1
>Is-lfilel
>elseechofileldonotrwx
>fi
>C|c)tr
'a-z''A-Z'
>tr'a-z'
'A-Z'<
>;;
>iftest-f1-a
>thencat1
>cat2
>elseecho
>fi
>;;
>D|d)ls-l
>ls-l/dev
>ls-l/dev
>cat3
>cat3|grep
>env
>;;
>E|e)find
>find/dev
>var=$(cat
>file-b
>;;
fail!
/dev
|grep
|grep
'A$'|wc
/dev
file2>2
2
-name
-name
4)
${var%%.*}
Ad|wc-l
Al|wc-l
-l
"s[a-z][a-z][a-z][a-z]"
"s[a-z][a-z][a-z][a-z]"
>4
>Q|q)exit0
>;;
>*)echo-e"\t\007unknownuserreponse
>;;
>
continue"
esac
>echo-e-n"\tHitthereturnkeyto
>readDUMMY>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:
~$
whilereadNAMECLASSSCORE
>do
>case$CLASSin
>1301)
>NUMBER仁'expr$NUMBER1+1'
>if[$SCORE-ge90]
>thenPASS1='expr$PASS1+1'>fi
>1302)
>NUMBER2='expr$NUMBER2+1'
>if[$SCORE-ge90]
>thenPASS2='expr$PASS2+1'
>fi;;
>1303)
>NUMBER3='expr$NUMBER3+1'
>if[$SCORE-ge90]
>thenPASS3='expr$PASS3+1
>fi
>;;
>*)
>echo"FAIL
>;;
>esac
>done ~$ 0 yxh@Cancer: ~$ 2 yxh@Cancer: ~$ 1 yxh@Cancer: ~$ ! " echo$PASS1 echo$PASS2 echo$PASS3 "$PASS1/$NUMBER1+$PASS1%$NUMBER1*0.50"|bc|awk'{printf yxh@Cancer: ~$ "$PASS2/$NUMBER2+$PASS2%$NUMBER2*0.50"|bc|awk'{printf yxh@Cancer: ~$ "$PASS3/$NUMBER3+$PASS3%$NUMBER3*0.50"|bc|awk'{printf yxh@Cancer: ~$echo"1301$NUMBER1$PASS1" 130120.00 yxh@Cancer: ~$echo"1302$NUMBER2$PASS2" PASS^$(echo "%.2f",$0}') PASS2=$(echo "%.2f",$0}') PASS3=$(echo "%.2f',$0}') 130221.00 yxh@Cancer: ~$echo"1303$NUMBER3$PASS3" 130320.50 yxh@Cancer: ~$IFS=$SAVEDIFS ⑶认真学习、理解find和grep(家族)命令,编制两个个性化的文件搜索工具。 “yxh<^Can亡电n* 加按文件内容查找文件并显示其路径 B;按文件名査找文件并显示其路径 IS选择aora: a 请锚入宇符串: HELLO Hitthereturnke/toconttnuel yxh^Cancen* A: 按文件内容査找文件井显示其路径 肌按文件名查找文件井显示直路径 Ifir宣奄•堂■奄*协*書*■•空W童書皆••■■*■***■ iRiSHAORB: B 请輸入文件名: il ・/.config/Ubreoffice/4/user/exTensions/l>Liil ./.config/gtk-2.0/gtkftLeet'ooser*ini r/.conftg/n«utllus ./,confi.g/fcttx/profile /fi.Xel ・/.cache/nozilla ./・cache/noztlta/ftrefox/debymbpi.default/thunbnatls ./,cache/thunbn占11s /.cdche/thurbnalls/fail. »/.cache/thu^bnatls/fatl/grome-thunbnetlf-actory /”cache/evolutton/mail ./file; F/testyfilel *********************************** /testyfilcS while: >do >tputclear >catvvMAYDAY > > A: 按文件内容查找文件并显示其路径 B: 按文件名查找文件并显示其路径 *********************************** >MAYDAY >echo-e-n"\t请选择AORB: " >readCHOICE >case$CHOICEin >A)read-p"请输入字符串: "val >find.|xargsgrep-ri"$val"-l >;; >B)read-p"请输入文件名: "val >find.-name"*$val*" >*)echo-e"\t\007FAIL! " >;; > continue" esac >echo-e-n"\tHitthereturnkeyto >readDUMMY >done
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 操作系统 实验