shell是什麼
- 是一種腳本語言
- 能夠使用邏輯判斷、循環等語法
- 能夠自定義函數
- shell是系統命令的集合
- shell腳本能夠實現自動化運維,能大大增長運維效率
shell 腳本結構與執行方法
- 默認狀況下,shell腳本的後綴名是<span>.</span>sh
- 通常執行方式是 bash(shell命令解釋器,還能夠是sh,zsh等)+sh腳本
- 第二種是用點(.)或source來執行,例如,. a<span>.</span>sh,這種執行方式和上面的差很少,都會單獨啓動一個shell進程來執行
- 第三種是路徑執行(當前目錄下須要使用./a<span>.</span>sh),不過這種執行方式必須在shell腳本的開頭加命令解釋器#!/bin/bash,還須要加可執行的權限(chmod +x a<span>.</span>sh)
- 查看腳本執行過程bash -x a<span>.</span>sh
- 查看腳本是否語法錯誤 bash -n a<span>.</span>sh
date命令
常見的date命令選項shell
-d 字符串: 顯示字符串所指的日期和時間。字符串必須加雙引號,時間戳能夠不加。
-s 字符串: 根據字符串來設置日期與實踐。字符串必須加雙引號。
-u: 顯示GTM時間
常見參數:bash
%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%k 小時,24小時制(0~23)
%l 小時,12小時制(1~12)
%M 分鐘(00~59)
%p 顯示出AM或PM
%r 顯示時間,12小時制(hh:mm:ss %p)
%s 從1970年1月1日00:00:00到目前經歷的秒數
%S 顯示秒(00~59)
%T 顯示時間,24小時制(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S)
%Z 顯示時區,日期域(CST)
%a 星期的簡稱(Sun~Sat)
%A 星期的全稱(Sunday~Saturday)
%h,%b 月的簡稱(Jan~Dec)
%B 月的全稱(January~December)
%c 日期和時間(Tue Nov 20 14:12:58 2012)
%d 一個月的第幾天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第幾天(001~366)
%m 月份(01~12)
%w 一個星期的第幾天(0表明星期天)
%W 一年的第幾個星期(00~53,星期一爲第一天)
%y 年的最後兩個數字(1999則是99)
加減操做運維
date -d "+1day" 一天後
date -d "-1 day" 一天前
date -d "-1 month" 一月前
date -d "-1 min" 一分鐘前
何時使用變量
- 當腳本中使用某個字符串較頻繁而且字符串長度很長時就應該使用變量代替
- 使用條件語句時,常使用變量 if [ $a -gt 1 ]; then ... ; fi
- 引用某個命令的結果時,用變量替代 n=
wc -l 1.txt
- 寫和用戶交互的腳本時,變量也是必不可少的 read -p "Input a number: " n; echo $n 若是沒寫這個n,能夠直接使用$REPLY
- 內置變量 $0, $1, $2… $0表示腳本自己,$1 第一個參數,$2 第二個 .... $#表示參數個數
- 數學運算a=1;b=2; c=$(($a+$b))或者$[$a+$b]