馬哥門徒-N26-邢巖
1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主機使用紅色顯示;
#!/bin/bash
# Author: jeque
# Description: pingtest
for ((i=1;i<255;i++));do
ping -w 1 -c 1 172.16.250.$i &> /dev.null
if [ $? -eq 0 ];then
echo -e “\e[1;32m 172.16.250.$i \e[0m”
else
echo -e “\e[1;31m 172.16.250.$i \e[0m”
fi
done
2、如何給網絡接口配置多個地址,有哪些方式?
1) ip addr add IFADDR dev IFACE
例如:ip addr add 192.168.10.99 dev eth0
2) ifconfig IFACE_LABEL IPADDR/NETMASK
例如:ifconfig eth0:0 192.168.1.0/24
3) /etc/sysconfig/network-scripts/ifcfg-IFACE
例如:
3、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash
# Author: jeque
# Description: pingtest
declare Ssum=0 Ksum=0
for i in $(ls /etc/rc.d/rc3.d); do
if [ $( echo “$i” | cut -c 1-1) == “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 “K head file is $Ksum.\nS head file is $Ssum.”
4、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算這些用戶的ID之和;
#!/bin/bash
# Author: jeque
# Description: userid sum
while read line;do
userid=$(echo $line | cut -d: -f3)
let sum+=$userid
done < /etc/passwd
echo “User id sum is:$sum.”
5、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash
# Author: jeque
# Description:
declare -i sumd=0
declare -i sumf=0
if [ $# -lt 1 ];then
echo “usage $0 arg1 arg2 …”
exit 1
fi
for i in $*; do
[ ! -d $i ] && continue
file $i/*
dirtype=$(file $i/* | grep -c “directory$”)
filetype=$(file $i/* | awk ‘{print $0}’ | sort | uniq | wc -l)
let sumd+=dirtype
let sumf+=filetype
done
echo “dir:$sumd,file:$sumf.”
6、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名;
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash
# Author:jeque
# Description: username type
username=$1
if id “$username” &> /dev/null;then
userid=$(grep “^$username\>” /etc/passwd |cut -d: -f3)
if [ $userid -ge 500 ];then
echo “$username is common user.”
else
echo “$username is sys user.”
fi
else
echo “$username not exists!”
exit 2
fi

7、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash
# Author:jeque
# Description:pingtest
for i in {20..100};do
if ping -c 1 172.16.250.$i &> /dev/null;then
echo “172.16.250.$i is UP”
else
continue
fi
done

8、打印九九乘法表;
#!/bin/bash
# Author:jeque
# Description: multi table
for j in {1..9};do
for i in $(seq 1 $j);do
echo -n -e “${i}X${j}=$[${i}*${j}]\t “
done
echo
done
今天就到這里了,bye!
原創文章,作者:jeque,如若轉載,請注明出處:http://www.www58058.com/70505
測試了部分代碼,功能都沒有問題,但作為博客來講,代碼可讀性也是非常重要的,再接再勵。