theme: channing-cyan
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
在Linux操作系统中,我们运行的指令都是立马执行的,那怎么延迟、定时执行呢?接下来几篇我们将学习时间相关的命令,包括
date
,at
,sleep
,crontab
等,这篇文章我们以常用的date
开头。
一、基础使用
date
的使用方式相当简单,下面的指令当前系统时间。
$date
输出结果如下:
Fri Sep 25 02:03:35 EDT 2021
输出内容的解释如下:
- Fri - Friday 的缩写,表示<星期五>
- Sep - September的缩写,表示<九月>
- 25 - 表示25日,所以当前日期是9月25日
- 02:03:35 - 表示2点3分35秒
- EDT - 表示美国时间里面的美国东部夏令时间,比北京时间晚12小时
- 2021 - 表示2021年
打印的时间格式有些复杂,难以理解。我们还可以自定义输出格式。
二、定制输出格式
用自定义输出格式,我们可以使用命令man date
参考手册,有选择性和格式化的输出内容。
获取当前时刻的分钟数
$date "+%M"
控制的输出为
23
自定义样式各异的时分秒格式
date "+%H:%M:%S"
控制台输出
02:31:22
另外还能自定义中文分隔符
date "+%H时%M分%S秒"
控制台输出
02时31分10秒
是不是特别有趣,有没有摸清楚规律?我简单总结一下这个玩法:
- 自定义
date
命令的输出,需要使用到+
,然后后面接其它的符号,表示不同的定制部分,这些信息尽量写在双引号之间。 - %H %M %S ,显而易见,英文的缩写,分别表示小时数、分钟数、秒数。扩展,%Y 表示年,依次类推。
- 可自定义分隔符区分数据。
- 不明白的地方请使用
man date
。
三、扩展
你认为date
的功能就这样了,那你就太小瞧了它了,它甚至还能用来修改系统时间。
$sudo date 10101010
使用root用户权限,修改时间为10月10日10时10分,没有指定年份和秒数,所以这两个不改变。
今天这篇文章讲的是时间定义上的时刻,下一篇文章讲at
延时执行命令。