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

相关推荐

  • 17周博客作业 LVS+nginx+php(nginx与php分离)

    1、结合图形描述LVS的工作原理; LVS是一种用软件实现的LB集群; 作用于传输层; LVS工作原理:通过Director调度把用户请求按照分配算法分配给后端的Real server,然后由后端Real server响应客户请求; lvs模式分为三种。 lvs-nat: 多目标的DNAT:通过将请求报文的目标地址和目标端口修改为挑选出某…

    Linux干货 2016-11-07
  • bash基础特性及用户与组管理

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当做其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxuser.txt文件中。 5、取出当前主机的I…

    2017-09-29
  • yum命令用法及源码的编译

     一:yum 何为yum? yum是rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,是up2date 的替代工具。 1.命令格式:     yum [options] [command] [package …] 2.yum客户端配置文件: 公共配置文件:/etc/yum.conf   &…

    Linux干货 2017-08-19
  • DHCP简单阐述及配置实现方法

    DHCP是什么…… DHCP是Dynamic Host Configuration Protocol的缩写,它是TCP/IP协议簇中的一种,主要是用来给网络客户机分配动态的IP地址。 其主要功能是: 用于内部网络或网络服务供应商自动分配IP地址给用户 用于内部网络管理员作为对所有电脑作中央管理的手段 直接点就是,这些被…

    Linux干货 2016-12-05
  • 简明 Vim 练级攻略

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。 ——————————正文开始—————————— …

    Linux干货 2015-04-04
  • 文件系统权限管理

    文件系统权限管理 文件及目录权限 文件系统上的权限是针对访问者的 访问者:     owner:属主,u     group:属组,g     other:其他,o 针对每个访问者有三种权限 r:readable w:writeable x…

    Linux干货 2016-11-05

评论列表(2条)

  • JL
    JL 2017-03-09 17:54

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

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

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