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

相关推荐

  • N29第一周作业:初识Linux系统

    1、描述计算机的组成及其功能。
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    2018-03-04
  • 如何在微软Azure云机上添加新磁盘

    大家好: 最近在项目实践中,分享下如何在微软Azure云机上添加新磁盘。 首先需要查看下是否有未用上的磁盘,先fdisk -l查(看下图)并和Azure技术确认该磁盘是否可永久保存数据: 然后找到未分区的磁盘号,如上图中的/dev/sdc,再 fdisk /dev/sdc后开始在该新磁盘上进行分区创建: 为方便管理,我们一般就创建一个分区,然后进行格式化: …

    Linux干货 2016-11-27
  • N26-第三周博客作业

    1、  列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 命令:who | cut -d' ' -f1 | sort –u 涉及知识点: l  who命令 作用:查看当前所有的登录会话 l  cut命令 作用:将文本内容按照指定内容分割,然后取出指定字段。 常用选项: &…

    Linux干货 2017-02-10
  • day5总结笔记

    本文内容: 索引节点 硬链接与软链接 重定向 用户组 useradd命令 索引节点: 索引节点包含了一个表,包含了有关文件的元数据,包含:     文件类型,权限,UID,GID 链接数(指向这个文件名路径名称个数)      该文件的大小和不同的时间戳。&n…

    系统运维 2016-08-08
  • 创建及管理KVM工具之virsh

    一、什么是虚拟化 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。 二、虚拟化能做什么 CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 三、虚拟化…

    Linux干货 2017-01-19
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。  cp复制,mv移动,rm删除     1、cp:             1,用法:      &n…

    Linux干货 2016-07-04

评论列表(1条)

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

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