前幾天學習了一些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指令碼 說明使用 開頭的一行表示為 注釋 它...