第八周-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 16:21
下一篇 2017-08-23 17:20

相關推薦

  • Centos6啟動流程詳解

    一、名詞解釋 POST: Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測。 BIOS:Basic Input andOutput System,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置、開機加電自檢程序和系…

    2017-03-28
  • 網絡接口Bonding以及網絡組

    網絡接口Bonding就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 網絡組 :網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量。網絡組不同于舊版中bonding技術,提供更好的性能…

    Linux干貨 2016-11-23
  • LINUX 下正確關機方法

    Linux下正確關機方法 Table of Contents 1關機前 1.1觀察系統使用 1.2通知在線使用者關機 2關機 2.1 sy 2.2 shutdo 2.3 rebo 2.4 ha 2.5 powero 3執行 3.1等級 3.2等級 1關機前準備 1.1觀察系統使用狀態 誰在線:who 聯網狀態:netstat -a 后臺執行的程序:ps -a…

    Linux干貨 2017-08-21
  • 優云運維安全專家實踐:使用802.1X+FreeRadius+LDAP實現網絡準入方案

    本文,將為大家分享運維前沿在網絡準入管理方面的實踐經驗。 網絡準入業界常用方案 為了保證網絡資源的安全,拒絕非法入侵,現代IT網絡總需要一定的網絡準入方案,而目前業界常用的網絡準入方案有: 而今天給大家介紹的802.1X+FreeRadius+LDAP網絡準入方案,則避免了上述方案中的缺點,是一套低成本,控制能力強,符合行業標準的一套網絡準入認證體系。 什么…

    安全運維 2016-07-10
  • 正則表達式基礎知識及grep、egrep詳解

    什么是正則表達式     在計算機科學中,正則表達式是這樣解釋的:它是指一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。在很多文本編輯器或其他工具里,正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內容。許多程序設計語言都支持利用正則表達式進行字符串操作。對于系統管理員來講,正則表達式貫穿在我們…

    Linux干貨 2016-08-08
  • Code Review中的幾個提示

    Code Review應該是軟件工程最最有價值的一個活動,之前,本站發表過《簡單實用的Code Review工具》,那些工具主要是用來幫助更有效地進行這個活動,這里的這篇文章,我們主要想和大家分享一下Code Review代碼審查的一些心得。 首先,我們先來看看Code Reivew的用處: Code reviews 中,可以通過大家的建議增進代碼的質量。 …

    Linux干貨 2015-04-03
欧美性久久久久