linux实战面试题

学人智库 时间:2018-02-08 我要投稿
【www.unjs.com - 学人智库】

  老男孩教育第五关实战考试题:批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell的循环(例如:for,while等),只能用linux命令及管道实现。

  参考解答:

  [root@oldboy /]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|passwd --stdin \1; echo -e "\1 \t `echo "$pass"`">>/tmp/oldboy.log#g'|bash

  上述命令实际就是再拼N条下面的命令的组合,举一条命令stu01用户的过程拆解如下:

  useradd stu01 ;

  pass=$((RANDOM+10000000));

  echo "$pass"|passwd --stdin stu01;

  echo -e "stu01 `echo "$pass"`">>/tmp/oldboy.log

  特别说明:如果用shell循环结构会更简单,之所以限制使用循环的目的是锻炼学生的基础命令运用

  能力,学到现在还没学到SHELL循环课程呢

  此题无法自己实现的同学都属于命令基础不过关,需要加足马力下功夫。

  老男孩老师说:基础不牢,地动山摇!

  看了书本、视频,觉得会了,那不叫会,能够运用学习的知识,解决实际的问题,才是真正的会了,这也是检验自己学习的效果的最佳方法!

https://www.unjs.com/