Week9’s homework

Week9's homework

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

#!/bin/bash
#
for i in $(cat /etc/passwd | cut -d: -f7);do
    if [ $i == "/sbin/nologin" ];then
        let nologin+=1
    else
        let login+=1
    fi
done
 
echo "nologin:$nologin."
echo "login:$login."

2、写一个脚本
(1) 获取当前主机的主机名,保存于hostname变量中。
(2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为:www.magedu.com
(3) 否则,则显示当前主机名。

#!/bin/bash
#
hostName=$(hostname)
 
if [ ${hostName} == "localhost" ];then
    hostname www.magedu.com
else 
    hostname
fi

3、写一个脚本,完成如下功能
(1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在。
(2) 如果存在,则显示此设备上的所有分区信息。

#!/bin/bash
#
[ $# -ne 1 ] && echo "You should give only one dev file path." && exit 1
 
if [ -b $1 ];then
    fdisk -l $1
else
    echo "The dev file path is not exist."
fi


4、写一个脚本,完成如下功能
脚本能够接受一个参数。
(1) 如果参数1为quit,则显示退出脚本,并执行正常退出。
(2) 如果参数1为yes,则显示继续执行脚本。
(3) 否则,参数1为其它任意值,均执行非正常退出。

#!/bin/bash
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 2
 
case $1 in
quit)
    echo "Normal exit."
    exit 0
    ;;
yes)
    echo "Processing is continued."
    ;;
*)
    echo "Unnormal exit."
    exit 3
    ;;
esac


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
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 1
 
mkdir /backups &>/dev/null
case $1 in
gzip)
    tar -zcf /backups/etc-`date +%Y%m%d`.tar.gz /etc
    ;;
bzip2)
    tar -jcf /backups/etc-`date +%Y%m%d`.tar.bz2 /etc
    ;;
xz)
    tar -Jcf /backups/etc-`date +%Y%m%d`.tar.xz /etc
    ;;
*)
    echo "No such compression tool."
    exit 1
    ;;
esac

6、写一个脚本,接受一个路径参数:
(1) 如果为普通文件,则说明其可被正常访问。
(2) 如果是目录文件,则说明可对其使用cd命令。
(3) 如果为符号链接文件,则说明是个访问路径。
(4) 其它为无法判断。

#!/bin/bash
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 1
 
 
if [ -f $1 ];then
    echo "$1 is a common file,it's accessible."
elif [ -d $1 ];then
    echo "$1 is a directory,you can use cd command."
elif [ -l $1 ];then 
    echo "$1 is a sysbolic link."
else
    echo "$1 is unknown." 
fi

7、写一个脚本,取得当前主机的主机名,判断
(1) 如果主机名为空或为localhost,或为"(none)",则将其命名为mail.magedu.com
(2) 否则,显示现有的主机名即可。

#!/bin/bash
#
name=$(hostname)
 
if [ $name == "localhost" -o $name == " " ];then
    hostname mail.magedu.com
else
    echo $name
fi

8、写一脚本,接受一个用户名为参数。
(1) 如果用户的id号为0,则显示其为管理员。
(2) 如果用户的id号大于0且小于500, 则显示其为系统用户。

#!/binbash
#
[ $# -ne 1 ] && echo "You should give only one parameter." && exit 1
 
if [ $(id -u $1) &>/dev/null -eq 0 ];then
    echo "$1 is system administrator."
elif [ $(id -u $1) &>/dev/null -lt 500 ];then
    echo "$1 is a system user."
fi

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

(0)
N24_lantianN24_lantian
上一篇 2016-12-24 13:26
下一篇 2016-12-24 19:38

相关推荐

  • 任务计划

                          Linux任务计划 一、任务计划     (1)未来的某一个时间点执行一次某任务:at、batch     (2)周期性运行某…

    2017-05-14
  • shell脚本之变量、运算、条件测试。

    概述 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指令; 编程语言: 低级:             汇编 高级:…

    Linux干货 2016-08-15
  • nginx+varnish+httpd小试牛刀

    简介: Varnish 是一款高性能且开源的反向代理服务器和 HTTP 加速器,其采用全新的软件体系机构,和现在的硬件体系紧密配合,与传统的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等诸多优点; 此次试验的目的是让Nginx做前端访问负载均衡,varnish代理后端的web服务器,并缓存结果 1.准备机器,做好时间同步,主机名解…

    Linux干货 2017-06-27
  • yum安装报错

    我的系统是centos 6.8 x86 安装bind时出错如下: [root@Ams ~]# yum install bind -y Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from…

    Linux干货 2016-08-02
  • n25第二周

    linux文件管理类命令     mkdir,rmdir,cp,mv,rm,chwon,chmod     1.mkdir->make directories(创建目录)     用法:    &nbsp…

    Linux干货 2016-12-11
  • 马哥教育网络班22期+第7周课程练习 忍者乱太郎喻成

    第七周 1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    我个人比较喜欢使用交互式的分区工具fdisk    我以fdisk为例: &n…

    Linux干货 2016-11-21

评论列表(1条)

  • 马哥教育
    马哥教育 2017-01-04 16:15

    写的很棒,看得出来下了很大的功夫,可以作为范文来展示,希望可以再接再厉