25道shell面试题.docx
文本预览下载声明
1、 用sed修改test.txt的23行test为tset;
????sed –i ‘23s/test/tset/g’ test.txt
2、 查看/web.log第25行第三列的内容。
????sed –n ‘25p’ /web.log | cut –d “ ” –f3
????head –n25 /web.log | tail –n1 | cut –d “ ” –f3
????awk –F “ ” ‘NR==23{print $3}’ /web.log
3、 删除每个临时文件的最初三行。
????sed –i ‘1,3d’ /tmp/*.tmp
4、 脚本编程:求100内的质数。
????#!/bin/bash
????i=1
????while [ $i -le 100 ];do
????????ret=1
????????for (( j=2;j$i;j++ ));do
????if [ $(($i%$j)) -eq 0 ?];then
ret=0
break
????fi
????????done
????????if [ $ret -eq 1 ];then
????????????echo -n $i
????????fi
????????i=$(( i+1 ))
????done
5、 晚上11点到早上8点之间每两个小时查看一次系统日期与时间,写出具体配置命令
????echo 1 23,1-8/2 * * * root /tmp/walldate.sh /etc/crontab
6、 编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下
????#!/bin/bash
????fileinfo=($(du ./*))
????length=${#fileinfo[@]}
????for((i=0;i$length;i=$(( i+2 ))));do
????????if [ ${fileinfo[$i]} -le 10 ];then
????mv ${fileinfo[$(( i+1 ))]} /tmp
????????fi
????done
7、 如何将本地80端口的请求转发到8080端口,当前主机IP为
????/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to :8080
????/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
8、 在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现
????echo 1 6-12/2 * * * root /usr/bin/httpd.sh /etc/crontab
9、 在shell环境如何杀死一个进程?
????ps aux? | grep | cut -f? 得到pid
????cat /proc/pid
????kill pid
10、 在shell环境如何查找一个文件?
????find / -name abc.txt
11、 在shell里如何新建一个文件?
????touch ~/newfile.txt
12、 linux下面的sed和awk的编写
1) ?如何显示文本file.txt中第二大列大于56789的行?
? ? awk -F , {if($256789){print $0}} file.txt
2) 显示file.txt的1,3,5,7,10,15行?
? ? sed -n 1p;3p;5p;7p;10p;15p file.txt
? ? awk NR==1||NR==3||NR==5||…||NR=15{print $0} file.txt
3) 将file.txt的制表符,即tab,全部替换成|
????sed -i s#\t#\|#g file.txt
13、 把当前目录(包含子目录)下所有后缀为“.sh”的文件后缀变更为“.shell”? ??
????#!/bin/bash
????str=`find ./ -name \*.sh`
????for i in $str
????do
????????mv $i ${i%sh}shell
????done
14、 编写shell实现自动删除50个账号功能,账号名为stud1至stud50
? ? #!/bin/bash
? ? for((i=1;i=50;i++));do
????? ? userdel stud$i
? ? done
15、 请用Iptables写出只允许79 访问本服务器的22端口。
? ? /s
显示全部