Shell Shell介紹及常用shell指令碼

2022-05-19 10:37:15 字數 1935 閱讀 3605

shell介紹

shell是乙個用c編寫的程式,是使用者和系統核心互動的工具。它既是一種命令語言也是一種解釋性的程式語言。

shell的功能

1. 命令列解釋功能。解析命令列中輸入的命令。比如ls,cp,df等等。

2. shell程式設計,可以開發一些自動化的小工具。比如系統中很多啟動指令碼就是用shell開發的。

3. 變數維護。比如列印當前使用者echo $user。

4. 啟動程式,比如啟動apache,nginx等。

5. 輸入輸出重定向。

shell指令碼

定義:

shell指令碼就是將完成乙個任務的所有命令按照執行的順序,自上而下寫入到乙個文字檔案中,然後給予可執行許可權。

指令碼書寫規範

1. shell指令碼檔案命名不要用無意義的字母或者數字,要見名之意。副檔名用.sh結尾。檔名總長度最好不要超過30個字元。

2. 指令碼開頭第一行定義指令碼執行環境,如 #!/bin/bash 或者 #!/bin/sh,前面#!這個稱之為幻數,後面跟的是解釋此指令碼的shell的路徑,核心會根據它來決定用哪個程式來執行。預設是用bash來解釋。

3. 指令碼開頭要寫一些必要的指令碼注釋資訊,就是該指令碼的作用,如果沒有注釋會很難理解指令碼的功能,只能通讀一遍**,這樣會浪費很多寶貴時間。下面是乙個例子。

#author :songguojun

#created at :

2019-10-10

#release :

1.0#script description: nginx

install

shell指令碼實際案例

1.檢查主機存活狀態

#!/bin/bash  

ip_list="

192.168.18.1 192.168.1.1 192.168.18.2

"for ip in $ip_list; do

num=1

while [ $num -le 3 ]; do

ifping -w 2 $ip > /dev/null; then #設定兩秒超時時間

echo

"$ip ping is successful.

"break

else

# echo

"$ip ping is failure $num

"fail_count[$num]=$ip

let num++

fidone

if [ $ -eq 3 ];then

echo

"$ ping is failure!

"unset fail_count[*]

fidone

2.遍歷兩個時間段並動態修改時間

#!/bin/bash

#用法 : sh time.sh 2019-01-01 2020-01-01

export_start_date=$1

export_end_date=$2

date -s "

$export_start_date

" > /dev/null

i=$export_start_date

while [[ $i < `date -d "

+1 day $export_end_date

" +%y%m%d` ]]

doecho

$ii=`date -d "

+1 day $i

" +%y-%m-%d`

done

tqdm介紹及常用方法

tqdm 是乙個快速,可擴充套件的python進度條,可以在 python 長迴圈中新增乙個進度提示資訊,使用者只需要封裝任意的迭代器 tqdm iterator 使用pip就可以安裝。使用方法一 tqdm tqdm list 方法可以傳入任意一種list,比如陣列 from tqdm import...

Session介紹及常用API

session 是另一種記錄瀏覽器狀態的機制。不同的是cookie儲存在瀏覽器中,session儲存在伺服器中。使用者使用瀏覽器訪問伺服器的時候,伺服器把使用者的資訊以某種形式記錄在伺服器中,這就是session.如果說cookie是檢查使用者身上的 通行證 來確認使用者的身份,那麼session就...

SpringBoot常用註解及介紹

parmas 指定request中必須包含某些引數值,才讓該方法處理。headers 指定request中必須包含某些指定的header值,才能讓該方法處理請求。method 指定請求的method型別 consumes 指定處理請求的提交內容型別,content type produces 指定返...