个人认为一些比较重要的题和答案

考试题一:从ett.log文件中提取包含"WARNING"或"UNKNOWN",同时不包含"OK"的行,然后提取以":"分割的第3个字段
WARNING:UNKNOWN:OK:CRITICAL
WARNING:UNKNOWN:NO:OLDBOY
WARNING:NO:OLDBOY:QINGYUN
UNKNOWN:OK:CRITICAL::CRITICAL
(本题为百度面试题)
解答;
awk-F:'/WARNING/||/UNKNOWN/&&!/OK/{print$3}'
更正:
awk-F:'(/WARNING/||/UNKNOWN/)&&!/OK/{print$3}'

�考试题二:计算当前webserver中不同的网络状态的数量情况,并把正在连机的用户访问IP从大到小排名。
提示:可使用netstat
解答:
网络状态统计:
netstat-ntu|awk'NR>2{a[$NF]++}END{for(iina)printi,a[i]}'

访问IP排名:
netstat-ntu|awk'NR>2{split($(NF-1),a,":");b[a[1]]++}END{for(iinb)printi,b[i]}'|sort-nrk2

(以下三道题来自讯雷公司面试题)
�考试题三:用shell找出/www/www.xunlei.com下最后修改时间是最近2个月大于600K扩展名为.jpg的文件,并删除。
解答:
find/www/www.xunlei.com/-mtime-60-szie+600k-name'*.jpg'-typef|xargsrm-f
or
find/www/www.xunlei.com/-mtime-60-szie+600k-name'*.jpg'-typef-execrm-f{}+


�考试题四:用shell建一个用户组xunlei,建立用户user0-user30且属组是xunlei
解答:
#!/bin/bash
groupaddxunlei
foriin{0..30}
do
useradduser${i}-gxunlei
done


�考试题五:用shell在/usr/local下建立20个子目录xunlei1-xunlei20,再在这20个子目录下分别建255个子目录dir1-dir255,再在255个子目录下创建10000个文件xunlei1.html-xunlei10000.html
解答:
mkdir-p/usr/local/xunlei{1..20}/dir{1..255}/
touch/usr/local/xunlei{1..20}/dir{1..255}/xunlei{1..10000}.html

(以下两道题来自品友互动公司面试题)
�考试题六:简述unix中umask的作用:
解答:
用于制定文件创建时的默认权限。

�考试题七:每个周的周一到周五的凌晨2点,系统会自动执行一个脚本程序dailybackup.sh,怎么实现
解答:
crontab-e
02**1-5/bin/bash/sh_path/dailybackup.sh>&/dev/null

�考试题八:把文件/tmp/123.log的内容按行移动到/ett/123.log中,要求每分钟移动一行。
解答:
#!/bin/bash
whilereadline
do
sleep60
echo$line>>/etc/123.log
done<tmp/123.log
rm-f/tmp/123.log

�考试题九:有千台服务器需要批量分发/etc/hosts,请问你如何做?给出你能想到的所有方法?
解答:
1.使用scp循环,并发scp脚本,pssh等
2.使用puppetsalt之类工具

�考试题十:一个文件ett.log,共20行内容,请切割为每五行一个新文件。
解答:
split-l5ett.log
or
awk'{if(NR%5==1)n++;print$0>"file_"n}'ett.log

�考试题十一:执行shell脚本通常有哪些方法,各有什么不同?
chmod755xx.sh;./xx.shor/sh_path/xx.sh#以路径执行需要执行权限需要指定#!
bashxx.shorshxx.sh#直接用解释器执行,不需要X权限,忽略#!,大多用于测试,shxxx.sh执行时使用的是bash--posix将导致很多bash特性不支持
soucexx.shor.xx.sh#将会忽略#!,对当前shell环境产生影响。

�考试题十二:请描述下面内容的用途及工作中应用场景。
$1传递进来的第一个参数
$#传参个数
$?最近一条前台执行命令的返回码
$0shell或脚本名称
$$当前shellpid
$*所有参数,"$*"时会把所有参数当成一个字段处理
$@所有参数

�考试题十三:shell脚本中普通变量定义的常用方法及各自的不同。
1.直接赋值
var=xxx
var=`echoxxx`#命令替换
var=$xxx#引用变量值

2.使用declare:声明变量并设置期属性
declare-[选项]var=xxx
-i值整数
-l值为小写
-u值为大写
-r变量只读


你可能感兴趣的:(面试题)