马哥教育网络班21期-第三周课程练习

STOP WISHING

START DOING

                                                                                                             —- WEEKLY PLAN


小僧最近已经学习到bash脚本编程,手痒难耐。就偷懒以脚本形式完成作业吧。近期工作异常繁忙,较多灵异问题难以解决。烦……

BeJing 的同学说好的周末聚聚,居然至今无人响应。你们这群骗子,坏人。


1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
2、取出最后登录到当前系统的用户的相关信息。
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
7、显示/var目录下一级子目录或文件的总个数。
8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
   (1)、创建组distro,其GID为2016;
   (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
   (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
   (4)、给用户mageia添加密码,密码为mageedu;
   (5)、删除mandriva,但保留其家目录;
   (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
   (7)、修改slackware的默认shell为/bin/tcsh;
   (8)、为用户slackware新增附加组admins;
   (9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
   (10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;
   (11)、添加系统用户mysql,要求其shell为/sbin/nologin;
   (12)、使用echo命令,非交互式为openstack添加密码。


Script 

#!/bin/bash
# 
# 博客作业:第3周
# 2016-07-16
# 勇爷出品,如有类似,纯属扯蛋
#
while true
echo
read -p " 输入要查看的题目:(1 - 10): " num
echo 
echo -e " 结束快捷键 Ctrl+C "
echo 
do
	if [ -z $num ]; then
		echo "输入数字你不会吗?"
	elif [ $num = 1 ]; then
		echo -n -e "\e[1;31m 当前登录用户:\e[0m"
		echo `who | cut -d" " -f1  | uniq`
	elif [ $num = 2 ]; then
		echo -n -e "\e[1;31m 最后登录用户:\e[0m"
		echo `last | grep -v still | head -n 1 | cut -d" " -f1`
		echo -n -e "\e[1;31m 用户信息:\e[0m"	
		id $(last | grep -v still | head -n 1 | cut -d" " -f1)
	elif [ $num = 3 ]; then
		echo -n -e "\e[1;31m 当前系统默认shell最多的是:\e[0m"
		grep sh$ /etc/passwd | cut -d: -f7 | uniq -c | sort -r | head -1
	elif [ $num = 4 ]; then
		sort -n -t: -k3 /etc/passwd | tail | tr "a-z" "A-Z" >> /tmp/maxusers.txt
		echo -e "\e[1;31m 请看结果:\e[0m"
		cat /tmp/maxusers.txt
	elif [ $num = 5 ]; then
		echo -n -e "\e[1;31m 当前主机IP地址:\e[0m"
		ifconfig | grep -o "\(\<[0-9]\{1,3\}\>[.]\)\{3\}\<[0-9]\{1,3\}" | head -1
	elif [ $num = 6 ]; then
		ls /etc/*.conf | tr "a-z" "A-Z" > /tmp/etc.conf
		echo -n -e "\e[1;31m 请看结果:\e[0m"
		cat /tmp/etc.conf
	elif [ $num = 7 ]; then
		echo -e "\e[1;31m var目录下一级子目录:\e[0m"
		ls -l /var/ | grep ^d 
		echo -n -e "\e[1;31m var目录下文件总个数:\e[0m"
		find /var -type f | wc -l
	elif [ $num = 8 ]; then
		echo -e "\e[1;31m 请看结果:\e[0m"
		cat /etc/group | sort -t: -k3 -n | head | cut -d: -f1
	elif [ $num = 9 ]; then
		cat /etc/{fstab,issue} > /tmp/etc.test
		echo -e "\e[1;31m 请看结果:\e[0m"
		cat /tmp/etc.test
	elif [ $num = 10 ]; then
		groupadd -g 2016 distro
		useradd -u 1005 -g distro mandriva
		useradd -u 1100 -d /home/linux mageia
		echo "mageedu" | passwd --stdin mageia &>/dev/null
		userdel mandiriva
		useradd -u 2002 -g distro -G peguin slackware
		chsh slackware -s /bin/tcsh &>/dev/null
		groupadd admins && usermod -G admins slackware -a slackware
		echo "mageedu" | passwd --stdin slackware && chage -m3 -M180 -W 3 loongson &>/dev/null
		useradd -u 3003 -g clouds -G peguin -G nova openstack
		useradd -s /sbin/nologin mysql
		echo "mageedu" | passwd --stdin openstack &>/dev/null
	fi
done


THE END

.

.

.

原创文章,作者:勇爷,如若转载,请注明出处:http://www.178linux.com/24045

(0)
勇爷勇爷
上一篇 2016-07-16 22:28
下一篇 2016-07-16 22:29

相关推荐

  • lvs实践(lvs+nginx+mariadb+php—fpm+nfs搭建wordpress)

    lvs实践(lvs+nginx+mariadb+php—fpm+nfs搭建wordpress)   lvs实践(lvs+nginx+mariadb+php—fpm+nfs搭建wordpress) lvs_dr模型 nginx mariadb php-fpm wordpress   lvs实践(lvs+nginx+mariadb+php—f…

    2017-01-03
  • LAMP分离环境的搭建(最新版本的mysql+php+http源码编译安装)

    实验者:FrankStar      实验日期:20150628 任务:主要是实现在Linux环境下配置LAMP环境,利用VMware+centos6.4实现,将LAMP分离为多台主机; 附注:由于大家的环境不一样,可能有些人已经安装了这个包或者那个软件,所以调试的环境结果也不一样,为了尽量能模拟到 可能出现的所有问题,在编译会…

    Linux干货 2015-06-30
  • 如何在微软云上搭建mysql主从

    大家好: 今天我分享下在生产环境的微软云服务器上如何搭建mysql主从: 环境如下图: 我把cnux06-testing设为Mysql主服务器,暂时没需求的cnux04-web1db2设为Mysql从服务器 1–首先要在master上开启binlog日志功能并使主从库中的 server-id保持不同 操作步骤如下: A: 先查看mysql的主目录…

    Linux干货 2017-02-14
  • man使用手册

    Linux下man的各章节使用介绍        1 – commands     2 – system calls     3 – library calls  &nbsp…

    Linux干货 2016-10-18
  • PHP异常处理详解

    PHP异常处理详解          异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。   异常处理通常是防止未知错误产生所采取的处理措施。异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。当异常被触发时,通常会发生:&…

    Linux干货 2015-06-02
  • 关于取路径名与基名的探讨和扩展-20160806

                          关于取路径名与基名的探讨和扩展     这两天学习grep  ,   egrep  ,  sed  &nb…

    Linux干货 2016-08-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-16 22:40

    可以啊,勇爷,写的很好,非常棒,加油