shell是一種腳本語言python
可使用邏輯判斷、循環等語法 能夠自定義函數shell
shell是系統命令的集合vim
shell腳本能夠實現自動化運維,能大大增長咱們的運維效率bash
開頭須要加#!/bin/bash運維
以#開頭的行做爲解釋說明函數
腳本的名字以.sh結尾,用於區分這是一個shell腳本spa
[root@lynn-04 shell]# vim 01.sh #!/bin/bash echo '123' w ls
執行方法有兩種 chmod +x 01.sh; ./01.shcode
[root@lynn-04 shell]# chmod +x 01.sh; ./01.sh 123 07:39:49 up 22:59, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.130.1 Tue08 5.00s 0.23s 0.00s w 01.sh 01if.sh 99.sh
bash 1.sh字符串
[root@lynn-04 shell]# sh 01.sh 123 07:40:17 up 23:00, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.130.1 Tue08 1.00s 0.23s 0.00s sh 01.sh 01.sh 01if.sh 99.sh
查看腳本執行過程 bash -x 1.sh自動化
[root@lynn-04 shell]# sh -x 01.sh + echo 123 123 + w 07:40:59 up 23:00, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.130.1 Tue08 3.00s 0.23s 0.00s sh -x 01.sh + ls 01.sh 01if.sh 99.sh
查看腳本是否語法錯誤 bash -n 1.sh
[root@lynn-04 shell]# sh -n 01.sh [root@lynn-04 shell]#
date +%Y 單獨顯示 年
[root@lynn-04 ~]# date +%Y 2018
date +%m 單獨顯示 月
[root@lynn-04 ~]# date +%m 04
date +%d 單獨顯示 日
[root@lynn-04 ~]# date +%d 18
date +%Y%m%d 顯示年月日
[root@lynn-04 ~]# date +%Y%m%d 20180418
date +%Y-%m-%d 格式化顯示 年-月-日
[root@lynn-04 ~]# date +%Y-%m-%d 2018-04-18
date +%F 格式化顯示 年-月-日
[root@lynn-04 ~]# date +%F 2018-04-18
date +%H 單獨顯示 時
[root@lynn-04 ~]# date +%H 08
date +%M 單獨顯示 分
[root@lynn-04 ~]# date +%M 42
date +%S 單獨顯示 秒
[root@lynn-04 ~]# date +%S 26
date +%H:%M:%S 格式化顯示 時:分:秒
[root@lynn-04 ~]# date +%H:%M:%S 08:42:50
date +%T 格式化顯示 時:分:秒
[root@lynn-04 ~]# date +%T 08:43:04
date +%s 時間戳
[root@lynn-04 ~]# date +%s 1524012212
date -d @1524012212
[root@lynn-04 ~]# date -d @1524012212 Wed Apr 18 08:43:32 CST 2018
date 當前日期
[root@lynn-04 ~]# date Wed Apr 18 08:45:31 CST 2018
date -d "+1day" 一天後
[root@lynn-04 ~]# date -d "+1day" Thu Apr 19 08:44:51 CST 2018
date -d "-1 day" 一天前
[root@lynn-04 ~]# date -d "-1day" Tue Apr 17 08:45:47 CST 2018
date -d "-1 month" 一月前
[root@lynn-04 ~]# date -d "-1month" Sun Mar 18 08:46:11 CST 2018
date -d "-1 min" 一分鐘前
[root@lynn-04 ~]# date Wed Apr 18 08:46:27 CST 2018 [root@lynn-04 ~]# date -d "-1min" Wed Apr 18 08:45:37 CST 2018
date +%w 星期幾
[root@lynn-04 ~]# date +%w 3
date +%W 當前是今年的第幾個星期
[root@lynn-04 ~]# date +%W 16
當腳本中使用某個字符串較頻繁而且字符串長度很長時就應該使用變量代替
使用條件語句時,常使用變量
if [ $a -gt 1 ]; then ... ; fi
[root@lynn-04 shell]# vim if1.sh #/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi
if [ $a -gt 1 ]; then ;esle... ; fi
[root@lynn-04 shell]# vim if2.sh #/bin/bash a=2 if [ $a -gt 3 ] then echo ok else echo nook fi
if …; then … ;elif …; then …; else …; fi
[root@lynn-04 shell]# vim if3.sh #/bin/bash a=4 if [ $a -gt 5 ] then echo ok elif [ $a -gt 3 ] echo "3<a<5" else echo nook fi