Shell命令——date的用法

date命令可以用来显示或设定系统的日期与时间。

一、显示系统的日期与时间

(1)如果date命令后面不加任何参数,则会按照固定的格式显示时间信息:

星期几 月份 日 时:分:秒 时区 年

xjh@ubuntu:~/iot/tmp$ date 
Fri Mar  3 16:56:48 CST 2023
xjh@ubuntu:~/iot/tmp$

(2)使用者也可以根据自己的需求,来设定显示的格式,设置显示格式的方式如下。

date +以%开头的控制标志

当这些控制标志之间存在空格时,需要使用双引号把它们括起来,如下所示。

date +"以%开头的控制标志" 
xjh@ubuntu:~/iot/tmp$ date +%H      #以“时”的形式显示当前时间
16
xjh@ubuntu:~/iot/tmp$ date +%H:%M   #以“时:分”的形式显示当前时间
16:56
xjh@ubuntu:~/iot/tmp$ date +%H:%M:%S #以“时:分:秒”的形式显示当前时间
16:56:57
xjh@ubuntu:~/iot/tmp$ date +%H:%M %S #控制标志之间存在空格时,需要使用双引号包围
date: 额外的操作数 "%S"
Try 'date --help' for more information.
xjh@ubuntu:~/iot/tmp$ date +"%H:%M %S"
17:06 44
xjh@ubuntu:~/iot/tmp$

(3)常用的控制标志与含义如下表所示。

xjh@ubuntu:~/iot/tmp$ date
Fri Mar  3 17:25:50 CST 2023
xjh@ubuntu:~/iot/tmp$ 
控制标志 含义 举例(输入"date +控制标志"之后的输出)
日期方面
%a 星期几 (Sun..Sat) Fri
%A 星期几 (Sunday..Saturday) Friday
%b 月份 (Jan..Dec) Mar
%B 月份 (January..December) March
%c 直接显示日期与时间 Fri 03 Mar 2023 05:28:48 PM CST
%d 日(01…31) 03
%D 直接显示日期(月/日/年) 03/03/23
%h 同%b Mar
%j 一年中的第几天 (001..366) 062
%m 月份 (01..12) 03
%U 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形) 09
%w 一周中的第几天 (0..6) 5
%W 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形) 09
%x 直接显示日期,和%D一样? 03/03/2023
%y 年份的最后两位数字 (00…99) 23
%Y 完整年份(0000……9999) 2023
时间方面
%H 小时(00..23) 17

%I(大写i)

小时(01..12) 05
%k 小时(0..23) 17
%M 分钟(00..59) 42
%p 显示本地 AM 或 PM pm
%r 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M) 05:43:29 PM
%s 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 1677836662
%S 秒(00..61) 39
%T 直接显示时间 (24 小时制) 17:45:05
%X 与%r相同? 05:45:35 PM
%Z 显示时区 CST
其他内容
%n 下一行

比如date +%T%n%D,会显示时间后跳行,再显示目前日期。

19:52:52
03/03/23

 (4)可以把无意义的0去掉,比如1999/03/07中03与07前面的0,在控制标记中插入“-”即可。

xjh@ubuntu:~/iot/tmp$ date +%H:%M:%S
08:04:11
xjh@ubuntu:~/iot/tmp$ date +%-H:%-M:%-S
8:4:21
xjh@ubuntu:~/iot/tmp

(5)如何利用date显示以前的时间呢? 使用-d选项,如下所示。

xjh@ubuntu:~/iot/tmp$ date -d "-2 day" "+%Y%m%d %A"
20230301 Wednesday
xjh@ubuntu:~/iot/tmp$ date -d "-2 day" +"%Y%m%d %A"
20230301 Wednesday
xjh@ubuntu:~/iot/tmp$ date -d "-1 day" "+%Y%m%d %A" 
20230302 Thursday
xjh@ubuntu:~/iot/tmp$ date -d "-0 day" "+%Y%m%d %A" 
20230303 Friday
xjh@ubuntu:~/iot/tmp$ date -d "1 day" "+%Y%m%d %A" 
20230304 Saturday
xjh@ubuntu:~/iot/tmp$ date -d "2 day" "+%Y%m%d %A"
20230305 Sunday
xjh@ubuntu:~/iot/tmp$ date -d "-1 month" "+%Y%m%d %A"
20230203 Friday
xjh@ubuntu:~/iot/tmp$ date -d "1 month" "+%Y%m%d %A"
20230403 Monday
xjh@ubuntu:~/iot/tmp$ date --date="2 days ago" "+%Y%m%d %A"
20230301 Wednesday
xjh@ubuntu:~/iot/tmp$

二、设置系统的日期与时间

只有root才有设置系统日期与时间的权限。以 root 身份修改系统时间之后,要以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

这部分内容我们很少关注,这里不叙述了。

猜你喜欢

转载自blog.csdn.net/oqqHuTu12345678/article/details/129323366
今日推荐