第八周练习脚本部分

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

#!/bin/bash
#
for((i=1;i<=254;i++));do
    site="172.16.250.${i}"
    ping -w1 -c1 $site &> /dev/null
    if [[ "$?" == "0" ]];then
        echo -e "\033[32m${site}\033[0m"
    else
        echo -e "\033[35m${site}\033[0m"
    fi
done

2.写一个脚本,完成以下功能

(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;

(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

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

#!/bin/bash
#
for i in $(ls /etc/rc.d/rc3.d/);do
    if [[ "$i" =~ ^S  ]];then
        S=$(echo $i | wc -l)
        let Ssum+=$S
        echo ${i}start
    fi
    if [[ "$i" =~ ^K  ]];then
        K=$(echo $i | wc -l)
        let Ksum+=$K
        echo ${i}stop
    fi
done
    echo "S Begin:$Ssum"
    echo "K Begin:$Ksum"

3、写一个脚本,完成以下功能

(1) 脚本能接受用户名作为参数;

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

#!/bin/bash
#
if [ $# -eq 0 ];then
    echo "At least one parameter,try the script again,please!"
    exit 1
fi
for i in $*;do
    id $i &> /dev/null && uid=$(grep -E "^${i}" /etc/passwd | cut -d: -f3) || echo "This user isn't existing"
    let sum+=$uid
done
    echo "ID_SUM is $sum"

4、写一个脚本

(1) 传递一些目录给此脚本;

(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

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

#!/bin/bash
#
if [ $# -eq 0 ];then
    echo "At least one parameter,try the script again,please!"
    exit 1
fi
for i in $*;do
    if [ -d $i ];then
        ls $i
        dnum=$(ls $i | wc -l)
        echo "The Directory has $dnum files"
    else
        ls $i
        echo "This is a commom file:$i"
    fi
done

5、写一个脚本

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

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

#!/bin/bash
#
if [ $# -eq 0 ];then
    echo "At least one parameter,try the script again,please!"
    exit 1
fi
for i in $*;do
    id $i &> /dev/null && uid=$(grep -E "^${i}" /etc/passwd | cut -d: -f3) || echo "This user isn't existing"
        if [[ "$uid" > "500" ]];then
            echo "$i is a common user"
        fi
done

6、写一个脚本

(1) 添加10用户user1-user10;密码同用户名;

(2) 用户不存在时才添加;存在时则跳过;

(3) 最后显示本次共添加了多少用户;

#!/bin/bash
#
x=0
for i in {1..10};do
    id user$i &> /dev/null && continue || useradd user$i && echo "user$i" | passwd --stdin user$i && let x++
done
    echo "add $x users"

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

与第一题相似,就不写啦~

8、打印九九乘法表;

#!/bin/bash
#
for((i=1;i<=9;i++));do
    for((j=1;j<=i;j++));do
        echo -e -n "$j*$i=$[$i*$j]\t"
    done
    echo ""
done

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

(0)
N24_涩味N24_涩味
上一篇 2016-12-15 19:43
下一篇 2016-12-16 09:50

相关推荐

  • shell脚本实现MD5破解的相关小计

    分享编写shell脚本暴力破解md5的方法 方法一 单个破解法(以10位数为例) #!/bin/bash read -p “please input strings:”string for n in {0..33000} do Md5=`echo $n |md5sum|cut -c 1-10`      …

    Linux干货 2017-03-26
  • N26-博客作业-week5

    1、显示当前系统上root、fedora或user1用户的默认shell; ~]# grep -E “^((root|fedora|user1)\>)” /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); ~]#…

    Linux干货 2017-03-05
  • Linux basics–part1

    一、计算机的组成及其功能 依据冯·诺依曼体系结构,计算机可分为五大部分,CPU的运算器和控制器、内存、输入、输出。 CPU运算器:计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存…

    Linux干货 2017-07-10
  • 从Linux小白到大牛——与狼共舞的日子13

    马哥教育网络班21期+第13周课程练习 1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加sa…

    Linux干货 2017-01-03
  • linux的发展与入门

    1,计算机的组成和功能如下: CPU:是由运算器(是用来对数据进行数据运算和逻辑运算), 控制器(是用来对总线的控制,内存寻址的控制,以及对读,写访问的控制), 寄存器和缓存器(都是用来暂存数据的。) 存储器:内存RAM(随机接入存储器)和硬盘:都是用来存储数据的。 输入设备:用来输入需要处理的数据和指令。 输出设备:是用来显示加工过的数据。 2,LINUX…

    Linux干货 2017-07-03
  • 浅谈筛选日志中的IP地址信息

    作为运维人员,经常会需要会对日志中的某些重要信息进行筛选,比如说ip等参数。 案例一:筛选出IP地址信息 日志信息如下: [root@C67-X64-A1 hanghang]# cat test.txt  Jul 13 08:13:09 localhost sshd[14678]…

    系统运维 2016-07-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 12:07

    赞~~从几个脚本来看,掌握的非常不错~~继续加油~