欢迎来到天天文库
浏览记录
ID:40491034
大小:52.63 KB
页数:29页
时间:2019-08-03
《shell常见问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、非常好的十道Linux shell脚本面试题 1、编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下 #/bin/sh #Programm: #Usingformovecurrentlydirectoryto/tmp forFileNamein`ls-l
2、awk'$5>10240{print$9}'` do mv$FileName/tmp done ls-al/tmp echo"Done!" 2、编写shell脚本获取本机的网络地址。 比如:本机的ip地址是:192.168.100.2/255.255.255.0,那么
3、它的网络地址是 192.168.100.1/255.255.255.0 方法一: #!/bin/bash #Thisscriptprintipandnetwork file="/etc/sysconfig/network-scripts/ifcfg-eth0" if[-f$file];then IP=`grep"IPADDR"$file
4、awk-F"="'{print$2}'` MASK=`grep"NETMASK"$file
5、awk-F"="'{print$2}'` echo"$IP/$MASK" exit1 fi 方法二: #!/b
6、in/bash #Thisprogrammwillprintfip/network # IP=`ifconfigeth0
7、grep'inet'
8、sed's/^.*addr://g'
9、sed's/Bcast.*$//g'` NETMASK=`ifconfigeth0
10、grep'inet'
11、sed's/^.*Mask://g'` echo"$IP/$NETMASK" exit 3、用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到/dev目录下。 参考程序: #!/bin/sh FILENAME= echo“Inputfile
12、name:” readFILENAME if[-c"$FILENAME"] then cp$FILENAME/dev fi 4.请为下列shell程序添加注释,并说明程序的功能和调用方法: #!/bin/sh # #/etc/rc.d/rc.httpd # #Start/stop/restarttheApachewebserver. # #TomakeApachestartautomaticallyatboot,makethis #fileexecutable:chmod755/etc/rc.d/rc.httpd # case"$1"i
13、n 'start') /usr/sbin/apachectlstart;; 'stop') /usr/sbin/apachectlstop;; 'restart') /usr/sbin/apachectlrestart;; *) echo"usage$0start
14、stop
15、restart";; esac 参考答案: (1)程序注释 #!/bin/sh定义实用的shell # #/etc/rc.d/rc.httpd注释行,凡是以星号开始的行均为注释行。 # #Start/stop/restarttheApachewebserver. #
16、 #TomakeApachestartautomaticallyatboot,makethis #fileexecutable:chmod755/etc/rc.d/rc.httpd # case"$1"in#case结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置参数”,即$1 'start')#若位置参数为start /usr/sbin/apachectlstart;;#启动httpd进程 'stop')#若位置参数为stop /usr/sbin/apachectlstop;;#关闭httpd进程 'restart')#
17、若位置参数为stop /usr/sbin/apachectlrestart;;#重新启动httpd进程 *)#若位置参数不是start、stop或restart时 echo"usage$0start
18、stop
19、restart";;#显示命令提示信息:程序的调用方法 esac#case结构结束 (2)程序的功能是启动,停止或重新启动httpd进程 (3)程序的调用方式有三种:启动,停止和重新启动。 5.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。 参考
20、答案: #!/bin/sh i=1 groupaddclass1 while[$i-le30] do if[$i-le9];then USERNAME=stu0${i} else USERNAME=stu$
此文档下载收益归作者所有