logo资料库

老男孩linux笔试题.doc

第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
资料共29页,剩余部分请下载后查看
-------------------------------------------------- 问题 5.如何得到 RedHat Linux 系统的下列信息,内核版本,发行版本?(搜狐畅游面试题) 解答: [root@oldboy-B scripts]# uname -a Linux oldboy-B 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686 i686 i386 GNU/Linux [root@oldboy-B scripts]# uname -r 2.6.18-164.el5 [root@oldboy-B scripts]# cat /etc/issue CentOS release 5.4 (Final) Kernel \r on an \m [root@oldboy-B scripts]# cat /etc/redhat-release CentOS release 5.4 (Final) -------------------------------------------------- 问题 6.下面是一台 RedHat Linux 系统服务器执行 uptime 命令的输出结果,请解释各字段 的含义(搜狐畅游面试题) 13:33:53 up 11 days,20:08,3 users,load average: 0.07,0.05,0.00 暂略 问题 7.在 RedHat/Centos Linux 系统中,如何将 oldboy.tar.gz 压缩文件解压到指定的目 录/home/oldboy/下(搜狐畅游面试题) 解答: tar zxvf oldboy.tar.gz -C /home/oldboy/ 提示:tar 是 5 星命令 请同学们必须熟练掌握了。详细总结见老男孩的命令教案 -------------------------------------------------- 问题 8.在 RedHat/Centos Linux 系统中,怎样查询/home/oldboy.txt 文件中包含 SOHU 或 CYOU 的字符串?(搜狐畅游面试题) 解答: [root@oldboy-B scripts]# echo 'SHHU OLDBOY' >>oldboy.txt [root@oldboy-B scripts]# echo 'CYOU my love' >>oldboy.txt [root@oldboy-B scripts]# cat oldboy.txt i am oldboy! my qq number is 31333741 SHHU OLDBOY CYOU my love 法一: [root@oldboy-B scripts]# grep -E "SOHU|CYOU" oldboy.txt CYOU my love [root@oldboy-B scripts]# echo 'SOHU OLDBOY' >>oldboy.txt [root@oldboy-B scripts]# echo 'sohu bestchaoliang' >>oldboy.txt [root@oldboy-B scripts]# grep -E "SOHU|CYOU" oldboy.txt CYOU my love SOHU OLDBOY 拓展:不区分大小写的过滤 [root@oldboy-B scripts]# grep -Ei "SOHU|CYOU" oldboy.txt
1548 1804 root root PID USER TYPE DEVICE SIZE NODE NAME CYOU my love SOHU OLDBOY sohu bestchaoliang [root@oldboy-B scripts]# cat oldboy.txt i am oldboy! my qq number is 31333741 SHHU OLDBOY CYOU my love SOHU OLDBOY sohu bestchaoliang -------------------------------------------------- 问题 9.在 RedHat/Centos Linux 系统上,某个进程占用了 tcp 的 7777 端口,如何得到此进 程的 ID?(搜狐畅游面试题) 解答: 法 1: [root@oldboy-B scripts]# lsof -i tcp:7777 COMMAND sshd sshd localhost:7777->localhost:jwclient (ESTABLISHED) sshd 5737 localhost:7777->localhost:jwclient (ESTABLISHED) [root@oldboy-B scripts]# lsof -i :7777 COMMAND sshd sshd localhost:7777->localhost:jwclient (ESTABLISHED) sshd 5737 localhost:7777->localhost:jwclient (ESTABLISHED) 法 2: [root@oldboy-B scripts]# netstat -lntup|grep 7777 tcp :* 提示:lsof 是个不错的命令,老男孩经常使用。 有机会给大家分享使用 lsof 解决问题是 的生产实战案例。 -------------------------------------------------- 问题 10.在 RedHat/Centos linux 中 swap 的作用?,swap 一般分多大?(慧聪网面试题) TYPE DEVICE SIZE NODE NAME 1806 oldboy 1806 oldboy IPv6 IPv6 PID USER FD 3u 3u IPv6 IPv6 LISTEN 1548/sshd 0 0 :::7777 1548 1804 root root FD 3u 3u 3u IPv6 TCP 3u IPv6 TCP 4706 5737 4706 5737 TCP *:7777 (LISTEN) TCP TCP *:7777 (LISTEN) TCP :: --------------------------------------------------
解答: 测试准备: [root@oldboy-B scripts]# pwd /server/scripts [root@oldboy-B scripts]# touch oldboy.HTM chaoliang.HTM chenyan.HTM qingyun.HTM CAO.HTM guoxing.HTM dong.HTM [root@oldboy-B scripts]# ls -l *.HTM -rw-r--r-- 1 root root 0 05-29 00:15 CAO.HTM -rw-r--r-- 1 root root 0 05-29 00:15 chaoliang.HTM -rw-r--r-- 1 root root 0 05-29 00:15 chenyan.HTM -rw-r--r-- 1 root root 0 05-29 00:15 dong.HTM -rw-r--r-- 1 root root 0 05-29 00:15 guoxing.HTM -rw-r--r-- 1 root root 0 05-29 00:15 oldboy.HTM -rw-r--r-- 1 root root 0 05-29 00:15 qingyun.HTM 使用 cat 非交互方式生成改名脚本 renamefile.sh: cat >renamefile.sh <
[root@oldboy-B scripts]# cat renamefile.sh for file in `ls *.HTM` do newfile=`echo $file | tr HTM htm` #newfile=`echo $file | tr A-Z a-z` #===这个也会同时把文件名大写改掉 mv $file $newfile #===这个更符合题目要求 done [root@oldboy-B scripts]# sh renamefile.sh [root@oldboy-B scripts]# ls -l *.HTM ls: *.HTM: 没有那个文件或目录 [root@oldboy-B scripts]# ls -l *.htm -rw-r--r-- 1 root root 0 05-29 00:15 cao.htm -rw-r--r-- 1 root root 0 05-29 00:15 chaoliang.htm -rw-r--r-- 1 root root 0 05-29 00:15 chenyan.htm -rw-r--r-- 1 root root 0 05-29 00:15 dong.htm -rw-r--r-- 1 root root 0 05-29 00:15 guoxing.htm -rw-r--r-- 1 root root 0 05-29 00:15 oldboy.htm -rw-r--r-- 1 root root 0 05-29 00:15 qingyun.htm 可以看到所有大写的 HTM 都被改成了小写 htm。 ========以下是学生做的方法=========== 法 2: [root@oldboy-A scripts]# cat renamefile2.sh #!/bin/sh #create by oldboy #qq 31333741 for filename in `ls *.HTM` do mv $filename `echo $filename|tr HTM htm` done 法 3: [root@oldboy-A scripts]# cat renamefile3.sh #!/bin/bash #create by oldboy #qq 31333741 #filename:filename.sh for fname in * do f=$(echo $fname | tr A-Z a-z) if [[ "$fname" != "$f" ]] #====这里是不同的判断语法[[]]用法 then mv $fname $f fi done 最后,由于个人水平及时间关系,老男孩这里给的参考答案未必都准确,欢迎大家一起交
流讨论,共同进步。 活学活用 linux shell 之-实现 1+2+3...+100=?的 7 种方法分享 21:18 2011-5-28 ######################################################### #《老男孩 linux 就业培训中心-初级班第七期课前考试及课上讲解 #shell 脚本编程实战模拟考试 #date:2011-5-28 #出题人:老男孩 #QQ:31333741 MAIL:oldboy521@hotmail.com #blog: http://oldboy.blog.51cto.com #psite: http://oldboy.cc(即将开放) ########################################################## 前言: 本文通过 shell 编程实现 1+2+3...+100=?的 7 种方法 来活学活用 shell, 学完本文你将熟悉 for,while,until 循环的用法,及(()),let,expr 等 shell 计算 命令的使用方法。
------------------------------------------------- 4.(())的其它写法 [root@oldboy-B scripts]# cat for6.sh sum=0 for((i=1;i<=100;i++)) do sum=$((i+sum)) done echo $sum [root@oldboy-B scripts]# cat for7.sh sum=0 for((i=1;i<=100;i++)) do sum=$((i+$sum)) done echo $sum 提示:以上两结果都是对的
------------------------------------------------- 5.使用 until 语句及(())计算 [oldboy@A ~]$ cat until-1.sh #!/bin/sh i=1 until ((i >100 )) do ((j=j+i)) ((i++)) done echo $j 提示:until 条件和 while 写法有区别。until 语句至少执行一次循环即使条件不成立。 ------------------------------------------------- 6.使用 while 循环语句计算 [oldboy@A ~]$ cat while-1.sh #!/bin/sh i=1 while ((i <=100 )) do ((j=j+i)) ((i++)) done echo $j -------------------------------------------------
分享到:
收藏