Linux的两种时钟
- 系统时钟:由
Linux
内核通过CPU
的工作频率进行的 - 硬件时钟:主板
date
显示和设置系统时间,通过 man date
可以获取帮助。
## 显示日期时间
[xingmu@shanghai ~]$ date
Sat Apr 9 00:00:29 CST 2022
# 年月日
[xingmu@shanghai ~]$ date +%F
2022-04-09
# 时分秒
[xingmu@shanghai ~]$ date +%T
00:00:55
# 拼接
[xingmu@shanghai ~]$ date +"%F %T"
2022-04-09 00:01:06
# 年
[xingmu@shanghai ~]$ date +%Y
2022
# 月
[xingmu@shanghai ~]$ date +%m
04
# 日
[xingmu@shanghai ~]$ date +%d
09
[xingmu@shanghai ~]$ date +%c
Sat 09 Apr 2022 12:01:34 AM CST
# 时
[xingmu@shanghai ~]$ date +%H
00
# 分
[xingmu@shanghai ~]$ date +%M
01
#秒
[xingmu@shanghai ~]$ date +%S
02
[xingmu@shanghai ~]$ date +"%Y-%m-%d %H:%M:%S"
2022-04-09 00:02:39
# 星期几简写
[xingmu@shanghai ~]$ date +"%a"
Sat
[xingmu@shanghai ~]$ date +"%A"
Saturday
# 月份简写
[xingmu@shanghai ~]$ date +"%b"
Apr
[xingmu@shanghai ~]$ date +"%B"
April
# 显示从1970年1月1日(`unix`元年)0点0分0秒到命令执行那一刻所经过的秒数,这里是小写的`s`
[xingmu@shanghai ~]$ date +"%s"
1649433812
设定日期时间
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
[[CC]YY]
四位年或者两位年,如果没有,则默认使用当前年。
# 调整为昨天的时间
[xingmu@shanghai ~]$ sudo date -s yesterday
Fri Apr 8 00:31:14 CST 2022
sudo date 111123382020.59
clock
查询或设置硬件时钟,该命令是hwclock
命令的硬链接。
file /usr/sbin/clock
# /usr/sbin/clock: symbolic link to `hwclock'
linux
上有两套时钟,系统时钟(date
命令)和硬件时钟(clock
),主板上有个纽扣电池一直在为主板始终供电,让硬件时钟保持运行。
linux
系统启动时,从硬件读取日期和时间信息,读取完成后,就不再与硬件相关联,之后靠内核来更新系统时钟。
同步系统和硬件时间
-s, --hctosys set the system time from the hardware clock
-w, --systohc set the hardware clock from the current system time
时区
# 显示所有可用时区
[xingmu@shanghai ~]$ timedatectl list-timezones
# 设置时区为 Asia/Shanghai , 受影响的是 /etc/localtime 文件
[xingmu@shanghai ~]$ timedatectl set-timezone Asia/Shanghai
[xingmu@shanghai ~]$ ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Mar 13 19:54 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
[xingmu@shanghai ~]$ timedatectl status
Local time: Sat 2022-04-09 00:43:04 CST
Universal time: Fri 2022-04-08 16:43:04 UTC
RTC time: Fri 2022-04-08 16:43:04
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
日历
# 显示指定年月
[xingmu@shanghai ~]$ cal 4 2022
April 2022
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
# 显示当前月
[xingmu@shanghai ~]$ cal -m
April 2022
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
# 显示年,如果不指定,显示当前系统所在年
[xingmu@shanghai ~]$ cal -y 2020
2020
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 1 2 3 4 5 6 7
5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14
12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21
19 20 21 22 23 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28
26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 2 1 2 3 4 5 6
5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
26 27 28 29 30 24 25 26 27 28 29 30 28 29 30
31
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 1 2 3 4 5
5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30
30 31
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5
4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12
11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19
18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26
25 26 27 28 29 30 31 29 30 27 28 29 30 31