N25第九周博客作业

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

#!/bin/sh

lg=0

nlg=0

while read line;do

  if [[ “${line}” =~
“/sbin/nologin” ]];then

    let nlg++

  else

    let lg++

  fi

done < /etc/passwd

echo “可登录用户为${lg}

       echo “不可登陆的用户为${nlg}

 

执行结果:

[root@www ~]# sh bash.sh

可登录用户为8

不可登陆的用户为24

[root@www ~]#

 

 

2、写一个脚本

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

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

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

#!/bin/sh

hostName=`hostname`

if [[ “$hostName” ==
“localhost” ]];then

     hostnamectl set-hostname www.magedu.com

 else

      hostname

fi

 

 

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

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

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

#!/bin/sh

[ $# -ne 1 ]&&echo
“only one Disk path!!”&&exit 1

if [ -b $1 ];then

   fdisk -l $1

else

   echo “is not find!!”

   exit 2

fi

 

 

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

   脚本能够接受一个参数;

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

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

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

#!/bin/sh

if [[ “$1” == “quit” ]];then

   echo
退出脚本,并执行正常退出。

   exit 0

elif [[ “$1” == “yes”
]];then

   echo
继续执行脚本

else

   echo
输入错误,非正常退出!!

   exit 2

fi

 

 

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

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

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

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

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

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

#!/bin/sh

[[ “$1” == “gzip” ]]||[[
“$1” == “xz” ]]||[[ “$1” == “bzip2”
]]||echo “please input ‘gzip’ or ‘xz’ or ‘bzip2’!!”||exit 1

[ ! -e 
/backups ]&&mkdir /backups

if [[ “$1” == “gzip” ]];then

 tar zcvf
/backups/etc-`date “+%Y%m%d”`.tar.gz 
/etc/*

elif [[ “$1” == “bzip2”
]];then

 tar jcvf
/backups/etc-`date “+%Y%m%d”`.tar.bz2 
/etc/*

elif [[ “$1” == “xz” ]];then

 tar Jcvf
/backups/etc-`date “+%Y%m%d”`.tar.xz 
/etc/*

else

 echo
“Error compression tool
!!

 exit 2

fi

 

 

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

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

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

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

   (4) 其它为无法判断;

#!/bin/sh

[ $# -ne 1 ]&&echo “only need one
path!!”&&exit 1

if [ -f 
$1 ];then

 echo
“is file, It can be accessed!”

elif [ -d $1 ];then

 echo
“is dir,  you can use the
‘cd’command!!”

elif [ -h $1 ];then

 echo
“is link,It is an access path!”

else

  echo
“Cannot judge!!”

fi

 

 

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

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

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

#!/bin/sh

hostName=`hostname`

if [ -z   “$hostName” ];then

    hostnamectl set-hostname mail.magedu.com

elif [  “$hostName” == “localhost” ];then

    hostnamectl set-hostname mail.magedu.com

else

   hostname

fi

~  

原创文章,作者:N25_韩奇洋,如若转载,请注明出处:http://www.178linux.com/70584

(0)
N25_韩奇洋N25_韩奇洋
上一篇 2017-03-06
下一篇 2017-03-06

相关推荐

  • HAProxy 入门及基础负载应用

    A、首介 。。。         HAProxy——开放源代码软件,是一款代理服务器和伪4层的负载均衡软件解决方案。基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持高并发链接,它的工作模式可以将其简单而安全地整合到当前的服务架构中,同时可以保护你的WEB服务器不暴露到…

    Linux干货 2017-05-17
  • 网络管理、进程管理、计划任务及启动流程

          网络管理 一.网卡模块操作步骤: 查询网卡模块类型:ethtool  -i  eth1 查询网卡模块lsmod |grep e1000 删除网卡模块rmmod e1000  或者modprobe  -r  e1000 添加网卡模块 modprobe e1000 删除模…

    Linux干货 2016-09-08
  • 硬链接与软链接的区别

    硬链接与软连接                本文仅用于个人学习参考:         简单介绍了硬链接与软连接的区别。  &nb…

    Linux干货 2016-10-20
  • N25第1周作业

    1.计算机的组成及功能 地址:博客园http://www.cnblogs.com/qingyangzi/p/6133274.html 2.linux主要的发行版及其区别和联系 地址:博客园http://www.cnblogs.com/qingyangzi/p/6135801.html 3.linux哲学思想 地址:博客园http://www.cnblogs.…

    Linux干货 2016-12-05
  • awk入门应用

    awk概述使用语法常用命令选项相关输出命令print item1,item2,…printf FORMAT,item1,item2,….相关格式符相关修饰符相关内建变量相关内置函数相关操作符相关模式相关控制语句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干货 2016-12-04
  • Nginx之ngx_http_fastcgi_module模块详解

    一、ngx_http_fastcgi_module模块:       nginx支持FastCGI模式       CGI:Common GateWay Interface 公共网管接口,可以理解其为HTTP服务器与其他主机上运行的程序进行通信的接口。       CG…

    2017-06-25

评论列表(2条)

  • JL
    JL 2017-03-09 17:54

    亲, 我在做第三题的时候遇到了问题, 上博客看看大家是怎么写的.我看到你写的这个了. 使用 [ -b $1 ]来判断参数是否为块设备没有问题, 但是[ -b $1 ]并不能避免输入的是内存设备或者是回环设备. 例如你可以试试 将ram#或者loop#来作为参数,也是可以通过的.

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

    建议使用markdown来格式化~加油~