分享

linux方面面试题

 落寒影LIB 2014-12-12

问题1请通过awk命令取出服务器eth0网卡配置的ip地址(注*:此题可上机操作。目的:考察awk应用)。
解答:
[root@oldboy-A ~]# ifconfig eth0|grep “inet addr”|awk '{print $2}’|awk -F”:” '{print $2}’
10.0.0.148

 

问题2:通过sed命令将/tmp/old-boy.txt中的/usr/log替换为 /home/oldboy(来自《360公司》面试 from jeacen)
解答:
[root@oldboy-A ~]# cat /tmp/old-boy.txt
/usr/log
oldboy
[root@oldboy-A ~]# sed -e 's#oldboy#qingyun#’ /tmp/old-boy.txt
/usr/log
qingyun
[root@oldboy-A ~]# sed -e “s#/usr/log#/home/oldboy#” /tmp/old-boy.txt
/home/oldboy
oldboy
[root@oldboy-A ~]# sed -i “s#/usr/log#/home/oldboy#” /tmp/old-boy.txt
[root@oldboy-A ~]# cat /tmp/old-boy.txt
/home/oldboy
oldboy
方法一:sed -i 's#\/usr\/log#\/home\/oldboy#’ /tmp/old-boy.txt 等同sed -i 's#/usr/log#/home/oldboy#’ /tmp/old-boy.txt

sed 's#10#100#g’ example—–不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。表示把所有10替换成100

方法二:sed -i 's/\/home\/oldboy/\/usr\/log/’ /tmp/old-boy.txt
方法三:sed -i “s#/usr/log#/home/oldboy#” /tmp/old-boy.txt  ==>双引号也可以。
提示:”/”为特殊字符,需要转义,在斜线前面加反斜线来转义。本例中方法一不转义也可以完成。


