第九周作业

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

# awk -F: ‘{if($7!=”/sbin/nologin”) {printf “Logined user %s\n”,$1} else {printf “Nolginged user %s\n”,$1}}’ /etc/passwd | sort -t ‘ ‘ -k 1 | cut -d’ ‘ -f1-2 | uniq -c
2. 写一个脚本
   (1) 获取当前主机的主机名,保存于hostname变量中;
   (2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
   (3) 否则,则显示当前主机名;
#!/bin/bash
#
hostname=$(hostname)
if [[ $(echo “$hostname”) =~ ^localhost ]];then
        echo “$hostname”
        sed -i s@^localhost.*@www.magedu.com@ /etc/hostname
        cat /etc/hostname
else
        echo “$hostname”
fi
3. 写一个脚本,完成如下功能
   (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;
   (2) 如果存在,则显示此设备上的所有分区信息;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least one device name.” && exit 1
if [ $1 == $(fdisk -l | grep -E -o “^Disk /dev/(sd|hd)[a-z]” | cut -d’ ‘ -f2) ];then
        echo -e “The device is existed, and the device disk partition is here:\n$(fdisk -l $1)”
else
        echo “The device is not existed.”
fi
4、写一个脚本,完成如下功能
   脚本能够接受一个参数;
   (1) 如果参数1为quit,则显示退出脚本,并执行正常退出;
   (2) 如果参数1为yes,则显示继续执行脚本;
   (3) 否则,参数1为其它任意值,均执行非正常退出;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least on device name.” && exit 1
if [ $1 == $(fdisk -l | grep -E -o “^Disk /dev/(sd|hd)[a-z]” | cut -d’ ‘ -f2) ];then
        echo -e “The device is existed, and the device disk partition is here:\n$(fdisk -l $1)”
else
        echo “The device is not existed.”
fi
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;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least one name.” && exit 1
case $1 in
gzip)
        tar -zcf /backups/etc-$(date +%Y%m%d).tar.gz /root/testdb &> /dev/null
        echo “Gzip backup has finished.”
        ;;
bzip2)
        tar -jcf /backups/etc-$(date +%Y%m%d).tar.bz2 /root/testdb &> /dev/null
        echo “Bzip2 backup has finished.”
        ;;
xz)
        tar -Jcf /backups/etc-$(date +%Y%m%d).tar.xz /root/testdb &> /dev/null
        echo “Xz backup has finished.”
        ;;
*)
        echo “Error, please input gzip, bzip or xz.”
        exit 2
        ;;
esac
6. 写一个脚本,接受一个路径参数:
   (1) 如果为普通文件,则说明其可被正常访问;
   (2) 如果是目录文件,则说明可对其使用cd命令;
   (3) 如果为符号链接文件,则说明是个访问路径;
   (4) 其它为无法判断;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least one path name.” && exit 1
if [ -L $1  ];then
        echo “It’s a chain.”
        ls -l $1
elif [ -f $1  ];then
        echo “It’s a file.”
        ls -l $1
elif [ -d $1 ];then
        echo “It’s a directory.”
        cd $1 && pwd
else
        echo “Can’t determinate it.”
fi

7. 写一个脚本,取得当前主机的主机名,判断
   (1) 如果主机名为空或为localhost,或为”(none)”,则将其命名为mail.magedu.com;
   (2) 否则,显示现有的主机名即可;
#!/bin/bash
#
echo “The original hostname is $(hostname).”
if [[ $(hostname) =~ ^localhost ]];then
        sed -i s@^localhost.*@mail.magedu.com@ /etc/hostname
elif [[ $(hostname) =~ ^$ ]];then
        echo “mail.magedu.com” > /etc/hosname
elif [[ $(hostname) =~ “none” ]];then
        sed -i s@.*none.*@mail.magedu.com@ /etc/hostname    
        echo “$hostname”
else
        echo “Hostname isn’t changed. The hostname is $(hostname)”
fi
echo “The current hostname is $(cat /etc/hostname).”

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

(1)
allenallen
上一篇 2017-03-01
下一篇 2017-03-01

相关推荐

  • grep用法

    一、前言 grep是功能强大的文本处理工具,全称:global search regular expression and print out the line,grep一行一行使用正则表达式匹配文本,之后对匹配到的文本整行显示(除非使用特定的选项取反,如 grep -v)。 二、grep用法 grep命令用法:    &nbs…

    Linux干货 2015-08-24
  • Linux终端类型

    Linux终端类型 Linux系统中的终端基本都在/dev目录下,可分为文本命令行模式和图形界面模式。命令行模式是一种字符设备,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机,是由Teletype公司生产的。 1、 物理终端 在Unix系统中,计算机显示器通常被称为控制台终端。…

    Linux干货 2016-10-14
  • redis + keepalived 双主模型

    redis + keepalived 双主模型 架构图:    1.vip默认绑定在redis主上,由redis主提供服务,redis从为备用节点。(实际上提供服务的只是vip) 2.当redis主挂掉,vip会默认漂移至redis从。由redis从提供服务,redis主已经挂掉。 3.当redis主已经恢复,redis从继续提供服务和挂…

    Linux干货 2016-06-23
  • 磁盘管理

    1、拿到一块硬盘,通常来讲,第一步是分区,然后是文件系统的创建,管理文件系统,第三步是挂载设备。 2、linux(准确的说是UNIX)哲学,whindows一切皆窗口,一切皆图形。 3、磁盘是一个硬件设备,存放在/dev/目录下,会有相应的文件来对应的表示这些设备文件,在这个目录下存放的全是设备。 4、在/dev目录下和设备相关的有两种,一种是c开头为字符,…

    Linux干货 2017-04-22
  • 深入Php底层,用c为php编写拓展

    1.前言              随着lamp/lnmp架构的流行,Php语言越来越得到广泛的使用。php语言在表现层有着非常优异的表现,部署方便,开发迅速。但Php语言也有着天生短板以及局限性—-对多线程以及多进程的支持不甚如意,以及…

    Linux干货 2016-10-29
  • N22-第五周作业-冥界之王

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;    [root@CentOS6 ~]# cat /boot/grub/grub.conf | grep -E  "^[[:space:]]{1,}"…

    Linux干货 2016-09-19

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-15 01:09

    改hostname的那个步骤如果文件不存在呢~~~继续加油!