系列文章目录
命令1: linux基本功系列-ls命令实战
命令2: linux基本功系列之echo命令实战
命令3:linux基本功之历史记录history命令实战
命令4: linux基本功之date命令实战
前言
在日常工作中,我们经常会用到date命令来判断任务执行的时间,或者使用date命令去实现时间段内的工作任务,今天我们一起来探讨下date命令
:blush:
一、date简介
date 英[deɪt] 日期,时间,时间,约会时间,海枣
date 命令用于 显示 或 设置系统的时间或日期。
date命令来自于英文单词的时间、时钟
:stuck_out_tongue_winking_eye:
二、常用参数
2.1 date命令的使用格式
格式:date [参数] [+日期格式]
2.2 常用参数和格式
常用参数
常用格式:
%y 年份最后两位数位 (00-99)
%Y 年份
%m month (01..12)
%d 月计的日期(例如:01)
%M minute (00..59)
%H 小时(00-23)
%S 秒(00-60)
%t 输出制表符号
2.3 date应用事例
2.3.1 以默认格式输出系统当前的日期与时间信息
[root@mufenggrow ~]# date
2023年 01月 11日 星期三 19:16:52 CST
2.3.2 按照年-月-日的指定格式输出日期
[root@mufenggrow ~]# date +%F
2023-01-11
以上方式类似与:
[root@mufenggrow ~]# date "+%Y-%m-%d"
2023-01-11
2.3.3 按格式年-月-日 时:分:秒输出当前日期
[root@mufenggrow ~]# date "+%Y-%m-%d %H:%M:%S"
2023-01-11 19:20:06
2.3.4 使用-d参数指定时间运算
格式: date -d '运算规则'
作用:指定时间运算规则,date会将当前时间做指定的运算,然后输出运算后的时间
[root@mufenggrow ~]# date -d '3 minutes' ## 三分钟后
2023年 01月 11日 星期三 19:24:10 CST
[root@mufenggrow ~]# date -d '3 days'
2023年 01月 14日 星期六 19:21:17 CST
[root@mufenggrow ~]#
[root@mufenggrow ~]# date
2023年 01月 11日 星期三 19:21:50 CST
[root@mufenggrow ~]# date -d '-3 minutes'
2023年 01月 11日 星期三 19:18:51 CST
[root@mufenggrow ~]#
2.3.5 使用 -f 参数
格式:date -f 文件路径
作用:可将-d参数指定的运算规则写入文件中,通过-f参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间。
[root@mufenggrow ~]# cat >>/root/datefile <<EOF
> date
> 1 years ago
> 3 months
> 2 days
> 1 year
> -3 days
> EOF
[root@mufenggrow ~]# date -f datefile
date: 无效的日期"date"
2022年 01月 11日 星期二 19:26:08 CST
2023年 04月 11日 星期二 19:26:08 CST
2023年 01月 13日 星期五 19:26:08 CST
2024年 01月 11日 星期四 19:26:08 CST
2023年 01月 08日 星期日 19:26:08 CST
[root@mufenggrow ~]#
可以看到,直接写date是不行的,文件内容应该写运算规则。
2.3.6 -s 参数,修改系统时间
格式:date -s ‘字符串’
作用:根据-s指定的内容设定系统的时间。执行此命令需要提权
[root@mufenggrow ~]# date -s " 20121212 8:30:00"
2012年 12月 12日 星期三 08:30:00 CST
[root@mufenggrow ~]# date
2012年 12月 12日 星期三 08:30:01 CST
[root@mufenggrow ~]#
如果要还原 回来需要用到时间同步服务器,ntpdate
比如要与上海时区时间同步:
[root@mufenggrow ~]# ntpdate -u ntp.api.bz
11 Jan 19:39:30 ntpdate[75487]: step time server 114.118.7.161 offset 318164310.373762 sec
[root@mufenggrow ~]# date
2023年 01月 11日 星期三 19:39:32 CST
[root@mufenggrow ~]#
2.3.7 -r 显示文件最后被修改的时间
-r 等于 --reference
使用方法:
格式:date -r 文件路径
作用:显示指定文件最后被修改的时间。
t@mufenggrow ~]# date -r datefile
2023年 01月 11日 星期三 19:25:57 CST
[root@mufenggrow ~]#
注:cat查看文件不影响,vim进入文件即会修改时间
2.3.8 计算1970年距今的秒数
date +%s
//从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数(时间戳)
[root@mufenggrow ~]# date +%s
1673437755
这个秒数带了时区计算,所以得额外判断时区。
检测一组命令花费的时间:
[root@mufenggrow ~]# cat a.sh
start=$(date +%s)
ping -c10 -w10 www.baidu.com &>/dev/null
end=$(date +%s)
diff=$((end - start))
echo $diff seconds
总结
关于date的命令我们就探讨完了,一天的学习结束了,我们明天再见。