站長常用Shell指令碼整理分享1 10

2021-10-07 01:26:21 字數 3263 閱讀 5185

#!/bin/bash

# 編寫hello world指令碼

echo

"hello world!"

#!/bin/bash

# 統計當前 linux 系統中可以登入計算機的賬戶數量

grep

"bash$" /etc/passwd |

wc -l

#!/bin/bash

# 編寫批量修改副檔名指令碼,如批量將 txt 檔案修改為 doc 檔案

# 執行指令碼時,需要給指令碼新增位置引數

# 指令碼名 txt doc(可以將 txt 的副檔名修改為 doc)

# 指令碼名 doc jpg(可以將 doc 的副檔名修改為 jpg)

for i in

"ls *.$1"

domv$i$

.$2done

#!/bin/bash

# 編寫指令碼,顯示進度條

myprogress(

)myprogress &

cp -a $1

$2killall

$0echo

"拷貝完成"

多程序版

#!/bin/bash

# 編寫指令碼測試 192.168.4.0/24 整個網段中哪些主機處於開機狀態,哪些主機處於關機

# 狀態(多程序版)

#定義乙個函式,ping 某一台主機,並檢測主機的存活狀態

myping(

)for i in

do myping 192.168.4.$i

&done

# 使用&符號,將執行的函式放入後台執行

# 這樣做的好處是不需要等待ping第一台主機的回應,就可以繼續併發ping第二台主機,依次類推。

while版

#!/bin/bash

# 編寫指令碼測試 192.168.4.0/24 整個網段中哪些主機處於開機狀態,哪些主機處於關機

# 狀態(while 版本)

i=1while

[$i -le 254 ]

doping ‐c 2 ‐i 0.3 ‐w 1 192.168.4.$i

&>/dev/null

if[$? -eq 0 ]

;then

echo

"192.168.4.$i is up"

else

echo

"192.168.4.$i is down"

filet i++

done

#!/bin/bash

# 檢視有多少遠端的 ip 在連線本機(不管是通過 ssh 還是 web 還是 ftp 都統計)

# 使用 netstat ‐atn 可以檢視本機所有連線的狀態,‐a 檢視所有,

# -t僅顯示 tcp 連線的資訊,‐n 數字格式顯示

# local address(第四列是本機的 ip 和埠資訊)

# foreign address(第五列是遠端主機的 ip 和埠資訊)

# 使用 awk 命令僅顯示第 5 列資料,再顯示第 1 列 ip 位址的資訊

# sort 可以按數字大小排序,最後使用 uniq 將多餘重複的刪除,並統計重複的次數

netstat -atn |

awk''

|awk''|

sort -nr |

uniq -c

#!/bin/bash

# 統計 13:30 到 14:30 所有訪問 apache 伺服器的請求數量

# awk 使用‐f 選項指定檔案內容的分隔符是/或者:

# 條件判斷$7:$8 大於等於 13:30,並且要求,$7:$8 小於等於 14:30

# 最後使用 wc ‐l 統計這樣的資料有多少行,即多少個

# 統計 13:30 到 14:30 所有訪問本機 aapche 伺服器的遠端 ip 位址是什麼 

# awk 使用‐f 選項指定檔案內容的分隔符是/或者:

# 條件判斷$7:$8 大於等於 13:30,並且要求,$7:$8 小於等於 14:30

# 日誌文件內容裡面,第 1 列是遠端主機的 ip 位址,使用 awk 單獨顯示第 1 列即可

# 統計/var/log 有多少個檔案,並顯示這些檔名

# 使用 ls 遞迴顯示所有,再判斷是否為檔案,如果是檔案則計數器加 1

cd /var/log

sum=0

for i in

`ls -r *`

doif

[ -f $i];

then

let sum++

echo

"檔名:$i"

fidone

echo

"總檔案數量為:$sum"

#!/bin/bash

# 自動為其他指令碼新增直譯器資訊#!/bin/bash,如指令碼名為 test.sh 則效果如下:

# ./test.sh abc.sh 自動為 abc.sh 新增直譯器資訊

# ./test.sh user.sh 自動為 user.sh 新增直譯器資訊

# 先使用 grep 判斷物件指令碼是否已經有直譯器資訊,如果沒有則使用 sed 新增直譯器以及描述資訊if!

grep -q "^#!"$1;

then

sed'1i #!/bin/bash'

$1sed

'2i #description: '

fi# 因為每個指令碼的功能不同,作用不同,所以在給物件指令碼新增完直譯器資訊,以及 description 後還希望

# 繼續編輯具體的指令碼功能的描述資訊,這裡直接使用 vim 把物件指令碼開啟,並且游標跳轉到該檔案的第 2 行

vim +2 $1

站長常用Shell指令碼整理分享11 20

bin bash 編寫 nginx 啟動指令碼 本指令碼編寫完成後,放置在 etc init.d 目錄下,就可以被 linux 系統自動識別到該指令碼 如果本指令碼名為 etc init.d nginx,則 service nginx start 就可以啟動該服務 service nginx sto...

站長常用Shell指令碼整理分享31 40

bin bash 顯示當前計算機中所有賬戶的使用者名稱 下面使用3種不同的方式列出計算機中所有賬戶的使用者名稱 指定以 為分隔符,列印 etc passwd 檔案的第 1 列 awk f etc passwd 指定以 為分隔符,列印 etc passwd 檔案的第 1 列 cut d f1 etc ...

站長常用Shell指令碼整理分享51 59

bin bash 一鍵配置 vnc 遠端桌面伺服器 無密碼版本 指令碼配置的 vnc 伺服器,客戶端無需密碼即可連線 客戶端僅有檢視遠端桌面的許可權,沒有滑鼠和鍵盤的操作許可權 rpm quiet q tigervnc serverif ne 0 then yum y tigervnc server...