几道shell面试题及答案

企业面试题1:

已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?

21029299

00205d1c

a3da1677

1f6d12dd

890684b

解题思路:通过每次传递一个参数的方式,来实现依次破解

$RANDOM的范围为0-32767

        #!/bin/bash
        #Author: liuwei
        #Site: www.51liuzw.com
        for n in {0..32767}
        do
            MD5=`echo $n | md5sum | cut -c 1-8`
            if [ "$MD5" == "$1" ];then
                echo "$n is."
                exit
            else
                echo "$n no."
            fi
        done

注:也可以通过定义数组的方法,来一次全部对比

        #!/bin/bash    
        #Author: liuwei
        #Site: www.51liuzw.com
        array=(
                00205d1c
                21029299
                a3da1677
                1f6d12dd
                890684b
        )
        for n in {0..32767}
        do
                MD5=`echo $n | md5sum | cut -c 1-8`
                for i in ${array[@]};do
                        if [ "$MD5" == "$i" ];then
                                echo "$n and $i" >> c.log
                                break
                        else
                                echo "$n no."
                        fi
                done
        done

#cat c.log

1346 and 00205d1c

7041 and 1f6d12dd

25345 and a3da1677

25667 and 21029299

企业面试题2:批量检查多个网站地址是否正常

要求:shell数组方法实现,检测策略尽量模拟用户访问思路

http://www.baidu.com

http://www.taobao.com

http://www.51liuzw.com

http://192.168.50.199

#!/bin/bash
#Author: liuwei
#Site: www.51liuzw.com
array=(
http://www.baidu.com
http://www.taobao.com
http://www.51liuzw.com
http://192.168.50.199
)
for n in ${array[*]};do
        URL=`curl -I -m 2 $n 2> /dev/null | egrep "200|302" | wc -l`
        if [ "$URL" -eq 1 ];then
                echo "$n is OK"
        else
                echo "$n is not OK"
        fi
done

结果:

#sh test.sh

http://www.baidu.com is OK

http://www.taobao.com is OK

http://www.51liuzw.com is not OK

http://192.168.50.199 is not OK

企业面试题3::用shell处理以下内容

1、按单词出现频率降序排序!

2、按字母出现频率降序排序!

the squid project provides a number of resources toassist users design,implement and support squid installations. Please browsethe documentation and support sections for more infomation

1.按单词出现频率降序排序!

解决思路:把空格换为换行符,并排序统计

      #sed ‘s# #\n#g‘ c.txt | sort | uniq -c

2.按字母出现频率降序排序!

解决思路:使用grep -o "\w",把单词拆开并去除种各符号

      #cat c.txt | grep -o "\w" | sort | uniq -c
时间: 2024-10-10 05:20:15

几道shell面试题及答案的相关文章

25道shell面试题

1 . 用 sed 修改 test.txt 的 23 行 test 为 tset : sed –i „23s/test/tset/g? test.txt 2 . 查看 /web.log 第 25 行第三列的内容. sed –n „25p? /web.log | cut –d “ ” – f3 head – n25 /web.log | tail – n1 | cut –d “ ” – f3 awk –F “ ” „NR==23{print $3}? /web.log 3 . 删除每个临时文件的最

(转)史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

背景:因为自己的简历写了dubbo,面试时候经常被问到.实际自己对dubbo的认识只停留在使用阶段,所以有必要好好补充下基础的理论知识. https://zhuanlan.zhihu.com/p/45846108 想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一.Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉. 下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人的,一些是我过

69道Spring面试题和答案

1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯. 2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. 面向切面的编程(AOP):Sp

JAVA面试题:69道Spring面试题和答案

目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯. 2. 使用Spring框架的好处是什么? 轻量:S

【spring】69道Spring面试题和答案

原文地址:http://ifeve.com/spring-interview-questions-and-answers/ 目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化J

面试(4)-spring-Spring面试题和答案

1:69道Spring面试题和答案 转自:http://ifeve.com/spring-interview-questions-and-answers/ 目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用

2019最新iOS面试题及答案

1. Object-C的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-C的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系. 2. import 跟#include 又什么区别,@class呢, #import<> 跟 #import"&qu

2017最新企业Shell面试题及企业运维实战共30道案例

<跟老男孩学习Linux运维:Shell高级编程实战>一书第19章企业面试题分享. 答案: 1.答案在<跟老男孩学习Linux运维:Shell高级编程实战>第19章一书2016年年底前即将出版. 2.2016最新Shell视频http://edu.51cto.com/pack/view/id-546.html 第19章企业Shell面试题及企业运维实战案例 19.1 企业Shell面试题实战案例 19.1.1 企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/o

经典71道Android试题及答案

本文为开发者奉献了70道经典Android面试题加答案--重要知识点几乎都涉及到了,你还等啥,赶紧收藏吧!! 1. 下列哪些语句关于内存回收的说明是正确的? (b) A. 程序员必须创建一个线程来释放内存 B. 内存回收程序负责释放无用内存 C. 内存回收程序允许程序员直接释放内存 D. 内存回收程序可以在指定的时间释放内存对象 2. 下面异常是属于Runtime Exception 的是(abcd)(多选) A.ArithmeticException B.IllegalArgumentExce