1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主使用紅色顯示;
#!/bin/bash declare -i i=1 hostping(){ if ping -W 1 -c 1 172.16.250.$i &> /dev/null;then echo -e "\033[32m 172.16.250.$i is up.\033[0m" else echo -e "\033[31m 172.16.250.$i is down.\033[0m" fi } while [ $i -le 255 ]; do hostping 172.16.250.$i let i++ done
2、如何給網絡接口配置多個地址,有哪些方式?
1、ifconfig命令
ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up
2、修改配置文件信息
vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0 //虛擬網絡接口,隨意
ONBOOT=yes //系統啟動時激活 BOOTPROTO=static //使用靜態ip地址
IPADDR=192.168.6.100 //該虛擬網絡接口的ip別名,隨意 NETMASK=255.255.255.0 //子網掩碼,對應ip別名 GATEWAY=192.168.6.1 //網關,對應ip別名 HWADDR=00:10:5A:5E:B1:E4 //網卡MAC地址,無需更改
USERCTL=no //是否給予非root用戶設備管理權限
CentOS 7 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 TYPE="Ethernet" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" NAME="enp0s3" UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0" ONBOOT="yes" HWADDR="08:00:27:3F:AB:68" IPADDR0="192.168.1.150" IPADDR1="192.168.6.100" IPADDR2="192.168.6.101" PREFIX0="24" GATEWAY0="192.168.1.1" DNS1="192.168.1.1" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes"
3、寫一個腳本,完成以下功能 (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干; (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串; (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串; (4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash declare i j=0 declare i k=0 for i in `ls /etc/rc.d/rc3.d/`;do if [[ $i =~ ^K ]];then echo "$i stop" let j++ elif [[ $i =~ ^S ]];then echo "$i start" let k++ fi done echo "共$j個文件以K開頭" echo "共$k個文件以S開頭"
4、寫一個腳本,完成以下功能 (1) 腳本能接受用戶名作為參數; (2) 計算此些用戶的ID之和;
#!/bin/bash declare -i sum=0 if [ $# -le 0 ];then echo "Useage:bash.sh name1 name2..." exit 1 fi for i in $@;do if id $i &> /dev/null;then let sum+=$(id -u $i) else echo "$i : does not exist!" fi done echo "All user id: $sum"
5、寫一個腳本 (1) 傳遞一些目錄給此腳本; (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型; (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash declare -i file=0 declare -i sfile=0 declare -i dir=0 declare -i sfile=0 declare -i other=0 for path in $@ ;do if [ -f $path ]; then echo "$path is a Common file." let file++ elif [ -L $path ]; then echo "$path is a Symbolic file." let sfile++ elif [ -d $path ]; then echo "$path is a Directory." let dir++ elif [ -S $path ];then echo "$path is a socket file." let sfile++ else echo "Other type." let other++ fi done echo "Common file $file" echo "Symbolic file $sfile" echo "Directory $dir" echo "socket file $sfile" echo "Other type $other"
6、寫一個腳本 通過命令行傳遞一個參數給腳本,參數為用戶名 如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash read -p "please enter a use name " username user_id=`id -u $username` if (id $username &> /dev/null); then if [ $user_id -gt 500 ]; then echo "$username is a common user." else echo "$username is a system user." fi else echo "$username not exist" fi done
7、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash # net="172.16.250" for i in {20..100};do if ping -c 1 -w 1 $net.$i &> /dev/null;then echo " $net.$i is online " fi done
8、打印九九乘法表;
#!/bin/bash for ((i=i;i<=9;i++)){ for((j=1;j<=i;j++));do echo -n -e "$[i]x$[j]=$[$i*$j]\t" done echo }
原創文章,作者:victorli88,如若轉載,請注明出處:http://www.www58058.com/66905