1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash
# __author__ zwp
touch /test/ip_ping.txt
ipnet=172.16.250.
trap "exit" INT #用了Ctrl+c就执行exit
for ((i=1;i<=254;i++));do
if ping -w 1 -c 1 $ipnet${i} &> /dev/null
then
echo -e "\033[32;1m $ipnet${i} is alive. \033[0m" #ping的通
else
echo -e "\033[31;1m $ipnet${i} is died.\033[0m" #ping不通
fi
done
2、如何给网络接口配置多个地址,有哪些方式?
1)ifconfig
ifconfig eth0:1 192.168.1.2/24
(2)ip
ip addr add 192.168.1.2/24 label eth0:2 dev eth0
(3)nmcli(7版本)
nmcli connection add con-name “second” ifname eth0:3 type ethernet ip4 192.168.1.2/24
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
declare -i sum
sum=0
for i in $@;do
if id ${i} &> /dev/null
then
uid=`id -u ${i}`
sum+=$uid
else
echo "no user ${i}"
fi
done
echo "用户的ID之和:$sum"
5、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash
declare -i dir file dir_list file_list
dir=0
file=0
dir_list=0
file_list=0
for i in $@;do
if [ -d $i ];then
cd $i
for j in `ls $i`;do
echo "$j"
file $j
if [ -f $j ];then
file+=1
elif [ -d $j ];then
dir+=1
fi
done
fi
dir_list+=$dir
file_list+=$file
echo -en "这里是$i\n"
done
echo -en "总共包含的目录数:${dir_list}\n"
echo -en "总共显示的文件数:${file_list}\n"
6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash
id -u $1 &> /dev/null
if [ $? -eq "0" ];then
if [ $(id -u $1) -gt 500 ];then
echo "$1为普通用户。"
fi
else
echo "没有这个用户$1"
fi
7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash
ip_net=172.16.250.
for ((i=20;i<=100;i++));do
if ping -w 1 -c 1 $ip_net$i &> /dev/null;then
echo "$ip_net$i"
fi
done
8、打印九九乘法表;
#!/bin/bash
for i in `seq 1 9`;do
for j in $(seq 1 $i);do
echo -en "${j}x${i}=$[$j*$i]\t"
done
echo
done
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89014