linux 簡單shell指令碼編寫

2021-10-09 10:09:09 字數 2964 閱讀 4159

前幾天學習了一些shell指令碼編寫,今天把它記下來。

下面的指令碼是修改電腦的ip位址、子網掩碼、閘道器。

#!/bin/bash  //這句話是指定指令碼的直譯器是bash

read -p "please input ipaddr:"ip /

/read -p這個語句就是通過鍵盤讓自己輸入要輸入的內容

read -p "please input netmask:"mask

read -p "please input gateway:"way

cd /etc/sysconfig/network-scripts/

echo

"type=ethernet" >> ifcfg-ens33

echo

"bootproto=static" >> ifcfg-ens33

echo

"device=ens33" >> ifcfg-ens33

echo

"onboot=yes" >> ifcfg-ens33

echo

"ipaddr=$ip" >> ifcfg-ens33

echo

"netmask=$mask" >> ifcfg-ens33

echo

"gateway=$way" >> ifcfg-ens33

ifdown ens33

ifup ens33

下面是指令碼的一些符號及作用。這兩張來自這個**這個人寫的shell的知識點很好,很詳細。

下面的指令碼是測試主機存活量。

#!/bin/bash

read -p "please input:"ip

if `ping -c2 -i0.2 -w2 $ip &>/dev/null` /

/這裡的if語句是通過命令執行的成功還是失敗來決定執行then語句,還是else語句。

then echo

"$ip is up"

else

echo

"$ip is down"

fi

下面的指令碼也是測試主機存活量,不過加入了for迴圈。

#!/bin/bash

w=100.100.100.

for i in

doif `ping -c2 -i0.2 -w2 $w

$i &>/dev/null`

then echo

"$w$i is up"

else

echo

"$w$i is down"

fidone

下面的指令碼也是測試主機存活量,不過加入了while迴圈。

#!/bin/bash

w=100.100.100.

ip=0

while

[$ip

-lt 254]

do let ip=ip+1

if `ping -c2 -i0.2 -w2 $w

$ip &>/dev/null`

then echo

"$w$i is up"

else

echo

"$w$i is down"

fidone

下面介紹一下case語句和函式。

funa(

)funb(

)func(

)case $1 in

funa)

funa ;;

funb)

funb ;;

func)

func ;;

*)echo

"please input correct sentence";;

esac

下面寫乙個nginx開機啟動指令碼。

#!/bin/bash

nginx=/usr/local/nginx/sbin/nginx /

/這個路徑是nginx的命令路徑

chkconfig:- 66 25

description:nginx script

startd(

)startus(

)stop(

)case $1 in

startd)

startd ;;

startus)

startus ;;

stop)

stop ;;

restart)

stop

startd ;;

*)echo

"usage :$0 "

esac

指令碼已經編完,下面是讓指令碼開機自啟。首先執行這條命令,檢視chkconfig對nginx控制的配置檔案有沒有問題,是否在管理列表。

chkconfig --list 指令碼名
下面的命令是加入管理列表。

chkconfig add 指令碼名
再次執行【chkconfig --list 指令碼名】這個命令,發現沒問題。接下來是把圖形級別5開啟。

chkconfig --level 5 指令碼名 on
再次執行【chkconfig --list 指令碼名】這個命令,發現5後面已經開啟。

下面是重啟系統【reboot】。重啟之後執行【ss -antpl | grep 80]命令,檢視80埠開啟,這說明nginx已經開機自啟了。這個實驗前最好把httpd關掉。

結束

LINUX 簡單Shell指令碼的設計

問題 本案例要求編寫三個指令碼程式,分別實現以下目標 1 在螢幕上輸出一段文字 hello world 2 能夠為本機快速配好yum倉庫 3 能夠為本機快速裝配好vsftpd服務 方案當指令碼的 量較大,或者指令碼需要傳遞給其他合作者使用時,規範的指令碼可以顯著降低 維護的難度 可能幾個月以後需要更...

Linux簡單處理CC攻擊shell指令碼

第乙個指令碼是通過查詢日誌中訪問次數過多的ip,並用iptables遮蔽。將此 儲存為ban.sh,加入cronjob使每分鐘執行一次。第二個指令碼是通過在日誌中查詢cc攻擊的特徵進行遮蔽。bin bash keyword cc atack badip tail n 5000 home www.ce...

Linux 其實shell指令碼也很簡單

用了兩個的centos之後,也想看看它的指令碼,我們知道shell這個東西就像windows裡的批處理,它可以將一些語句進行組合,然後統一去執行,感覺挺方便的。shell檔案的組成 shell語言環境 bin bash 它表示shell使用的語言為bash指令碼 說明使用 開頭的一行表示為 注釋 它...