shell腳本的練習

1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態? 在線的主機使用綠色顯示? 不在線的主機使用紅色顯示

#!/bin/bash

for i in {1..254};do

{

ip=172.16.250.$i

if ping -c 1 -w 1 $ip &> /dev/null ; then

echo -e “\033[32;49;1m$ip\033[39;49;0m\n”

else

echo -e “\033[31;49;1m$ip\033[39;49;0m\n”

fi

}&

done

wait

2、如何給網絡接口配置多個地址,有哪些方式

(1)~]#ifconfig eth0:0 192.168.2.250/24 up

(2)ip addr add 192.168.2.250/24 dev eth0

(3)通過編輯/etc/sysconfig/network-scripts/ifcfg-IFACE

(4)使用nmtui命令

3、寫一個腳本,完成以下功能

(1)假設能夠目錄(/etc/rc.d/rc3.d)下分別有K開頭的文件和S開頭的文件若干

(2)顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串

(3)顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串

(4)分別統計S開頭和K開頭的文件各有多少

#!/bin/bash

S=0

K=0

for i in `ls /etc/rc.d/rc3.d/`;do

case $i in

S*)

echo “$i start”

S=$[S+1] ?;; ?K*)

echo “$i stop”

K=$[K+1] ?;; esac

done

echo -e “S $S Files\nK $K Files”

4、寫一個腳本,完成以下功能

(1)腳本能接受用戶名作為參數;

(2)計算此用戶的ID之和;

#!/bin/bash

#

declare -i idsum=0

for i in $@;do

if ! id $i &>/dev/null;then

echo “$i is not exist.”

else

idsum=$[$idsum+$(id -u $i)]

fi

done

echo “Users id sum is $idsum”

5、寫一個腳本

(1)傳遞一些目錄給此腳本;

(2)逐個顯示每個目錄的所有一級文件或子目錄的內容類型;

(3)統計一共有多少個目錄,且一共顯示了多少個文件的內容類型;

#!/bin/bash

#

declare -i dir=0

declare -i files=0

if [ $# -lt 1 ];then

echo “At least one dir.”

exit 1

fi

if ![ -e $1 ];then

echo “dirctory not exist.”

exit 2

fi

for i in $@;do

file $i/*

for e in `ls $i`;do

if [ -d $i/$e ];then

dir=$[dir+1]

fi

files=$[files+1]

done

done

echo ” dir = $dir ,all file type= $files “

6、寫一個腳本?通過命令行傳遞一個參數給腳本,參數為用戶名?如果用戶ID號大于500,則顯示此用戶為普通用戶

#!/bin/bash

#

if [ $# -lt 1 ];then

echo “At least one user name”

exit 1

fi

if ! id $1 &>/dev/null;then

echo ” No such user.”

exit 2

fi

userid=$(id -u $1)

if [ $userid -ge 500 ];then

echo “Common user.”

fi

7、寫一個腳本,用ping命令172.16.250.20-172.16. 250.100以內有哪些主機,將在線的顯示出來;

#!/bin/bash

for i in {20..100}; do

{

ip=172.16.250.$i

if ping -c 1 -w 1 $ip &> /dev/null ; then

echo -e “\033[32;49;1m$ip\033[39;49;0m\n”

fi

} &

done

wait

8、打印九九乘法表

#!/binbash

#

for i in ?`seq 9`;do

for j in `seq 9`; do

[ $j -le $i ] ?&& ?echo ?-n ?“$i*$j= `echo $(($i*$j))` “

done

echo ” ?“

done

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87291

(0)
N27_shijinlongN27_shijinlong
上一篇 2017-09-17 18:26
下一篇 2017-09-17 20:25

相關推薦

  • 第十周練習-腳本部分

    1、寫一個腳本 (1) 能接受四個參數:start, stop, restart, status start: 輸出“starting 腳本名 finished.” … (2) 其它任意參數,均報錯退出; #!/bin/bash # case $1 in start)     echo&…

    Linux干貨 2016-12-31
  • N25第七周博客作業

    第七周博客作業 1、 創建一個10G分區,并格式為ext4文件系統; fdisk/dev/sdb à nàpàlast扇區:+10Gàwàpartx -a /dev/sdb   (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; mke2fs  -t ext4 -b 2…

    Linux干貨 2017-02-20
  • DNS and Bind

    DNS and Bind ===================================================================================== 概述:    DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使…

    Linux干貨 2016-10-10
  • 馬哥教育網絡班22期+第8周課程練習

    week8: 1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋也叫橋接器,是連接兩個局域網的一種存儲/轉發設備,它能將一個大的LAN分割為多個網段, 或將兩個以上的LAN互聯為一個邏輯LAN,使LAN上的所有用戶都可訪問服務器。 它工作于OSI(開放系統互聯參考模型)參考模型第二層,即“數據鏈路層”。 集線器的英文稱為“H…

    Linux干貨 2016-10-09
欧美性久久久久