第八周
1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示;
#!/bin/bash
#
ip=172.16.250.
for i in {1..254}; do
if ping -w 1 -c 1 $ip$i &> /dev/null; then
echo -e "\033[32m $ip$i is up \033[0m"
else echo -e "\033[31m $ip$i is down \033[0m"
fi
done
2、如何给网络接口配置多个地址,有哪些方式?
(1)ip addr add IFADDR dev IFACE
[root@zf ~]# ip addr add 20.2.1.10 dev eth1
(2)ifcofig IFACE_LABEL IPADDR/NAETMASK
[root@zf ~]# ifconfig eth1:0 20.3.1.10/24
(3)修改/etc/sysconfig/network-scripts/ifcfg-ethX:X文件
[root@zf ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1:3
DEVICE=eth1:3
HWADDR=00:0C:29:33:84:65
TYPE=Ethernet
ONBOOT=no
NM_CONTROLLED=yes
IPADDR=20.4.1.10
PREFIX=24
BOOTPROTO=static
3、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash
#
ssum=0
ksum=0
for i in $(ls /etc/rc.d/rc3.d); do
if [ $(echo "$i" | grep -o "^S*") == "S" ];then
echo "start_$i"
let ssum++
elif [ $(echo "$i" | cut -c 1-1) == "K" ];then
echo "stop_$i"
let ksum++
fi
done
echo -e "S head file is $ssum.\nK head file is $ksum."
4、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash
#
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
#
sumd=0
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
else echo "user not existed."
exit 2
fi
if [ $(id -u $1) -ge 500 ]; then
echo " common user."
else echo "system user or root."
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 n in {1..9}; do
for i in $(seq $n); do
echo -n -e "${i}x${n}=$[${i}*${n}]\t"
done
echo
done
[root@zf ~]# bash chengfa.sh
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
原创文章,作者:N25-深圳-寻觅,如若转载,请注明出处:http://www.178linux.com/70835


评论列表(1条)
赞,基本上都实现了,有一个需要注意的地方是建议ping 2次或者3次~~~继续加油~