3.3 系统时间管理
在Linux中,时钟分为硬件时钟和系统时钟。硬件时钟指主机板上的时钟设备,就是可在BIOS画面设定的时钟,系统时钟指Kernel中的时钟,所有Linux相关指令与函数都是读取系统时钟的设定。
当Linux启动时,系统时钟会读取硬件时钟的设定,之后系统时钟独立运作。
3.3.1 两种时钟
在计算机中,时间是靠“晶体振荡器”来实现的,晶体振荡器需要依靠电力才能振荡起来,在计算机主板中有一个纽扣电池可维持晶体振荡器的振荡,从而实现计算机在关机断电后,时间也不会出现错乱,这种时钟称为硬件时钟,也称为实时时钟(RTC)。在Windows系统中,每次启动时都会读取硬件时钟的当前时间,然后设置为当前的系统时间,在电池没有电的情况下,时间会出现不正确的现象,此时需要手动调整。
Linux与Windows有所不同,Linux会通过RTC读取当前时间,一旦读取成功后就不再读取RTC时间,因为读取成功以后Linux内核会通过软件的方式模拟振荡器的振荡,在系统内部维持时间,所以,Linux开机以后会有硬件时钟和系统时钟两个时钟。
只要Linux在运行当中,就会在CPU的作用下自动进行计时。系统时钟有可能因为CPU繁忙而导致计时准确率下降,硬件时钟在电池的供电下会一直保持准确性。
1.查看硬件时间
命令:hwclock。
作用:查看或修改硬件时间。
命令使用格式:hwclock [选项]。
2.手动修改硬件时间和系统时间
3.查看系统时间
命令:date。
时区:
UTC(Universal Time Coordinated):世界标准时间。
GMT(Greenwich Mean Time):格林威治标准时间。
CST(China standard Time):中国标准时间。
4.使用date命令修改时间
命令使用格式:date [选项]。
使用-s或--set=STRING参数把时间设为字符串所描述的时间。
例3.5:查看和修改时间示例。
2018年11月02日 星期五 22:30:00 CST
date命令指定显示日期和时间格式的方法如下。
%F:完整日期格式,等价于 %Y-%m-%d。
%y:年份最后两位数字,范围是00~99。
%Y:年份。
%m:月份,范围是01~12。
%d:按月计的日期(如01)。
%M:分,范围为00~59。
%H:小时,范围是00~23。
%S:秒,范围是00~60。
3.3.2 time命令
作用:一般用来测量一个命令的运行时间。
使用方法:在time后面直接跟上命令和参数。
说明如下。
(1)real:实际使用时间。
(2)user:用户状态使用的时间。
(3)sys:内核状态使用的时间。