2017年最新企业面试题之shell(一)

**********************************************

企业Shell面试题1:批量生成随机字符文件名案例 *

**********************************************

使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下:

1
2
3
4
5
[root@oldgirl C19]# ls /oldboy
apquvdpqbk_oldboy.html  mpyogpsmwj_oldboy.html  txynzwofgg_oldboy.html
bmqiwhfpgv_oldboy.html  mtrzobsprf_oldboy.html  vjxmlflawa_oldboy.html
jhjdcjnjxc_oldboy.html  qeztkkmewn_oldboy.html
jpvirsnjld_oldboy.html  ruscyxwxai_oldboy.html

解答:

脚本内容如下:(for循环实现脚本)

1
2
3
4
5
6
7
8
#!/bin/bash
#date=2017-8-3
cd /oldboy
for (( i=0;i<10;i++ ))
do
   r=` head -c 500 /dev/urandom|tr -dc [a-z]|head -c 10|sed -r 's#[^a-z]#m#g'`
   touch "$r"_oldboy.html
done

说明:

脚本执行结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@ceshiji oldboy]# ll
总用量 8
-rw-r--r-- 1 root root   0 8月   3 13:35 defozmpplm_oldboy.html
-rw-r--r-- 1 root root 175 8月   3 13:35 for.sh
-rw-r--r-- 1 root root   0 8月   3 13:35 fpwxukgqho_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:35 gwtwtmdwaf_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:35 htttummyjh_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:35 myqmgyixuj_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:35 rmsyxakjbx_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:35 sxarorojil_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:35 wfqaymdmxc_oldboy.html
-rw-r--r-- 1 root root 184 8月   3 13:32 while.sh
-rw-r--r-- 1 root root   0 8月   3 13:35 yvgviwswze_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:35 zhikoyxipv_oldboy.html

脚本内容如下:(while循环实现脚本)

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
#date=2017-8-3
cd /oldboy
i=0
while (( i<10 ))
do
   r=` head -c 500 /dev/urandom|tr -dc [a-z]|head -c 10|sed -r 's#[^a-z]#m#g'`
   touch "$r"_oldboy.html
   ((i++))
done

说明:

脚本执行结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ceshiji oldboy]# ll
总用量 4
-rw-r--r-- 1 root root   0 8月   3 13:28 atncjmfwtd_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 bmbhdhvqmb_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 bmuqvcehgc_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 irfrxjjmny_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 mvprsmwvah_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 nxyfjkvekl_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 omqyxuykgq_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 smkxwfjepd_oldboy.html
-rw-r--r-- 1 root root 184 8月   3 13:28 while.sh
-rw-r--r-- 1 root root   0 8月   3 13:28 wkwmkktdcn_oldboy.html
-rw-r--r-- 1 root root   0 8月   3 13:28 xtznpcuxem_oldboy.html

************************************

企业Shell面试题2:批量改名特殊案例 *

************************************

将以上面试题1中结果文件名中的oldboy字符串全部改成oldgirl(最好用for循环实现),并且将扩展名html全部改成大写。

解答:

for循环实现脚本如下:

1
2
3
4
5
6
7
#!/bin/bash
#date=2017-8-3
cd /oldboy
for in `ls|grep .*html`
do
  mv $i  `echo $i|sed -r 's#(.*)_oldboy.html#\1_oldgirl.HTML#'`
done

说明:

脚本执行结果如下:

1
2
3
4
5
6
7
8
9
10
11
[root@ceshiji oldboy]# sh for2.sh
ahqrvgmewi_oldgirl.HTML
cekphjpxmf_oldgirl.HTML
fodvkohejd_oldgirl.HTML
llymsvwhim_oldgirl.HTML
mejlzbfmna_oldgirl.HTML
mxqrnbgmnt_oldgirl.HTML
pkviyuhrum_oldgirl.HTML
shmmlxzkdu_oldgirl.HTML
wmgokfirna_oldgirl.HTML
wmmknomcmy_oldgirl.HTML

其他方法参考:http://wutengfei.blog.51cto.com/10942117/1951146

********************************************

企业Shell面试题3:批量创建特殊要求用户案例 *

********************************************

批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机数,要求字符和数字等混合)。

不用for循环的实现思路:http://user.qzone.qq.com/49000448/blog/1422183723

解答:

1
2
3
4
5
6
7
#!/bin/bash
#date=2018-8-3
for in `seq -w 1 10`
do
   useradd oldboy$i -M
   echo "`openssl rand -base64 8`"|passwd  --stdin oldboy$i
done

说明:

2017年最新企业面试题之shell(二)

 


练习题1:
写一个shell脚本,将192.169.5.0/24网段在线的ip列出来。(找出活动ip)

要求如下:

1.将在线ip与不在线ip分别放在两个文件中,方便后期查阅;

2.不影响对当前终端进行操作;

3.脚本运行结束后,给予提示信息,表明脚本已经运行结束。

脚本内容如下:

方法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
[ -f /etc/init.d/functions ] && . /etc/init.d/functions||exit1
# 验证系统函数文件是否存在,如存在则调用系统函数,否则退出!
ips="192.169.5."
for in $(seq 254)
do
ping -c 2 $ips$i >/dev/null 2>/dev/null
if "$?" == "0" ]
then
        echo "echo $ips$i is online" >>/root/ip_online.txt
