课前考试题汇总
如何成为高手?
针对性刻意练习
学习的过程注定是辛苦的,分享可以得到即时反馈,这是良性循环的开始
学习过程必须养成做笔记的习惯,重复的力量是无穷怕,好的习惯只需要21天即可培养出来
技术的提升只是量的增长,思想的提升才是质的飞跃 ——by 老男孩
第1章 第1周课前测试考试题
1.1 创建目录
第1题创建一个目录/data。
[root@lb01 ~]# mkdir /data验证[root@lb01 ~]# ls -ld /datadrwxr-xr-x 2 root root 4096 8月 25 21:25 /data
1.2 创建文件
第2题在/data下面建立一个文件oldboy.txt。
[root@lb01 ~]# cd /data/[root@lb01 data]# touch oldboy.txt验证[root@lb01 data]# ls -l oldboy.txt -rw-r--r-- 1 root root 0 8月 25 21:26 oldboy.txt
1.3 给文件加内容
第3题为oldboy.txt 增加内容为“I am studying linux.”。
[root@lb01 data]# echo "I am studying linux." >oldboy.txt 验证[root@lb01 data]# cat oldboy.txt I am studying linux.
1.4 复制文件并粘贴
第4题把oldboy.txt文件拷贝到/tmp下。
[root@lb01 data]# cp oldboy.txt /tmp/验证[root@lb01 data]# ls -l /tmp/oldboy.txt -rw-r--r-- 1 root root 21 8月 25 21:27 /tmp/oldboy.txt
1.5 移动目录
第5题把/data目录移动到/root下。
[root@lb01 data]# cd[root@lb01 ~]# mv /data /root/验证[root@lb01 ~]# ls -ld /root/data/drwxr-xr-x 2 root root 4096 8月 25 21:26 /root/data/
1.6 删除文件
第6题进入/root目录下的data 目录,删除oldboy.txt文件。
[root@lb01 ~]# cd /root/data/[root@lb01 data]# rm -f oldboy.txt
1.7 删除目录
第7题接第6 题,退出到上一级目录,删除data目录。
[root@lb01 data]# cd ..[root@lb01 ~]# rm -fr data
1.8 过滤字符串
第8题请给输出test.txt文件内容时,不包含oldboy字符串的命令。
已知文件test.txt内容为:
testliyaooldboy
准备素材
cat >test.txt<
方法一
[root@lb01 ~]# head -2 test.txttestliyao
方法二
[root@lb01 ~]# grep -v oldboy test.txt testliyao
方法三
[root@lb01 ~]# sed -n '1,2p' test.txt testliyao
方法四
[root@lb01 ~]# awk 'NR<3' test.txt testliyao
1.9 递归创建目录
第9题请用一条命令完成创建目录,即创建/oldboy目录及/oldboy/test目录
[root@lb01 ~]# mkdir -p /oldboy/test验证一[root@lb01 ~]# ls -ld /oldboy/test/drwxr-xr-x 2 root root 4096 8月 25 21:43 /oldboy/test/验证二[root@lb01 ~]# tree /oldboy//oldboy/└── test1 directory, 0 files
1.10 别名
第10题已知/tmp下已经存在test.txt文件,如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt,而让系统不提示是否覆盖(root权限下)。
[root@lb01 ~]# touch /{tmp,mnt}/test.txt[root@lb01 ~]# ls -l /{tmp,mnt}/test.txt-rw-r--r-- 1 root root 0 8月 25 21:48 /mnt/test.txt-rw-r--r-- 1 root root 0 8月 25 21:48 /tmp/test.txt
方法一:命令前加反斜杠,可以忽略别名的作用
[root@lb01 ~]# \cp /mnt/test.txt /tmp/
方法二:给命令写全路径
[root@lb01 ~]# /bin/cp /mnt/test.txt /tmp/
为什么会有提示?因为设置了别名。别名全局生效的配置文件是:/etc/bashrc
[root@lb01 ~]# alias cpalias cp='cp -i'
1.11 取行
第11题只查看ett.txt文件(共100行)内第20到第30行的内容
模拟数据
[root@lb01 ~]# head -100 /etc/services |cat -n>ett.txt
方法一
[root@lb01 ~]# head -30 ett.txt |tail -11
方法二
[root@lb01 ~]# sed -n '20,30p' ett.txt
方法三
[root@lb01 ~]# awk 'NR>19&&NR<31' ett.txt
1.12 分析日志
第12题分析图片服务日志,把日志(每个图片访问次数*图片大小的总和)排行,取top10,也就是计算每个url的总访问大小
【附加题:工作场景高难度加分题,不会的同学可以放弃不答】。
说明:本题生产环境应用:这个功能可以用于IDC网站流量带宽很高,然后通过分析服务器日志哪些元素占用流量过大,进而进行优化或裁剪该图片,压缩js等措施。
本题需要输出三个指标:【访问次数】【访问次数*单个文件大小】【文件名(可以带URL)】
测试数据如下:
59.33.26.105 --[08/Dec/2010:15:43:56 +0800] "GET /static/p_w_picpaths/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozil-la/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"59.33.26.105 --[08/Dec/2010:15:43:56 +0800] "GET /static/p_w_picpaths/photos/2.jpg HTTP/1.1" 200 11299"http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"59.33.26.105 --[08/Dec/2010:15:44:02 +0800] "GET /static/flex/vedioLoading.swf HTTP/1.1" 200 3583"http://oldboy.blog.51cto.com/static/flex/AdobeVideoPlayer.swf?width=590&height=328&url=/`DYNAMIC`/2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"124.115.4.18 --[08/Dec/2010:15:44:15 +0800] "GET /?= HTTP/1.1" 200 46232 "-" "-"124.115.4.18 --[08/Dec/2010:15:44:25 +0800] "GET /static/js/web_js.js HTTP/1.1" 200 4460 "-" "-"124.115.4.18 --[08/Dec/2010:15:44:25 +0800] "GET /static/js/jquery.lazyload.js HTTP/1.1" 200 1627 "-" "-"
1.13 查找文件并替换文件的内容
第13题把/oldboy目录及其子目录下所有以扩展名.sh结尾的文件中含./hostlists.txt的字符串全部替换为../idctest_iplist。
准备素材
echo './hostlists.txt' >a.shecho './hostlists.txt' >b.shecho './hostlists.txt' >c.sh
查看素材的内容
[root@lb01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat./hostlists.txt./hostlists.txt./hostlists.txt
解答:sed查找替换,一条命令搞定
[root@lb01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed -i 's#./hostlists.txt#../idctest_iplist#g'
验证
[root@lb01 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat../idctest_iplist../idctest_iplist../idctest_iplist