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

相关推荐

  • corosync + pacemaker + iscsi实现高可用mysql (下)

    上一篇讲的安装配置iscsi,本章介绍mariadb安装以及高可用的mysql具体实现 一、安装配置mariadb [root@SQL1 ~]# tar xf mariadb-5.5.36-linux-x86_64.tar.gz  -C /usr/local \\解压软件包 [r…

    Linux干货 2015-07-09
  • 磁盘管理

    回顾 {a..f} a b c d e f ]# arr=({a..z}) ]# echo ${#arr[*]} 26 ]# N1=N2 ]# N2=zhuchaoming ]# echo ${!N1} eval N1=\$$N2 echo $N1 创建临时文件 mktemp NAME.XXX 交互式登录 /etc/profile –> /…

    Linux干货 2016-09-07
  • Linux防火墙之基本原理

    本系列文章主要讲述Linux防火墙的基本原理和基础使用方法: 1.什么是防火墙: 当我们把计算机连入互联网与其他计算机进行通信时,这无疑也将自己的信息暴露了,那就意味着可能会有一些心怀不轨的人会利用这些信息来攻击自己的主机,尤其是作为一台服务器向互联网用户提供服务时,就迫切需要一种隔离和保护机制,来隔离外部网络,达到保护自我的目的。而这种隔离机制就叫做防火墙…

    Linux干货 2016-12-27
  • 重定向

    Linux下定义了三种I/O设备: 标准输入(STDIN):用0表示,默认的标准输入设备是键盘; 标准输出(STDOUT):用1表示,默认的标准输出设备是当前终端; 标准错误(STDERR):用2表示,默认的标准错误输出设备是当前终端; I/O重定向即改变默认的位置 1 标准输出重定向 (1)将标准输出重定向到其他终端 /dev/pts/1代表伪终端1,在伪…

    Linux干货 2017-07-31
  • 笔记

    命令 命令列表 alias 别名 bc 计算器 basename文件基本名 cp 复制 cd 进入文件夹 cat /proc/partition 查看硬盘的使用情况 cat /proc/meminfo 查看内存的使用情况 chvt 切换终端 chown改变文件的所属组 edj:chown -R www /etc/host clock 查询或设置硬件时间 ch…

    Linux干货 2017-05-25
  • N22—第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# grep -E "^(root|fedora|user1)"  /etc/passwd |cut -d : -f 1,7 root:/bin/bash fedora:/bin/bash user1:/bin/bas…

    Linux干货 2016-09-11

评论列表(2条)

  • JL
    JL 2017-03-09 17:54

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

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

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