欢迎来到天天文库
浏览记录
ID:33971583
大小:64.54 KB
页数:5页
时间:2019-03-02
《实验二:shell及shell编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验二shell及shell编程lv实验目的1)sed的使用;2)awk的应用;3)shell及shell编程;4)与用户启动相关的文件及使用。2、实现设备一台装有Windows操作系统和Linux机系统的微机或服务器。3、实验方法与注意事项1)由于是以root用户工作的,权力很大,请不要在系统内做对系统或对其他用户不安全的事情。2)要求每个同学登录后系统后,要在自己的家目录内容以自己(汉语拼音)名字,使用mkdir命令创建一个子目录。以后所有工作都要在白己的目录内进行。3)认真编写实验报告4、实验过程1)sed命令的使用:(1)将ifile文件中的所
2、有sysman替换成SystemManager并输出至!Jofilesed-e1s/sysman/SystemManager/g'ofile(2)显示ifile文件中的所有注释行#sed-e'/A#/!d*]*$/d'ofile#注:tab为tab键,可用t.表示,〈space〉为空格键。②也可写为:sed[]*$/d*<
3、ifile>ofile或写为sed,厂$/d;厂[[:blank:]]*$/(Tofile或写为sed,厂$/d;厂[[:space:]]*$/(Pofile③如果脚本命令较多,也可将整个脚本内容写入文件(比如e_script)中,此时命令的执行可如下进行:sed-fescriptofile2)awk命令的使用(1)显示系统内root的进程,它们是什么,进程号是多少ps-ef
4、awk'/root/{print$1,$2,$8}'(1)显示系统所非wot用户在干什么,他们是谁?ps-ef
5、awk'!/root/{
6、print$1,$8}*(3)使用awk计算文件infile内数字的和。awk*{sum+=$1};END{printsum}*ifile注:假设infile内容为数字串,且每个数字串占一行。⑷显示系统内已经注册(创建)的所有用户(显示/etc/passwd内的所有用户)awk-F:•{print$1}1/etc/passwd#-心指定域分隔符为“:”3)shell编程(1)设计一个程序,带一个(目录)参数。实现功能:(1)首先判断是否带有参数,若无则显示用法信息后,报错返回;(2)带首先判断该参数是不是目录。若是则列目录的内容,否则,提示用户不是目录
7、,则显示警告信息后报错返回。#!/bin/shif[$#-ne1]#checkifhave1parameterthenecho"Usage:$0dirH#DiaplayUsageexit1#return1fiif[-dn$l”]#ifisadir;thenIs$1/*;exit0#listthedir,andreturn0fiechonWarn:$1isnotadirectoryn#Warningmessageexit2#return2注:输入时可不输入注释部分。设此程序名为myls,为其增加执行权后,运行方法为:・/myls#返回码为1・/mylsd
8、ir#如果dir是个目录,则列其内容・/mylsfile#若file是文件或不存在则给出警告后返回2(2)用嵌套式if-fi语句实现(1):#!/bin/shif[$#-ne1]#checkifhave1parameterthenechonUsage:$0dirn#DiaplayUsageexit1#return1elif[-dn$1n]#ifisadirthenIs$1/*;exit0#listthedir,andreturn0elseechonWarn:$1isnotadirectoryn#Warningmessageexit2#return2fi
9、(3)设计一个程序,从命令行接收数值参数,并计算这些参数的和。x=0foryin$*dox='expr$x+$y'doneecho"TheSumis:$xn注:设程序名为myadd,增加执行权后,运行方法为:myadd203510060但是,本程序是有问题的,原因是它没有判断输入数据的合法性。下面是一个增加输入数据合法性检查的程序。x=0foryin$*doz='echo$y
10、awk*/A[[:digit:]]*$/{print$0}*'if[-z$z];thenecho-enInvalidcommandlineparameter:$yan;exit
11、1fix='expr$x+$ydoneechonTheSumis:$xf,(1)设计一个程序,
此文档下载收益归作者所有