N25第8周作业

1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
     在线的主机使用绿色显示;

     不在线的主使用红色显示;

#!/bin/bash
ipnet=172.20.51.
trap 'trap_action' INT
trap_action() {
break
return 1
}

for ((i=1;i<=50;i++));do
        ping -c 1 -W 1 ${ipnet}${i} &> /dev/null && echo -en "\033[32m ${ipnet}${i} \033[0m\n" || echo -en "\033[31m ${ipnet}${i} \033[0m\n"
done

2、如何给网络接口配置多个地址,有哪些方式?

]# ip addr add 172.20.219.51/24 label eth0:2 dev eth0
]# ifconfig eth0:1 172.20.219.51 netmask 255.255.255.0 up

3、写一个脚本,完成以下功能
   (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
   (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
   (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

   (4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
s=0
k=0
for i in `ls /etc/rc.d/rc3.d/*`;do
        case $i in
        /etc/rc.d/rc3.d/S*)
                echo ${i##*/}stop && let s++;;
        /etc/rc.d/rc3.d/K*)
                echo ${i##*/}start && let k++;;
        esac
done
echo -en "以K开头的文件个数为:${k}\n"
echo -en "以S开头的文件个数为:${s}\n"

4、写一个脚本,完成以下功能
   (1) 脚本能接受用户名作为参数;

   (2) 计算此些用户的ID之和;

#!/bin/bash
sum=0
declare -a userid
for i in $(seq 1 $#);do
        userid[$i]=$(id -u $1 2>/dev/null)
                if [ -z ${userid[$i]} ];then
                        echo -en "$1不存在\n"
                        shift
                else
                        let sum+=${userid[$i]}
                        shift
                fi
done
echo -en "用户id之和为:${sum}\n"

5、写一个脚本
   (1) 传递一些目录给此脚本;
   (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

   (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bashsumdir=0sumfile=0trap 'trap_action' INTtrap_action() {echo -en "总共包含的目录数:${sumdir}\n"echo -en "总共显示的文件数:${sumfile}\n"exit 2}f_type() {local jlocal j_pathif [ ! -d $1 ];then    echo -en "${1}该参数不是目录!\n"    shift    continueelse    for j in $(ls $1);do        j_path=${1}/${j}        [ -d $j_path ] && let sumdir++ && f_type $j_path        [ -f $j_path ] && let sumfile++        file $j_path     donefi}for i in $(seq 1 $#);do    f_type $1    shiftdoneecho -en "总共包含的目录数:${sumdir}\n"echo -en "总共显示的文件数:${sumfile}\n"

6、写一个脚本
  通过命令行传递一个参数给脚本,参数为用户名

  如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
for i in $(seq 1 $#);do
        userid[$i]=$(id -u $1 2>/dev/null)
                if [ -z ${userid[$i]} ];then
                        echo -en "${1}该用户不存在!\n" && shift && continue
                elif [ ${userid[$i]} -lt 500 ];then
                        echo -en "${1}该用户为系统用户\n" && shift && continue
                else
                        echo -en "${1}该用户为普通用户\n" && shift
                fi
done

7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

#!/bin/bash
netip=172.16.250.
trap 'trap_action' INT
trap_action () {
break
return 2
}

for ((i=20;i<=100;i++));do
        ping -c 1 -W 1 ${netip}$i &> /dev/null && echo ${netip}$i
done

8、打印九九乘法表;

#!/bin/bash
for i in {1..9};do
        for j in $(seq 1 $i);do
                echo -en "${j}x${i}=$[$j*$i]\t"
        done
        echo
done

原创文章,作者:N25_Nva,如若转载,请注明出处:http://www.178linux.com/69781

赞 (0)
N25_NvaN25_Nva
上一篇 2017-02-22 10:50
下一篇 2017-02-22 14:45

相关推荐

  • CentOS 6系统启动流程

    Linux系统的组成 内核+根文件系统 内核功能:     进程管理、内存管理、文件系统管理、网络管理、安全功能、驱动程序 运行中的系统环境可分为两层:内核空间、用户空间     用户空间:应用程序(进程或线程)     内核空间:内核代码…

    Linux干货 2016-09-15
  • dd命令详解及实战应用

    dd简述 dd在linux中是 一个强大的命令,常用于拷贝大量数据,测试读写效能 ,清空硬盘数据(慎用),不仅如此,由于dd 允许以二进制方式读写,所以特别适合在原始设备上输入、输出。 dd与cp的区别 这里有必要说明一下,两个命令都可用于拷贝,但是级别却完全不一样:cp是文件级别的读取方式,而dd更底层,可以数据块级别去读取硬盘,由此可看出在效率…

    Linux干货 2017-04-04
  • ansible初识

    主要组成部分,相关配置文件

    2018-01-21
  • 在CentOS 6上编译安装LAMP

    在CentOS 6上编译安装LAMP     在生产中如果需要使用较新的服务,而系统提供的rpm包又较老时该怎么办呢?其实应用程序的安装方式有多种,如:使用系统发行商提供rpm包或者下载源码包手动编译安装也是可以的。今天我们编译的服务不是一个单独的而是一套。这套黄金搭档从诞生之初到现在已经经过无数用户的验证,各大电商站点、门户网站、以及各…

    Linux干货 2017-04-23
  • LAMP架构实验1

    LAMP架构实验 — 基础架构搭建 实验实验拓扑图与目的 实验过程 总结与问题 实验实验拓扑图与目的 1. 实验主框架LAMP采用编译安装。 2. 分离HTTPD,PHP,MARIADB。 3. 两台服务器能够各自被访问且内容相同。 实验过程 程序包准备: apr-1.5.2.tar.gz          …

    Linux干货 2016-05-10

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-30 14:04

    测试了部分脚本代码,功能都没有问题,但是还是希望今后可以把执行结果在文章中直观展示出来,继续 加油。