第九周作业

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

相关推荐

  • N21天天第十六周课程练习

    1、源码编译安装LNMP架构环境; 一、安装Nginx 1、解决依赖 [root@localhost ~]# yum groupinstall 开发工具 服务器平台开发 -y 2、安装 [root@localhost ~]# tar xf pcre-8.37.…

    Linux干货 2016-12-14
  • 与正则表达式的第一次亲密接触

    Linux文本处理三剑客 grep:文本过滤(模式:psttern)工具 grep,egrep,fgrep (不支持正则表达式搜索) sed:stream editor,文本编辑工具 awk:Linux上的实现gawk,文本报告生成器 下面就先谈一谈:grep及正则表达式;egrep及扩展的正则表达式 grep grep:Goobal search REgu…

    Linux干货 2017-04-06
  • 2016-11-4作业

    1、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项  mkfs.ext4 -b 2048  -L "TEST" -m 1 /dev/sdb6 2、写一个脚本,完成如下功能: (1) 列出当前系统识别到…

    Linux干货 2016-11-06
  • chmod 没有执行权限的解决办法 [转载http://www.fblinux.com/?p=30]

    chmod没有权限,貌似就算是root用户也无法授权,这可咋办?chmod是设置权限的命令,但是自身没有了执行权限,那么就表示没有办法更改其他命令的权限,也没有办法改变自己的权限。 1 2 3 4 [root@localhost ~]# ll /bin/chmod ———-. 1 root root 48712 Oct 15 2014 …

    Linux干货 2017-01-01
  • rsync3.0 (初稿 逐步完善)

    实验环境为 centos 7.2 系统   CentOS Linux release 7.2.1511 (Core)   主机  ip               10.1.250.19 客…

    Linux干货 2016-06-03
  • 【26期】Linux第八周学习小总结

        前言     本周的学习已经过去了,虽然本周学习中老师一直都有说,哎呀,这个不重要,以后有网络管理员给你们来做,了解一下就行,然而话锋一转就又说,其实小公司没有网络管理员,如果你们不好好学,以后就会做得更多更杂的工作,这一周的知识点基本上都是在一个pdf上的,大概有200…

    2017-09-02

评论列表(1条)

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

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