linux系统中有两种时钟: 系统时钟:由linux内核通过cpu的工作频率进行计时,系统启动时内核会自动读取硬件时钟,然后由系统时钟独立运行,之后所有的linux的指令与函数都是读取系统的时钟设定 硬件时钟:主板时钟设备进行计时,可通过bios进行设置。
## > 1>. 显示时间
date命令可以按照指定格式显示日期,只键入date则以默认格式显示当前时间。 在命令行里键入“date”,查看当前系统时间
## > 2>.更改日期时间
> 一般格式:
月日时分年.秒
> 使用特定参数-s,
–set=STRING set time described by STRING(用字符串描述的设置时间) 注意:date -s 只有root才能设置,其他用户只能查看 ```
设置格式一般为:
设置日期为2020年01月01日,时间为00:00:00
设置具体时间,7:18:59 (设置时间时,不会对日期作出修改)
设置全部时间(有多种写法,只列举几种,剩下的请读者自己开动小脑筋哦,照猫画虎~~),使用时取任意一种即可。
(2)date参数详解
**1>.所有参数** %n : 下一行 %t : 跳格 %H : 小时(00-23) %I : 小时(01-12) %k : 小时(0-23) %l : 小时(1-12) %M : 分钟(00-59) %p : 显示本地 AM 或 PM %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M) %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00-60) %T : 直接显示时间 (24 小时制) %X : 相当于 %H:%M:%S %Z : 显示时区 %a : 星期几 (Sun-Sat) %A : 星期几 (Sunday-Saturday) %b : 月份 (Jan-Dec) %B : 月份 (January-December) %c : 直接显示日期与时间 %d : 日 (01-31) %D : 直接显示日期 (mm/dd/yy) %h : 同 %b %j : 一年中的第几天 (001-366) %m : 月份 (01-12) %U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形) %w : 一周中的第几天 (0-6) %W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形) %x : 直接显示日期 (mm/dd/yy) %y : 年份的最后两位数字 (00.99) %Y : 完整年份 (0000-9999) %F :相当于%Y-%m-%d 上述格式不必全都记住,只需要掌握几个常用的即可。例如%Y表示年,%m表示月,%d表示日,%H表示小时,%M表示分钟,%S表示秒,%s表示从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数,相当于time函数,%w表示一周中的第几天。一般用%F与%X
2>.常用命令参数
-d : 查看经过计算后的时间 应用实例: 例如:查看当前时间过后三年的时间和当前时间三年前的时间(‘-’表示当前时间的前几年,“+”表示当前时间的后几年)
查看当前时间过后三月(天)的时间和当前时间三年月(天)的时间(‘-’表示当前时间的前几月(天),“+”表示当前时间的后几月(天))
获取当前时间距离1970年0时0分0秒所经历的秒数,保存在变量中:
(3)date使用时注意事项
这里说的是系统时间,是linux由操作系统维护的。 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。 如果要确保修改生效可以执行如下命令。 #clock –w 这个命令强制把系统时间写入CMOS。
(1)clock作用
**用法**:clock [--adjust][--debug][--directisa][--getepoch][--hctosys][--set --date="<日期时间>"][--setepoch --epoch=< >][--show][--systohc][--test][--utc][--version]作用:Linux clock命令用于调整 RTC 时间。 RTC 是电脑内建的硬件时间,执行这项指令可以显示现在时刻,调整硬件时钟的时间,将系统时间设成与硬件时钟之时间一致,或是把系统时间回存到硬件时钟。
(2)clock参数详解 用法:
hwclock [功能] [选项...]功能:
-h, --help 显示此帮助并退出 -r, --show 读取硬件时钟并打印结果 --set 将 RTC 设置为 --date 指定的时间 -s, --hctosys 从硬件时钟设置系统时间 -w, --systohc 从当前系统时间设置硬件时钟 --systz 基于当前时区设置系统时间 --adjust 根据自上次时钟设置或调整后的系统漂移 来调整 RTC -c, --compare 定期将系统时钟与 CMOS 时钟相比较 --getepoch 打印内核的硬件时钟纪元(epoch)值 --setepoch 将内核的硬件时钟纪元(epoch)值设置为 --epoch 选项指定的值 --predict 预测 --date 选项所指定时刻读取到的 RTC 值 -V, --version 显示版本信息并退出选项:
-u, --utc 硬件时钟保持为 UTC 时间 --localtime 硬件时钟保持为本地时间 -f, --rtc <文件> 代替默认文件的特殊 /dev/... 文件 --directisa 直接访问 ISA 总线,而非 /dev/rtc --badyear 忽略 RTC 年份(由于 BIOS 损坏) --date <时间> 指定要设置的硬件时钟时间 --epoch <年> 指定作为硬件纪元(epoch)值起始的年份 --noadjfile 不访问 /etc/adjtime;需要使用 --utc 或 --localtime 选项 --adjfile <文件> 指定调整文件的路径; 默认为 /etc/adjtime --test 不更新,只显示将进行什么操作 -D, --debug 调试模式应用实例:
查看硬件时间
**
设置硬件时钟时间
显示utc硬件时钟时间
** date是查看当前系统时间的,clock是查看硬件时间
当修改时间,二者查看时间时显示时间相同 修改时间后,查看到的时间不同(当然也可以修改硬件时钟时间)