N25-第八周

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

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

for ((i=1;i<=254;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、如何给网络接口配置多个地址,有哪些方式?

[root@MiWiFi-R3-srv tmp]# ifconfig ens33:0 192.168.31.231 netmask 255.255.255.0 up
[root@MiWiFi-R3-srv tmp]# ifconfig ens33:1 192.168.31.232 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
declare -i s=0
declare -i 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
declare -i sum=0

for i in $*; do
            if id -u $i &> /dev/null; then
                let sum+=$(id -u $i)
        else echo "user not existed."
                exit 2
        fi
done
        echo "用户ID之和为:$sum"

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

#!/bin/bash
declare -i sumd=0
declare -i sumf=0

for i in $(ls $*); do
        filetype=$(file $*/$i | cut -d: -f2 | awk  '{sub(/^[ \t]+/,"");print $0}')
            echo "$i 文件类型为:$filetype."
            if [ "$filetype" == "directory" ]; then
                let sumd++
        else
                let sumf++
        fi
done
        echo "目录数量为:$sumd,文件数量为:$sumf. "

6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
if ! id $1 &> /dev/null; then
         echo "user not existed."
         exit 2
    fi
if [ $(id -u $1) -ge 500 ]; then
            echo " $1 is user."
else echo "$1 is system user."        
fi

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

#!/bin/bash
ip=172.16.250.
for i in {20..100}; do
        if ping -w 1 -c 1 $ip$i &> /dev/null; then
                echo "$ip$i is up."
        fi
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

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

(0)
lyj821202lyj821202
上一篇 2017-05-26
下一篇 2017-05-27

相关推荐

  • shell脚本编写-5

      1、 数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名和索引 索引:编号从0 开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。而且bash 的数组支持稀疏格式(索引不连续) 1)、定义数组 声明数组: declare -a …

    Linux干货 2016-09-01
  • shell中$(( ))、$( )、“与${ }的区别

    shell中$(( ))、$( )、“与${ }的区别,包括其简单用法。

    2017-09-11
  • Linux文本搜索工具grep

    Linux文本搜索工具grep Linux文本搜索工具grep grep 基本正则表达式 egrep 扩展正则表达式 fgrep 简介 grep(全称Globally search a Regular Expression and Print,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行匹…

    2016-04-05
  • SecureCRT 8.0的安装及Linux基本命令介绍

    在CentOS虚拟中安装并打开图形界面后,可以在图形界面和命令行界面之间任意切换。在打开终端后输入init3可以切换至命令行界面,输入init5返回到图形界面。 这里我们用SecureCRT 8.0来远程的对虚拟机进行操作,对于SecureCRT 8.0的安装步骤就不详细介绍,简单介绍下如何连接到CentOS。 1. 2.点击完成。   &nbsp…

    2017-07-13
  • rpm包管理

    rpm包管理 由于 RPM 是透过预先编译打包成为 RPM 文件格式后,再加以安装的一种方式,还能够进行数据库的记载。 所以 RPM 有以下的优点: RPM 内含已经编译过的程序与配置文件等数据,可以让用户免除重新编译的困扰; RPM 在被安装前,会先检查系统的硬盘容量、操作系统版本等,可避免档案被错误安装; RPM 档案本身提供软件版本信息、相依属性软件名…

    Linux干货 2016-08-21
  • Linux第三周总结

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d ” -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。 ~]# who|tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell ~]# cut -d’:’…

    2017-07-16

评论列表(1条)

  • 马哥教育
    马哥教育 2017-06-20 11:28

    如果脚本多加一些判断条件的话会更好