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

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

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

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

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

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


1

2

3

4

5

[[email protected] 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

[[email protected] 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

[[email protected] 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

[[email protected] 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

时间: 2024-08-09 08:22:39

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

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

2017年最新企业面试题之shell(二) 练习题1:写一个shell脚本,将192.169.5.0/24网段在线的ip列出来.(找出活动ip) 要求如下: 1.将在线ip与不在线ip分别放在两个文件中,方便后期查阅: 2.不影响对当前终端进行操作: 3.脚本运行结束后,给予提示信息,表明脚本已经运行结束. 脚本内容如下: 方法一: #!/bin/bash [ -f /etc/init.d/functions ] && . /etc/init.d/functions||exit1 # 验证

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

2017年最新企业面试题之shell(三) 练习题1:写一个shell脚本,类似于日志切割,系统有个logrotate程序,可以完成归档.但现在我们要自己写一个shell脚本实现归档. 举例: 假如服务的输出日志是1.log,我要求每天归档一个,1.log第二天就变成1.log.1,第三天1.log.2, 第四天 1.log.3  一直到1.log.5 脚本内容如下: #!/bin/sh function logdir () { [ -f $1 ] && rm -f $1 } for i

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

2017年最新企业面试题之shell(四) 一.抽签脚本(1)要求如下: 1.写一个脚本执行后,输入名字,产生随机数01-99之间的数字: 2.输入名字后,屏幕输出信息,并将名字和数字记录到文件里: 3.如果相同的名字重复输入,脚本给予提示"名字重复",要求该学生重新输入并不将本次输入记录到文件里: 4.程序不能退出继续等待别的学生输入. 脚本图片如下: 脚本文档如下: #!/bin/sh fun0(){ printf "$name $num\n" >/dev

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

2017年最新企业面试题之shell(一) ********************************************** 企业Shell面试题1:批量生成随机字符文件名案例 * ********************************************** 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: [[email protected] C19]# ls /oldbo

2020网工最新企业面试题分享 企业优秀网工20道必会初级面试题 来试一下自己的基础到底如何

Q1:接触过华为的交换机.路由器.防火墙等产品吗?分别是哪一些型号?回答:Q2:华为交换机.路由器.防火墙的账户名和密码是多少?回答:Q3:详细说明下数据包的封装和解封装过程回答Q4:255 192 252 168 172 224 128 248 240要非常熟悉把二进制算出来回答:Q5:怎么样判断两个IP地址是否在同一个网段学员答案:答案1:看掩码答案2:主机位一致答案3:网络地址相同 就在同一个网段答案4:网络位一样答案5:在网段范围内答案6:网关一样答案7:网关和掩码一致答案8:ip地址与

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

Linux运维必会的MySQL企业面试题大全 推荐

Linux运维必会的MySQL企业面试题大全 推荐 (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld startservice mysqld startsystemctl  start mysqld 2.检测端口是否运行 lsof -i :3306netstat -lntup |grep 3306 3.为MySQL设置密码或者修改密码 设置密码 mysql -uroot -ppassword -e "set passowrd for root = passow

2017年最新(4月20日)手机号码归属地数据库分享

2017年最新(4月20日)手机号码归属地数据库下载 手机号段数据库 号码归属地数据库  移动号段 联通号段 电信号段 147号段 170号段(虚拟运营商) 权威  全面  准确  规范字段包括 省份 城市 运营商 邮编 区号 等信息,对于数据分析.号码归属地查询等非常有帮助 更新历史: 2017年4月最新版手机号段归属地,也叫手机归属地数据库  共360569条记录,三种格式:MYSQL,MSSQL,access MDB格式 字段:手机号码前7位,省份,城市,区号,运营商,邮编 末尾如下: 3

2017年最新老男孩教育python视频全栈课程+源码笔记

官方网址:http://www.oldboyedu.com 网盘地址:2017年最新老男孩教育python视频自动化课程链接: http://pan.baidu.com/s/1mimH1PY 密码: d8ff 04-Python的发展05-Python特性介绍及与其它语言对比06-Python安装及环境准备07-编程风格要求08-Python的数据类型和运算符09-单行和多行注释10-理解ASSIC Unicode UTF-8编码11-使用和导入模块12-用户交互和格式化输出13-流程控制if