第八周作業

shell腳本簡用

1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;

在線的主機使用綠色顯示;

不在線的主使用紅色顯示;

#!/bin/bash
# __author__ zwp
touch /test/ip_ping.txt
ipnet=172.16.250.
trap "exit" INT  #用了Ctrl+c就執行exit
for ((i=1;i<=254;i++));do
    if ping -w 1 -c 1 $ipnet${i} &> /dev/null   
    then
        echo -e "\033[32;1m $ipnet${i} is alive. \033[0m"   #ping的通
    else
        echo -e "\033[31;1m $ipnet${i} is died.\033[0m"     #ping不通
    fi
done

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

1)ifconfig
    ifconfig eth0:1 192.168.1.2/24 
(2)ip
    ip addr add 192.168.1.2/24 label eth0:2 dev eth0
(3)nmcli(7版本)
    nmcli connection add con-name “second” ifname eth0:3 type ethernet ip4 192.168.1.2/24

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
    /etc/rc.d/rc3.d/S*)
        echo ${i}###stop && let s++;;
    /etc/rc.d/rc3.d/K*)
        echo ${i}###start &&let k++
    esac
done
echo -en "以K開頭的文件個數為:${k}\n"
echo -en "以S開頭的文件個數為:${s}\n"

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

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

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

#!/bin/bash
declare -i sum
sum=0
for i in $@;do
    if id ${i} &> /dev/null
    then
        uid=`id -u ${i}`
        sum+=$uid
    else
        echo "no user ${i}"
    fi
done
echo "用戶的ID之和:$sum"

5、寫一個腳本

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

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

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

#!/bin/bash
declare -i dir file dir_list file_list
dir=0
file=0
dir_list=0
file_list=0
for i in $@;do
    if [ -d $i ];then
        cd $i
        for j in `ls $i`;do
            echo "$j"
            file $j
            if [ -f $j ];then
                file+=1
            elif [ -d $j ];then
                dir+=1
            fi
        done
    fi
    dir_list+=$dir
    file_list+=$file
    echo -en "這里是$i\n"
done
echo -en "總共包含的目錄數:${dir_list}\n"
echo -en "總共顯示的文件數:${file_list}\n"

6、寫一個腳本

通過命令行傳遞一個參數給腳本,參數為用戶名

如果用戶的id號大于等于500,則顯示此用戶為普通用戶;

#!/bin/bash
id -u $1 &> /dev/null
if [ $? -eq "0" ];then
    if [ $(id -u $1) -gt 500 ];then
        echo "$1為普通用戶。"
    fi
else
    echo "沒有這個用戶$1"
fi

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

#!/bin/bash
ip_net=172.16.250.
for ((i=20;i<=100;i++));do
    if ping -w 1 -c 1 $ip_net$i &> /dev/null;then
        echo "$ip_net$i"
    fi
done

8、打印九九乘法表;

#!/bin/bash
for i in `seq 1 9`;do
        for j in $(seq 1 $i);do
                echo -en "${j}x${i}=$[$j*$i]\t"
        done
        echo
done

 

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

(0)
N25-趙叔N25-趙叔
上一篇 2017-11-27
下一篇 2017-11-27

相關推薦

  • HA Cluster—Keepalived

    HA Cluster 集群類型:LB(lvs/nginx(http/upstream, stream/upstream))、HA、HP 系統可用性的公式:A=MTBF/(MTBF+MTTR) 系統故障: 硬件故障:設計缺陷、wear out、自然災害 軟件故障:設計缺陷 提升系統高用性的解決方案之降低MTTR: 解決方案:冗余(redundant) acti…

    Linux干貨 2017-10-30
  • Linux初識

    N22-熊寶–http://www.www58058.com/author/echeng1514 –馬哥教育網絡班22期–第1周課程練習   1、描述計算機的組成及其功能: 2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別: Linux有眾多的發行版,都是基于不同的內核版本,做了許多改…

    Linux干貨 2016-08-15
  • linux入門基礎知識及簡單命令介紹

    1、計算機硬件組成介紹 計算機主要由cpu(運算器、控制器),內存,I/O,外部存儲等構成。     cpu主要是用來對二進制數據進行運算操作,它從內存中取出數據,然后進行相應的運算操作。不能從硬盤中直接取數據。     內存從外部存儲中取出數據供cpu運存。內存的最小單位是字節…

    Linux干貨 2017-08-28
  • Centos7下安裝httpd源碼包

    今天小編來跟大家做個練習,就是如何在Centos7下安裝httpd源碼包. 一:下載httpd最新版本的源碼包 [root@localhost ~]# rpm -qa |grep httpd //查詢系統上是否已安裝httpd包 httpd-tools-2.4.6-45.el7.centos.4.x86_64 httpd-2.4.6-45.el7.cento…

    2017-08-19
  • 如何監控Linux文件系統事件:inotify使用指南

    如何監控Linux文件系統事件:inotify使用指南 §·inotify初識 Inotify 是一個 Linux特性,它監控文件系統操作,比如讀取、寫入和創建。Inotify 反應靈敏,用法非常簡單,并且比 cron 任務的繁忙輪詢高效得多。學習如何將 inotify 集成到您的應用程序中,并發現一組可用來進一步自動化系統治理的命令行工具。 §·inoti…

    Linux干貨 2016-10-30
  • centos7 root密碼忘記怎么修改

           對于事務繁忙或者容易忘東忘西的朋友說,想要記著一些事情總感覺比登天還要難,特別是像密碼之類的??赡芤洃浀拿艽a太多,總是不經意間就把密碼忘記或者把密碼混淆。總之這種站的比例還是有點分量的,例如我剛剛接觸Linux時 ,第一把centos7裝到電腦上沒有多久,就把root密碼忘記了,費了好時間,也請教了很多…

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