十六周二次課(2月5日)
20.1 shell指令碼介紹
20.2 shell指令碼結構和執行
20.3 date命令用法
20.4 shell指令碼中的變數
什麼是shell
shell是一種指令碼語言 aming_linux blog.lishiming.net
可以使用邏輯判斷、迴圈等語法
可以自定義函式
shell是系統命令的集合
shell指令碼可以實現自動化運維,能大大增加我們的運維效率
shell指令碼結構和執行方法
開頭需要加#!/bin/bash
以#開頭的行作為解釋說明
指令碼的名字以.sh結尾,用於區分這是乙個shell指令碼
執行方法有兩種
chmod +x 1.sh; ./1.sh
bash 1.sh
檢視指令碼執行過程 bash -x 1.sh
檢視指令碼是否語法錯誤 bash -n 1.sh
date命令的用法
date +%y-%m-%d, date +%y-%m-%d 年月日
date +%h:%m:%s = date +%t 時間
date +%s 時間戳
date -d @1504620492
date -d 「+1day」 一天後
date -d 「-1 day」 一天前
date -d 「-1 month」 一月前
date -d 「-1 min」 一分鐘前
date +%w, date +%w 星期
[root@dl-001 shell]# date
//檢視當前時間
2023年 01月 20日 星期六 10:10:25 cst
[root@dl-001 shell]# cal //檢視系統日期
一月 2018
日 一 二 三 四 五 六
1234567
891011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
[root@dl-001 shell]# date +%y
//檢視當前年份(四位顯示)
2018
[root@dl-001 shell]# date +%y
//檢視當前年份(簡化顯示)
18[root@dl-001 shell]# date
"+%y-%m-%d %h:%m:%s %w"
//檢視當前 年 月 日 時 分 秒 星期
2018-01-20
10:11:15
6[root@dl-001 shell]# date +%f
//檢視當前完整的年月日
2018-01-20
[root@dl-001 shell]# date +%w
//檢視當前時間是一年的第幾周
03[root@dl-001 shell]# date +%t
//檢視當前時間是幾點
10:11:39
[root@dl-001 shell]# date +%s
//檢視時間戳(顯示從2023年1月1日00:00:00到目前經歷的秒數)
1516414309
//時間戳的換算
[root@dl-001 shell]# date +%s -d "2018-01-20 22:00:00"
1516456800
[root@dl-001 shell]# date -d @1516456800
2023年 01月 20日 星期六 22:00:00 cst
//列印指定日期和時間
[root@dl-001 shell]# date -d "-2 day" +%d
18[root@dl-001 shell]# date -d "-1 year -3 month -1 day" +%y-%m-%d
2016-10-19
//手動設定當前時間
[root@dl-001 shell]# date -s "2017-5-20 12:00:00"
2023年 05月 20日 星期六 12:00:00 cst
[root@dl-001 shell]# date
2023年 05月 20日 星期六 12:00:03 cst
//同步網路時間
[root@dl-001 shell]# yum install -y ntp
[root@dl-001 shell]# ntpdate ntp.ubuntu.com
20 jan 10:47:42 ntpdate[8615]: step time server 91.189
.89.198 offset 21163558.201100 sec
[root@dl-001 shell]# date
2023年 01月 20日 星期六 10:47:45 cst
shell指令碼中的變數
當指令碼中使用某個字串較頻繁並且字串長度很長時就應該使用變數代替
使用條件語句時,常使用變數 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]
shell 中date 的用法
1.獲取離今天的上週 上月 下週 下月的日期 html view plain copy date d 1 week y m d a date d 1 day y m d a date d 2 day y m d a date d 1 month y m d a date d 1 month y m ...
Shell中date的用法
man date可以看到date的help檔案 date 獲取當前時間 date d 1week y m d 獲取上週日期 day,month,year,hour date date 24 hour y m d 同上 date now date s shell指令碼裡面賦給變數值 輸出 符號 a 當...
shell 中 date的用法
1.獲取離今天的上週 上月 下週 下月的日期 html view plain copy date d 1 week y m d a date d 1 day y m d a date d 2 day y m d a date d 1 month y m d a date d 1 month y m ...