Net25-第9周作业

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

#!/bin/bash
for line in `cat /etc/passwd`;do
    if [[ `echo $line | awk -F: '{print $7}'` == '/sbin/nologin' ]];then
        n=$[++n]
    else
        s=$[++s]
    fi
done
echo "shell is /sbin/nologin    $n"
echo "shell is not /sbin/nologin   $s"

2、写一个脚本

  • (1) 获取当前主机的主机名,保存于hostname变量中;
  • (2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
  • (3) 否则,则显示当前主机名;
#!/bin/bash
hostname=`hostname`
if [[ ${hostname} == 'localhost' ]];then
    hostname www.magedu.com
    sed -i  's@\(^HOSTNAME=\).*/\1www.magedu.com/g' /etc/sysconfig/network
    hostname
else
    echo ${hostname}
fi

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

  • (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;
  • (2) 如果存在,则显示此设备上的所有分区信息;
#!/bin/bash
check_parm(){
    if [ $# -lt 1 ];then
        echo "at least one disk file"
        exit 1
    fi
}

show_patitions(){
    for disk in "$@";do
        if [ -b ${disk} ];then
            fdisk -l ${disk}
        else
            echo "no such ${disk} disk!"
        fi
    done
}

check_parm "$@"
show_patitions "$@"

4、写一个脚本,完成如下功能
脚本能够接受一个参数;

  • (1) 如果参数1为quit,则显示退出脚本,并执行正常退出;
  • (2) 如果参数1为yes,则显示继续执行脚本;
  • (3) 否则,参数1为其它任意值,均执行非正常退出;
while true;do
    read -p "please choose(yes|no|quit):" parm
    case $parm in
    quit)
        echo "bye!"
        exit 
        ;;
    yes)
        continue
        ;;
    *)
        exit 2
    esac
done

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 "at least one parm..."
    exit 1
fi

mkdir -p /backups

case $1 in 
 gzip)
      tar -czf /backups/etc-`date +%F`.tar.gz /etc
      ;;
bzip2)
      tar -cjf /backups/etc-`date +%F`.tar.bz2 /etc
      ;;
xz)
     tar -Jcf /backups/etc-`date +%F`.tar.xz /etc
     ;;
*)
     echo "error compress tools"
     exit 2
     ;;
esac

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

  • (1) 如果为普通文件,则说明其可被正常访问;
  • (2) 如果是目录文件,则说明可对其使用cd命令;
  • (3) 如果为符号链接文件,则说明是个访问路径;
  • (4) 其它为无法判断;
#!/bin/bash
if [ $# -lt 1 ];then
    echo "at least one parm..."
    exit 1
fi

if [ -f $1 ];then
    echo "$1 能被正常访问"
elif [ -d $1 ];then
    echo "$1 可以使用cd命令"
elif [ -l $1 ];then
    echo "$1 是个访问路径"
else
    echo "无法判断"
fi

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

(0)
N25_随心N25_随心
上一篇 2017-03-15 19:09
下一篇 2017-03-15 19:09

相关推荐

  • 文件管理类命令常用使用方法及其相关示例演示

    文件管理类命令常用使用方法及其相关示例演示 cat chattr chmod chown cp ln locate lsattr mv rm tee touch umask whereis which 文件管理类命令常用使用方法及其相关示例演示 cat 使用语法:cat [-AbeEnstTuv][–help][–version] FILENAME&nb…

    Linux干货 2016-11-05
  • 基础命令

    1,对于Linux的实验环境我们要用到虚拟机,往往每次上线都要登录,这时候如果把用户设为自动登录就会方便许多,接下来就介绍下设置虚拟机的自动登录 , /etc/gdm/custom.conf 这个就是设置自动登录的一个配置文件,我们先来使用nano打开这个文件,如下 # GDM configuration storage 这是GDM的一个配置存储 [daem…

    2017-11-19
  • 马哥Linux第三周作业

    正则表达式 用户和组管理

    Linux干货 2017-12-31
  • M25开篇”如何学习Linux”

    首先有幸参加马哥linux运维工程师培训,在接下来的四个半月里如何学好linux,首先得了解什么是linux? 在开班前对linux的初步了解中知道linux是免费、开源、拥有广泛而开放的linux社区的一款服务器操作系统,比较于windows和linux的用处都各有特点。 windows的用户体验众人皆知,作为一款亲民友善的系统,没有学习成本,甚至学龄前童…

    2017-07-11
  • Keepalives+lvs实现高可用httpd的双主模型

    基础环境:Centos 7.3 最小化安装四台 关闭防火墙及selinux 简单原理: keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouter Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个mas…

    2017-05-15
  • DNS以及bind使用

    DNS以及域名分发布式数据库相关知识      一、 DNS相关介绍           1. DNS(Domain Name Service):域名解析服务协议         &nbsp…

    2015-03-17

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-29 17:14

    不错,连脚本函数都已经用的很熟练了。