1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主使用紅色顯示;
#!/bin/bash declare -i i=1 ping_172() { if ping -W 1 -c 1 172.16.250.$1 &> /dev/null; then echo -e "\033[32m 172.16.250.$1 was up \033[0m" else echo -e "\033[31m 172.15.250.$1 was down \033[0m" fi } while [ $i -le 254 ];do ping_172 $i let i++ done
2、如何給網絡接口配置多個地址,有哪些方式?
(1)ifconfig命令;立即生效但不能重啟后無效
[root@localhost scripts]# ifconfig eth0:0 192.168.0.130/24 [root@localhost scripts]# ifconfig eth0:0 Link encap:Ethernet HWaddr 00:0C:29:13:C3:60 inet addr:192.168.0.130 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
(2)修改接口配置文件;修改后需重啟網絡配置或重啟開機才能有效,而且會一直有效
[root@localhost scripts]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 -----加上下面的部分 DEVICE=eth0:0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.130 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=202.96.128.166 DNS2=202.96.134.133
(3)ip命令;立即生效但不能重啟后無效
[root@localhost scripts]# ip addr add 192.168.0.130 dev eth0 label eth0:0
3、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash declare -i Kfile_sum=0 declare -i Sfile_sum=0 for i in $(ls /etc/rc.d/rc3.d | grep "^K");do echo "$i stop" let Kfile_sum++ done cat << EOF =============================== EOF for x in $(ls /etc/rc.d/rc3.d | grep "^S");do echo "$x start" let Sfile_sum++ done echo "Total the head of "S" file:$Sfile_sum" echo "Total the head of "K" file:$Kfile_sum"
4、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash declare -i sum=0 for i in $@; do if id $i &> /dev/null; then a=$(id -u $i) sum=$[$sum+$a] else echo "$i no such user!" fi echo "the id sum of these user:$sum" done
5、寫一個腳本 (1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash declare -i dir_sum=0 declare -i filetype_sum=0 for i in $@; do if ls $i &> /dev/null; then name=$(ls $i) for x in $name; do file $i/$x if [ -d $i/$x ];then let dir_sum++ else let filetype_sum++ fi done else echo "$i no such directory" fi done echo "Total directory: $dir_sum" echo "Total filetype: $filetype_sum"
6、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash if [ $# -lt 1 ]; then echo "Please input a username" exit 2 fi if [ $(id -u $1) -gt 500 ] &> /dev/null; then echo "$1 is a normal user" fi
7、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash for i in $(seq 20 100);do if ping -W 1 -c 1 172.16.250.$i &> /dev/null; then echo "172.16.250.$i up" fi done
8、打印九九乘法表;
#!/bin/bash # 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
原創文章,作者:N25_Pierce,如若轉載,請注明出處:http://www.www58058.com/76747
寫的很好,需要注意的是在寫腳本的時候可以多增加一些判斷條件