else
        echo "echo $ips$i is not online" >>/root/ip_noline.txt
fi
done
if "$ips$i" != "192.169.5.255" ];then
        action "shell脚本执行完毕!" /bin/true
fi

方法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
[ -f /etc/init.d/functions ] && . /etc/init.d/functions||exit1 
# 验证系统函数文件是否存在,如存在则调用系统函数,否则退出!
for ip in $(cat /root/ip.txt)
do
ping -c 2 $ip >/dev/null 2>/dev/null
if "$?" == "0" ]
then
        echo "echo $ip is online" >>/root/ip_online.txt
else
        echo "echo $ip is not online" >>/root/ip_noline.txt
fi
done
if "$ip" != "192.169.5.255" ];then
        action "shell脚本执行完毕!" /bin/true
fi

说明:

(1)如果脚本名字 ip_online.sh ,则执行脚本时为不影响当前终端的使用,使用 sh ip_online.sh &命令执行。

(2)不建议使用方法二,因为编辑/root/ip.txt文件太浪费时间。

本文出自 “圣骑士控魔之手” 博客,请务必保留此出处http://wutengfei.blog.51cto.com/10942117/1961226

(转)2017年最新企业面试题之shell(一,二)的更多相关文章

  1. 2016最新Java笔试题集锦

    更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...

  2. 2018年最新Java面试题及答案整理(持续完善中…)

    2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...

  3. 2017年最新15个漂亮的 HTML 摄影网站模板

    摄影是一门艺术,它需要大量的耐心和努力工作来捕捉那些精彩的瞬间.如果你是一位热情的摄影师,想要建立一个网站来展示那些高质量的摄影作品,那么你找对地方了.本文包含15个最佳的摄影网站模板,你可以使用这些 ...

  4. 2017年最新基于Bootstrap 4 的专业、多用途响应式布局的系统模板

    本文分享一款2017年最新的2017年最新基于Bootstrap 4 的专业.多用途响应式布局的系统模板,该模板是一款强大并且非常灵活的后台管理系统模板:能适应绝大多数的web应用程序开发,比如:AP ...

  5. Shell企业案例实战和企业面试题

    shell企业面试题 1.批量创建带有随机小写字符文件程序 使用for循环在/pizza目录下创建10个html文件,其中每个文件包含10个随机小写字母加固定字母_pizza 1.思路分析: 核心是: ...

  6. (转)linux运维必会MySQL企业面试题

    linux运维必会MySQL企业面试题  老男孩教育运维班全体学员MySQL必会企业面试题最实战.最细致.最落地的运维实训基地,老男孩教育连续多年国内平均就业工资最高! 数据库的重要性是所有技术里最核 ...

  7. (转)关于inode和block的两道企业面试题

    关于inode和block的两道企业面试题 原文:http://www.tk4479.net/xiaolong361/article/details/52373374 一.一个100M的磁盘分区,分别 ...

  8. 运维派 企业面试题4&5 创建10个 用户 ; ping探测主机是否在线

    Linux运维必会的实战编程笔试题(19题) 企业面试题4: 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串). #!/bin/bash # ;i<=; ...

  9. 运维派 企业面试题3 为上题中的 "十个随机字母_test.html" 文件 更名

    Linux运维必会的实战编程笔试题(19题) 企业面试题3 #将试题2中创建的文件名uopiyhgawe_test.html# test-->修改为omg,html-->HTML 方法一: ...

随机推荐

  1. 策略与计费控制(PCC)流程与信令流程

    该文为3GPP TS23.203-be0 条款6-7译文 策略与计费控制(PCC)流程[^4] IP-CAN 会话有三种显著的场景: 无网关控制会话需求,不会出现网关控制建立 需要网关控制会话支持:B ...

  2. 洛谷P2420 让我们异或吧(树链剖分)

    题目描述异或是一种神奇的运算,大部分人把它总结成不进位加法. 在生活中…xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么: (A是否是男生 )xor( B是否是男生)=A和B是否能够 ...

  3. 生日蜡烛——第七届蓝桥杯C语言B组(省赛)第二题

    原创 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日 ...

  4. RegExp正则表达式对象

    JavaScript的RegExp对象有两种创建方式,一种是字面量,一种是对象. var r = /pattern/attributes或者new RegExp(pattern, attributes ...

  5. whereis libjpeg.so.7

    在服务器上调用import ImageFont时报如下错误 ImportError: The _imagingft C module is not installed (服务器为Centos5.5, ...

  6. linux 系统的ssh服务

    ssh服务由服务端软件Openssh和客户端(常见的有ssh,SecureCRT,putty,xshell)组成,ssh服务默认使用22端口提供服务,它有两个不兼容的ssh协议版本,分别是1.x和2. ...

  7. Echarts+WPF

    C# using System; using System.Collections.Generic; using System.IO; using System.Linq; using System. ...

  8. Mysql避免重复插入记录方法

    一.mysql replace用法 1.replace into  replace into table (id,name) values('1','aa'),('2','bb')  此语句的作用是向 ...

  9. C语言编程学习开发的俄罗斯方块小游戏

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

  10. c++最短路经典问题

    一提起最短路,各位oier会想到什么呢? floyd,spfa,dij,或是bellman-ford? 其实,只要学会一种算法,大部分最短路问题就能很快解决了. 他就是堆优化的dijkstra. 首先 ...