讲到shell,最想说的是,真的没有任何好方法,也没有任何捷径。野路子,,,遇到不会的,那就度娘呗,学呗,练呗,一个月不行半年,半年不行一年,我就不信了。
shell脚本可以实现自动化运维,能大大增加我们的运维效率!
后期的各种场景我们都会用到shell,经常用到的就是使用date做一些标记,例如日志分割,。
# date //单纯的显示当前日期
2017年 09月 12日 星期二 21:26:09 CST
[[email protected] ~]# date +%Y // 单纯的四位数 “年”
2017
[[email protected] ~]# date +%y // 二位数 “年”
17
[[email protected] ~]# date +%M // Minute “分钟”
32
[[email protected] ~]# date +%m // Month “月份”
09
[[email protected] ~]# date +%S // Second “秒”
21
[[email protected] ~]# date +%H // Hour “小时”
21
[[email protected] ~]# date +%d // date “日期”
12
[[email protected] ~]# date +%D // 安装如何英文格式输出 “年月日”
09/12/17
[[email protected] ~]# date +%Y%m%d // 四位数 “年月日”
20170912
[[email protected] ~]# date +%y%m%d // 二位数 “年月日”
170912
[[email protected] ~]# date +%F // 特殊格式 “年月日”
2017-09-12
[[email protected] ~]# date +%T // 特殊格式 “时分秒”
21:40:22
[[email protected] ~]# date +%H%M%S // 组合式 “时分秒”
214500
[[email protected] ~]# date +%H:%M:%S // 自定义 “时分秒”
21:45:07
[[email protected] ~]# date +%w // week “周几”
2
[[email protected] ~]# date +%W // 第几周
37
有时候我们在做日志切割的时候往往都是在00:00来操作,但是这个时候切割的日志已经算是今天的了,那么我们如何能够写上昨天的呢?
[[email protected] ~]# date -d "-1 day" +%F // 昨天
2017-09-11
[[email protected] ~]# date -d "-1 month" +%F // 上个月
2017-08-12
[[email protected] ~]# date -d "-1 years" +%F // 上年
2016-09-12
[[email protected] ~]# date -d "-1 hour" +%T // 过去的一小时
21:00:33
[[email protected] ~]# date +%s // 从1970年到现在已经过去多少秒了 “时间戳”
1505225506
换算某个时间点的时间戳:(2018年8月8号8时8分8秒离1970年过去了多少秒)
[[email protected] ~]# date +%s -d "2018-08-08 08:08:08"
1533686888
根据时间戳 得到一个具体的时间
[[email protected] ~]# date -d @1533686888
2018年 08月 08日 星期三 08:08:08 CST
当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替,非常方便且能提高效率节省时间。
wc -l 1.txt
也许如上看起来比较费劲,但是后期真正用到脚本中就会很容易去理解了。