問題1:請通過awk命令取出服務(wù)器eth0網(wǎng)卡配置的ip地址(注*:此題可上機(jī)操作。目的:考察awk應(yīng)用)。 解答: [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命令的都被認(rèn)為是新的分隔符,所以,“#”在這里是分隔符,代替了默認(rèn)的“/”分隔符。表示把所有10替換成100 方法二:sed -i 's/\/home\/oldboy/\/usr\/log/’ /tmp/old-boy.txt 方法三:sed -i “s#/usr/log#/home/oldboy#” /tmp/old-boy.txt ==>雙引號也可以。 提示:”/”為特殊字符,需要轉(zhuǎn)義,在斜線前面加反斜線來轉(zhuǎn)義。本例中方法一不轉(zhuǎn)義也可以完成。
問題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.有關(guān)find的各種詳細(xì)案例講解總結(jié)請參看〈老男孩筆記系列-find命令實戰(zhàn)案例講解指南〉 2.rm 命令請慎用,本人近10年運(yùn)維親身或聽別人說過數(shù)十次使用該命令造成的無法彌補(bǔ)的后果。 測試結(jié)果: [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網(wǎng)段通過192.168.0.1網(wǎng)關(guān)的連入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 提示:有關(guān)route及ip命令的使用,課上將詳細(xì)講解。很重要的命令,必須要掌握。 問題5:shell特殊變量中 $?,$#分別表示什么意思? 解答: $? 獲取執(zhí)行的上一個指令的返回值(0 為成功, 非零為失敗) $# 獲取當(dāng)前 shell 命令行中參數(shù)的總個數(shù) 問題6:正則表達(dá)式中表示以…開頭,和以…結(jié)尾的符號分別為? 解答: ^ 以…開頭 $ 以…結(jié)尾 問題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” #==>很多同學(xué)喜歡這個低效的方法,希望看到本文后能改。 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:處理以下日志文件內(nèi)容,將域名取出來并根據(jù)域名進(jìn)行計數(shù)排序處理:(百度和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 處理結(jié)果形式: 1 mp3. 2 post. 3 www. 前面的數(shù)字分別表示,后面的域名在文件中出現(xiàn)的次數(shù)。 實際上本題就是統(tǒng)計日志中訪問不同域名的次數(shù),并按次數(shù)排 說明:本題的思路非常有用,如生產(chǎn)環(huán)境中,可以通過netstat查看已建立連接的頻繁訪問服務(wù)的ip排序, 也可以查看web日志,看看一天或一個小時甚至幾分鐘內(nèi),列出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環(huán)境下,如何查看遠(yuǎn)程Linux系統(tǒng)運(yùn)行了多少時間?( sohu面試題) [root@oldboy-A tmp]# uptime 00:27:01 up 4:54, 1 user, load average: 0.00, 0.01, 0.00 linux運(yùn)維初級班shell腳本編程考試及參考答案20110523 shell腳本編程實戰(zhàn)模擬考試題(上機(jī)) 一、考試前準(zhǔn)備工作: 1.執(zhí)行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#==>檢查進(jìn)程 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 命令方法: 主機(jī)路由: /sbin/route add -host 192.168.2.13 dev eth2 /sbin/route add -host 202.81.11.91 dev lo 缺省網(wǎng)關(guān)路由 /sbin/route add default gw 192.168.1.254 /sbin/route add default gw 202.11.11.1 網(wǎng)絡(luò)路由 去往某一網(wǎng)絡(luò) /sbin/route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0 //通過eth0設(shè)備去連接 /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 命令方法: 增加路由,主要是本機(jī)可以溝通的網(wǎng)段 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 增加默認(rèn)路由 ip route add default via 192.168.1.2 dev eth0 查看: ip route show 刪除: ip route del 192.168.10.0/24 linux定時任務(wù)crontab命令詳解
|