第八周
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
原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/70903