Shell面试题及企业运维实战练习1
来源:互联网 发布:淘宝装修设计师模块 编辑:程序博客网 时间:2024/05/19 16:04
最近在看Shell 学习了有些时间,正巧在网上找到了一批实战题,自己动手练习一下 原文没有答案,我会和大家一起一边更新题目和把自己的答案贴出来,也和大家分享一下 http://oldboy.blog.51cto.com/2561410/1867160
1 企业Shell面试题1:批量生成随机字符文件名案例
使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下:
[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
解答:
题2:批量改名特殊案例
将以上面试题19.1.1中结果文件名中的oldboy字符串全部改成oldgirl(最好用for循环实现),并且将扩展名html全部改成大写。
解答:
题3:批量创建特殊要求用户案例
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机数,要求字符和数字等混合)。
不用for循环的实现思路:http://user.qzone.qq.com/49000448/blog/1422183723
解答:
题目1 答案:
1 #!/bin/bash 2 3 path="/root/oldboy/" 4 random(){ 5 num_random=$(date +%S%N|md5sum|head -c 10) #s=$(echo ${RANDOM}|md5sum|head -c 10)系统自带的 变量也可产生一个0--32767 之间的随机数 6 } 7 if [ -d $path ]; then 8 rm -rf $path 9 echo "$path removed" 10 fi 11 mkdir $path 12 13 for i in {1..10} 14 do 15 16 random 17 str="${path}${num_random}_oldboy.html" 18 19 touch $str 20 done 21 echo "################# Done #################" 22 cd $path 23 ls ~
题目2 答案:
在排序上折腾了好久。我答案的这个方法不太好,但也可以实现。同学们有好方法现实欢迎留言,
1 #!/bin/bash 2 path="/root/oldboy/" 3 cd $path 4 echo "$(pwd)" 5 for i in {1..10} 6 do 7 s=$(ls|sort -r +7 -13|sed -n ${i}p) 8 d=$(ls|sort -r +7 -13 |sed -e 's/oldboy/oldgirl/'|sed -n ${i}p|sed -e 's/html/HTML/g' -e 's/HTML/html/') 9 mv $s $d 10 # mv $(ls |sed -n "${i}p") $(ls |sed 's/oldboy/oldgirl/${i}p'|sed 's/html/HTML/g'|sed 's/HTML/html/'|head -1) 11 done 12 echo "################### Done ######################" 13 ls $path 14 15 ~
题目3:答案
题给出了不用循环的办法,类似:
echo stu{11..12}|xargs -n1 useradd ;echo stu{11..12}:cat /dev/urandom|tr -dc 0-9|fold -w8|head -1
|xargs -n1|tee -a pass.txt|chpasswd
有兴趣的了可以了解下
1 #/bin/bash 2 path="/root/oldboy/" 3 name_start=1 4 name_end=10 # 要创建的数量 5 name="oldboy" 6 i=$name_start 7 echo "" > /root/password.txt 8 while (($i <= $name_end)) 9 do 10 password=$(echo $RANDOM|md5sum|head -c 10) 11 echo $password 12 useradd -s /bin/sh -d /usr/$name$i -m $name$i 13 if [ $? -eq 0 ] 14 15 then 16 echo "账号 $name$i 已增加" 17 echo $password|passwd --stdin $name$i 2 >/dev/null 18 echo "用户: $name$i 密码: $password " >> /root/password.txt 19 echo "用户: $name$i 密码 修改完成!" 20 else 21 echo "账号$name$I增加出错了正在清理遗留文件" 22 userdel $name$i;rm -fr /usr/oldboy*;rm -fr /var/spool/mail/oldboy* 23 fi 24 25 ((i+=1)) 26 done 27 cat /root/password.txt
~
- Shell面试题及企业运维实战练习1
- shell编程--企业面试题
- 解析企业Shell面试题
- Shell 企业29道面试题 [转]
- shell 常见面试题及答案(1)
- 老男孩Shell企业面试题30道 [答案]
- 关于Shell编程的几个典型企业面试题
- linux运维人员必会的22道shell编程面试题及视频讲解
- 企业优秀运维人员20道必会iptables面试题
- 2017年企业运维经典面试题汇总
- 2017年企业运维经典面试题汇总
- 企业面试机试题
- JSP企业面试题
- Js企业面试题
- 总结企业面试题
- .net面试题,各大企业常见的.net面试题及答案(精华)
- android面试题,各大企业常见的android面试题及答案(精华)
- 运维开发工程师 面试题 shell编程
- Struts2 JSP的标准动作<jsp:forward>无法访问Action
- 【转】取模(mod)与取余(rem)的区别——Matlab学习笔记
- sqlyog注册码激活
- 文件和文件夹的操作
- 汇编速查-FPU
- Shell面试题及企业运维实战练习1
- Python处理JSON
- Lua编程笔录--Lua初识及语法六(协同程序)
- wait_timeout和interactive_timeout区别
- log4j 级别(level)
- 安卓文件路径与有关操作
- 第十二周 oj训练 进制转换
- Hbase中内置Filter详解
- CTF考核writeup(1)