第八周-Shell腳本編程

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命令

ifconfig eth0:0 192.168.1.200 up

(2)、使用ip命令

ip addr add 192.168.1.200/24 dev eth0

(3)、新建子接口配置文件(永久性)

vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
添加以下配置:
DEVICE=eth0:0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.200
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
保存后啟用此接口
ifup eth0:0

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

sum=0
for i in $@;do
 if id $i &>/dev/null ;then
    sum=$[sum+`id -u $i`]
 else
    echo  "User $i is no existed"
 fi
done
echo "Users id sum is $sum"

5、寫一個腳本

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

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

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

#!/bin/bash
dir=0
files=0
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

for i in $@;do
   if ! id $i &>/dev/null;then
      echo "user $i no exist"
   elif [ `id -u $i` -ge 500 ];then
      echo "$i is general user"
   fi
done

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、打印九九乘法表;

#!/bin/bash

for i in  `seq 9`;do
         for j in `seq 1 $i`;do
         echo -n "$i*$j= `echo $(($i*$j))`      "
         done
         echo
done

原創文章,作者:N27_what,如若轉載,請注明出處:http://www.www58058.com/85294

(0)
N27_whatN27_what
上一篇 2017-08-23
下一篇 2017-08-23

相關推薦

  • N22-love cat 17周博客作業第2部分-構建一個LVS-DR模型的高性能集群

    題目: 搭建一個LVS-DR模型的高性能集群,并實現以下功能:       (1)、wordpress程序通過nfs共享給個個realserver;       (2)、后端realserver中的nginx和php分離; 第17周   第2部分 網…

    Linux干貨 2016-08-15
  • raid介紹及邏輯卷與邏輯卷快照應用

    高級文件系統管理 配置配額系統 綜述 在內核中執行,以文件系統為單位啟用,對不同組或者用戶的策略不同,如將home單獨分區,但是并不意味著每個用戶都可以無上限使用該分區的空間,所以系統管理員要據塊或者節點進行限制,限制每個用戶使用磁盤的空間,當到達執行軟限制( soft limit  )  會警報提醒用戶;當硬限制( hard limit…

    Linux干貨 2016-09-02
  • 德摩根定律

     德摩根定律: 非(P且Q) = (非P) 或 (非Q) 非(P或Q) = (非P) 且 (非Q) 德·摩根定律在數理邏輯的定理推演中,在計算機的邏輯設計中以及數學的集合運算中都起著重要的作用。他的發現影響了喬治·布爾從事的邏輯問題代數解法的研究。這鞏固了德摩根作為該規律的發現者的地位,盡管亞里士多德也曾注意到類似現象,且這也為古希臘與中世紀的邏輯…

    Linux干貨 2016-08-15
  • select基本用法和軟件包管理

    一、select語句     select語句在腳本中用于創建菜單,按數字順序排列的菜單項顯示在標準輸出上,并用PS3提示符,等待用戶輸入。用戶輸入菜單中的某個數字,執行相應的命令,并被保存在內置變量REPLY中。 用法:     select NAME [in WORDS &#…

    Linux干貨 2016-08-21
  • LVS+Keepalived實現負載均衡

    keepalived工作原理 keepalived是基于VRRP協議實現的保證集群高可用的一個服務軟件,主要功能是實現后端真實服務器的故障隔離和負載均衡器間的失敗切換,防止單點故障。 VRRP協議全稱:虛擬路由冗余協議(Virtual Route Redundancy Protocol)。 keepalived安裝 # yum install keepali…

    2017-11-26
欧美性久久久久