问题3:通过find搜索/var/log下3天以前的日志并删除(来自《360》面试 from jeacen)
解答:
find /var/log/*.log -mtime +3 -exec rm {} \;
find /var/log/*.log -mtime +3 -type f -exec rm -f {} \;
find /var/log/*.log -type f -mtime +3 |xargs rm -f
提示:
1.有关find的各种详细案例讲解总结请参看〈老男孩笔记系列-find命令实战案例讲解指南〉
2.rm 命令请慎用,本人近10年运维亲身或听别人说过数十次使用该命令造成的无法弥补的后果。
测试结果:
[root@oldboy-A ~]# mkdir tmp
[root@oldboy-A ~]# cd tmp
[root@oldboy-A tmp]# date -s 20110518
Wed May 18 00:00:00 CST 2011
[root@oldboy-A tmp]# echo 1 >qingxun
[root@oldboy-A tmp]# date -s 20110519
Thu May 19 00:00:00 CST 2011
[root@oldboy-A tmp]# echo 1 >chaoliang
[root@oldboy-A tmp]# date -s 20110520
Fri May 20 00:00:00 CST 2011
[root@oldboy-A tmp]# echo 1 >xiaochen
[root@oldboy-A tmp]# date -s 20110517
Tue May 17 00:00:00 CST 2011
[root@oldboy-A tmp]# echo 1 >xiaoguo17
[root@oldboy-A tmp]# date -s 20110521
Sat May 21 00:00:00 CST 2011
[root@oldboy-A tmp]# echo 1 >xiaocao21
[root@oldboy-A tmp]# ls -lrt
total 20
-rw-r–r– 1 root root 2 May 17 00:00 xiaoguo17
-rw-r–r– 1 root root 2 May 18 00:00 qingxun
-rw-r–r– 1 root root 2 May 19 00:00 chaoliang
-rw-r–r– 1 root root 2 May 20 00:00 xiaochen
-rw-r–r– 1 root root 2 May 21 00:00 xiaocao21
[root@oldboy-A tmp]# find . -mtime +2
./xiaoguo17
./qingxun
[root@oldboy-A tmp]# find . -mtime +1
./xiaoguo17
./chaoliang
./qingxun
[root@oldboy-A tmp]# find . -mtime +2 -exec rm {} \;
[root@oldboy-A tmp]# ls -lrt
total 12
-rw-r–r– 1 root root 2 May 19 00:00 chaoliang
-rw-r–r– 1 root root 2 May 20 00:00 xiaochen
-rw-r–r– 1 root root 2 May 21 00:00 xiaocao21
[root@oldboy-A tmp]# find . -type -f -mtime +1 -exec rm -f {} \;
find: invalid argument `-f’ to `-type’
[root@oldboy-A tmp]# find . -type f -mtime +1 -exec rm -f {} \;
[root@oldboy-A tmp]# ls -lrt
total 8
-rw-r–r– 1 root root 2 May 20 00:00 xiaochen
-rw-r–r– 1 root root 2 May 21 00:00 xiaocao21
拓展:以分钟为单位删除
[root@oldboy-A tmp]# find . -type f -mmin +1440 -exec rm -f {} \;
[root@oldboy-A tmp]# ll -lrt
total 4
-rw-r–r– 1 root root 2 May 21 00:00 xiaocao21
[root@oldboy-A tmp]# uptime
00:10:53 up  4:38,  1 user,  load average: 0.00, 0.00, 0.00
[root@oldboy-A tmp]# find . -type f -mmin +8 -exec rm -f {} \;
[root@oldboy-A tmp]# ll -lrt
total 0

问题4:192.168.0.0网段通过192.168.0.1网关的连入172.16.0.0 ip段,如何添加路由(来自《360》面试 from jeacen)

解答:/sbin/route add -net 172.16.0.0  netmask 255.255.255.0 gw 192.168.0.1
提示:有关route及ip命令的使用,课上将详细讲解。很重要的命令,必须要掌握。

问题5:shell特殊变量中 $?,$#分别表示什么意思?
解答:
$?  获取执行的上一个指令的返回值(0  为成功,  非零为失败)
$#  获取当前 shell 命令行中参数的总个数

问题6:正则表达式中表示以…开头,和以…结尾的符号分别为?
解答:
^ 以…开头
$ 以…结尾

问题7:搜索/oldboy.txt中包含oldboy或linux字串的所有行,请给出命令。
解答:
[root@oldboy-B tmp]# echo oldboy >>/oldboy.txt
[root@oldboy-B tmp]# echo linux >>/oldboy.txt
[root@oldboy-B tmp]# echo caojun >>/oldboy.txt
[root@oldboy-B tmp]# cat /oldboy.txt
oldboy
linux
caojun
[root@oldboy-B tmp]# cat /oldboy.txt|grep -E “oldboy|linux”
#==>很多同学喜欢这个低效的方法,希望看到本文后能改。
oldboy
linux
[root@oldboy-B tmp]# grep -E “oldboy|linux” /oldboy.txt
oldboy
linux
[root@oldboy-B tmp]# egrep  “oldboy|linux” /oldboy.txt
oldboy
linux
答案:grep -E “oldboy|linux” /oldboy.txt 或 egrep  “oldboy|linux” /oldboy.txt


问题8:处理以下日志文件内容,将域名取出来并根据域名进行计数排序处理:(百度和sohu面试题)
/oldboy.log

http://www./index.html

http://www./1.html

http://post./index.html

http://mp3./index.html

http://www./3.html

http://post./2.html

处理结果形式:
1 mp3.
2 post.
3 www.
前面的数字分别表示,后面的域名在文件中出现的次数。
实际上本题就是统计日志中访问不同域名的次数,并按次数排
说明:本题的思路非常有用,如生产环境中,可以通过netstat查看已建立连接的频繁访问服务的ip排序,
也可以查看web日志,看看一天或一个小时甚至几分钟内,列出IP访问量的排序等等。

解答:
[root@oldboy-A tmp]# cut -d “/” -f3 /oldboy.log |sort|uniq -c
1 mp3.
2 post.
3 www.
[root@oldboy-A tmp]# awk -F “/” '{print $3}’ /oldboy.log|sort|uniq -c
1 mp3.
2 post.
3 www.

问题9. 在Shell环境下,如何查看远程Linux系统运行了多少时间?( sohu面试题)
[root@oldboy-A tmp]# uptime
00:27:01 up  4:54,  1 user,  load average: 0.00, 0.01, 0.00

 

 

linux运维初级班shell脚本编程考试及参考答案20110523

shell脚本编程实战模拟考试题(上机)
一、考试前准备工作:
1.执行yum install httpd -y 安装httpd。
2.检查安装情况
[root@oldboy-B tmp]# rpm -qa httpd
httpd-2.2.3-45.el5.centos.1
3.启动httpd,并检查
[root@oldboy-B tmp]# /etc/init.d/httpd start
启动 httpd:[确定]
[root@oldboy-B tmp]# netstat -lnt|grep 80 #==>检查端口
tcp        0      0 :::80                       :::*                        LISTEN
[root@oldboy-B tmp]# ps -ef|grep httpd#==>检查进程
root      4041     1  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4043  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4044  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4045  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4046  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4047  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4048  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4049  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
apache    4050  4041  0 14:24 ?        00:00:00 /usr/sbin/httpd
root      4061  3793  0 14:25 pts/0    00:00:00 grep httpd


linux下如何添加路由(百度面试题)

route 命令方法:

主机路由:

/sbin/route add -host 192.168.2.13 dev eth2

/sbin/route add -host 202.81.11.91 dev lo

缺省网关路由

/sbin/route add default gw 192.168.1.254

/sbin/route add default gw 202.11.11.1

网络路由 去往某一网络

/sbin/route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0 //通过eth0设备去连接

/sbin/route add -net 10.8.0.0  netmask 255.255.255.0 gw 192.168.1.90

/sbin/route add -net 0.0.0.0  netmask 0.0.0.0 gw 203.84.12.1

查看:

route -n

删除:

route del

 

ip route 命令方法:

增加路由,主要是本机可以沟通的网段

ip route add 192.168.5.0 dev eth0

增加可以通往外部的路由,需通过router

ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0

增加默认路由

ip route add default via 192.168.1.2 dev eth0

查看:

ip route show

删除:

ip route del 192.168.10.0/24

linux定时任务crontab命令详解

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多