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 09:28
下一篇 2017-03-06 17:23

相关推荐

  • N26_第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理命令:cp,mv,rm 1、cp命令 功能说明:复制copy语法格式:        单源复制:  cp [OPTION]… [-T] SOURCE DEST  …

    Linux干货 2017-02-21
  • 第五周作业

    1. 显示当前系统上root、fedora或user1用户的默认shell; grep -E "^(root|centos|user1)\>" /etc/passwd 或 awk -F: '{if($1=="root" || $1==…

    Linux干货 2017-01-10
  • linux入门第二课

    **linux入门基础** linux 命令类别 内部命令和外部命令 首先我们可以用echo $SHELL 来查询shell 里面会显示我们当前在用的shell 上图是echo $SHELL 也可以用cat /etc/shells来查询系统里面的shell bash其实是一个文件是一个程序 存在于 /bin/bash 目录,这是真是存在的文件,是一个可以执行…

    Linux干货 2017-05-20
  • 制作python模块安装包[原创]

     python的第三方模块越来越丰富,涉及的领域也非常广,如科学计算、图片处理、web应用、GUI开发等。当然也可以将自己写的模块进行打包或发布。一简单的方法是将你的类包直接copy到python的lib目录,但此方式不便于管理与维护,存在多个python版本时会非常混乱。现介绍如何编写setup.py来对一个简单的python模块进行打包。 一、…

    Linux干货 2015-03-27
  • N25第五周总结:程序包管理

    程序包管理:rpm、yum、编译详解 rpm详解: 一:大纲        1、什么是rpm        2、为什么要使用rpm        3、rpm能实现什么功能 &nbs…

    Linux干货 2017-01-10
  • 组建RAID5重启系统,出现md127的解决办法

        我这里在组建RAID5之后重启了系统,当时/dev/md0变成了/dev/md127。出现这问题主要是我没有配置生成/etc/mdadm.conf文件,如果哪位伙伴出现类似我这种情况,而不是通过我这种方法解决的,希望能分享一下你的解决方法,谢谢。  先停止md127 [root@client3&nbs…

    Linux干货 2016-01-05

评论列表(2条)

  • JL
    JL 2017-03-09 17:54

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

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

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