第九周作业

1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别统计这两类用户的个数;通过字符串比较来实现;

   #!/bin/bash

    echo "可登录类型有有$(awk -F: '/[^\<nologin\>]$/{login++}END{print login}' /etc/passwd)个"

    echo "不可登录类型有$(awk -F: '/\<nologin\>$/{nologin++}END{print nologin}' /etc/passwd)个"

2、写一个脚本

    (1) 获取当前主机的主机名,保存于hostname变量中;

    (2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;

    (3) 否则,则显示当前主机名;           

    #!/bin/bash

    #

    hname=`hostname`

    case $hname in

    "www.magedu.com")

            hostname;;

    *)

            hostname www.magedu.com;;

    esac

3、写一个脚本,完成如下功能

    (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;

    (2) 如果存在,则显示此设备上的所有分区信息;

        

    #!/bin/bash

    #

    if [ -b $1 ];then

            fdisk -l $1

    else

            echo "你输入的文件路径不存在"

    fi

~    

4、写一个脚本,完成如下功能

   脚本能够接受一个参数;

   (1) 如果参数1为quit,则显示退出脚本,并执行正常退出;

   (2) 如果参数1为yes,则显示继续执行脚本;

   (3) 否则,参数1为其它任意值,均执行非正常退出;

     

    #!/bin/bash

    #

    f_pro(){

    read -p "请输入一个参数" arg

    if [ $arg == "quit" ];then

            exit 0

    elif [ $arg == "yes" ];then

            f_pro

    fi

    }

    f_pro

5、写一个脚本,完成如下功能

   传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;

   (1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz;

   (2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2;

   (3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz;

   (4) 其它任意值,则显示错误压缩工具,并执行非正常退出;

            

    #!/bin/bash

    #

    #

    if [ $# -lt 1 ];then

            echo "you need a arg"

            exit 1

    fi

    

    if [ ! -d /backups ];then

            mkdir /backups

    fi

    

    

    case $1 in

    "gzip")

            /bin/tar -zcf /backups/etc-20160613.tar.gz /etc

            ;;

    "bzip2")

            /bin/tar -jcf /backups/etc-20160613.tar.bz2 /etc

            ;;

    "xz")

            /bin/tar -Jcf /backups/etc-20160613.tar.xz /etc

            ;;

    *)

            echo "你输入的参数有误!"

            exit 1

            ;;

    esac

~     

    

6、写一个脚本,接受一个路径参数:

   (1) 如果为普通文件,则说明其可被正常访问;

   (2) 如果是目录文件,则说明可对其使用cd命令;

   (3) 如果为符号链接文件,则说明是个访问路径;

   (4) 其它为无法判断;

        

    #!/bin/bash

    #

    #

    if [ -L $1 ];then

            echo "是访问路径"

    elif [ -f $1 ];then

            echo "可以正常访问的文件"

    elif [ -d $1 ];then

            echo "可以对其使用cd命令"

    else

            echo "无法判断"

    fi

7、写一个脚本,取得当前主机的主机名,判断

   (1) 如果主机名为空或为localhost,或为"(none)",则将其命名为mail.magedu.com;

   (2) 否则,显示现有的主机名即可;

    

    #!/bin/bash

    

    hname=`hostname`

    case $hname in

    "locathost")

            /bin/hostname mail.magedu.com

            ;;

    

    "")

            /bin/hostname mail.magedu.com

            ;;

    

    "none")

            /bin/hostname mail.magedu.com

            ;;

    

    

    *)

            /bin/hostname

            ;;

    esac

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

(0)
mr.sprintmr.sprint
上一篇 2017-02-07 22:23
下一篇 2017-02-08 10:29

相关推荐

  • CentOS启动流程及Shell脚本编程练习

    一、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 第一步:POST加电自检 主要实现的功能是检测各个外围硬件设备是否存在而且能够正常运行起来,实现这一自检功能的是固化在主板上的ROM(主要代表为CMOS)芯片上的BIOS(Basic Input/Output System)程序。 第二步:Boot Sequence(选择启动设备以加…

    2017-11-26
  • raid5 阵列

    1 fdisk 分区sdb2,sdd1,sde1, 2  新建raid5 [root@localhost ~]# mdadm -C /dev/md5 -a yes  -l 5  -n 3 -x 1 /dev/sdd1 /dev/sde1  /dev/sdf  /dev/sdb2  3   …

    Linux干货 2017-04-25
  • 如何查看当前系统版本的版本号

    作为一名系统管理员,了解系统版本号是必然。因为不同大版本之间的命令和启动流程等之间有很大的差异;     一、在/etc/system-release 里面查看         ~]#ls -l /etc/system-release &n…

    Linux干货 2016-07-29
  • SElinux管理

                                                      &nbsp…

    系统运维 2016-09-26
  • Linux基础知识(四)-正则表达式grep,egrep

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2016-10-17