在Linux中有硬件时钟与系统时钟等两种时钟。
硬件时钟:是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。
系统时钟:是指kernel中 的时钟;所有Linux相关指令与函数都是读取系统时钟的设定。
当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作
用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因。
1、系统时钟
date命令:Linux date命令的用法(转)
-d:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
1)查看系统时间
[root@centos7 ~]# date
2020年 01月 03日 星期五 10:24:55 CST
[root@centos7 ~]# date +"%Y-%m-%d"
2020-01-03
[root@centos7 ~]# date -d "1 day ago" +"%Y-%m-%d"
2020-01-02
2)修改系统时间
[root@centos7 ~]# date -s "2020-01-01 10:15:30"
2020年 01月 01日 星期三 10:15:30 CST
[root@centos7 ~]# date
2020年 01月 01日 星期三 10:16:01 CST
reboot 重启之后会失效
2、硬件时钟
clock 和 hwclock是一个命令
hwclock命令:Linux基础命令---hwclock
-r, --show 读取并打印硬件时钟(read hardware clock and print result )
-s, --hctosys 将硬件时钟同步到系统时钟(set the system time from the hardware clock )
-w, --systohc 将系统时钟同步到硬件时钟(set the hardware clock to the current system time )
--adjust hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
--debug 显示hwclock执行时详细的信息。
--directisa hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
--hctosys 将系统时钟调整为与目前的硬件时钟一致。
--set --date= 设定硬件时钟。
--show 显示硬件时钟的时间与日期。
--systohc 将硬件时钟调整为与目前的系统时钟一致。
--test 仅测试程序,而不会实际更改硬件时钟。
--utc 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
--version 显示版本信息。
1)查看硬件时间
[root@centos7 ~]# hwclock
2020年01月03日 星期五 10时30分44秒 -1.019030 秒
2)修改硬件时间
[root@centos7 ~]# hwclock --set --date="2020-01-02 10:47:00"
[root@centos7 ~]# hwclock
2020年01月02日 星期四 10时47分08秒 -0.869046 秒
3)将系统时钟设置成硬件时间
[root@centos7 ~]# hwclock -w
[root@centos7 ~]# date
2020年 01月 01日 星期三 10:25:18 CST
[root@centos7 ~]# hwclock
2020年01月01日 星期三 10时25分48秒 -1.004697 秒
4)将硬件时钟设置成系统时间
[root@centos7 ~]# date
2020年 01月 01日 星期三 10:38:54 CST
[root@centos7 ~]# hwclock
2020年01月02日 星期四 10时49分15秒 -0.560274 秒
[root@centos7 ~]# hwclock -s
[root@centos7 ~]# date
2020年 01月 02日 星期四 10:49:46 CST
reboot 重启之后我这边也会失效
修改时区与修改系统时间配置文件,后面了解
二、关机重启命令及7个启动级别1、shutdown命令
功能:关闭或重启系统
使用权限:系统管理者。
语法
shutdown [-t seconds] [-rkhncfF] time [message]
参数说明:
-t seconds : 设定在几秒钟之后进行关机程序。
-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
-r : 关机后重新开机。
-h : 关机后停机。
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c : 取消目前已经进行中的关机动作。
-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。
-F : 关机时,强迫进行 fsck 动作。
time : 设定关机的时间。
message : 传送给所有使用者的警告讯息。
实例:
立即关机后重启系统,和 reboot 效果一样:# shutdown -r now
立即关机后不重启系统,即,关闭系统且关闭电源:# shutdown -h now
10分钟后重启:# shutdown -r +10
10点钟关机:# shutdown -h 10:00
系统在5分钟内关机,并告诉所有用户:# shutdown -h +5 "Warning! The system will halt after 5 minutes."
2、reboot命令
若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代
功能:用于重启系统
使用权限:所有用户可使用
语法
reboot [-n] [-w] [-d] [-f] [-i]
参数:
-n : 在重开机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f : 强迫重开机,不呼叫 shutdown 这个指令
-i : 在重开机之前先把所有网络相关的装置先停止
实例:
重新启动:# reboot
3、halt命令
若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。
功能:用于重启系统
使用权限:所有用户可使用
语法
halt [-n] [-w] [-d] [-f] [-i] [-p]
参数:
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
-i : 在关机之前先把所有网络相关的装置先停止
-p : 当关机的时候,顺便做关闭电源(poweroff)的动作
实例:
关闭系统:# halt
关闭系统并关闭电源:# halt -p
4、poweroff 命令
功能:关闭计算机操作系统并且切断系统电源。
使用权限:所有用户可使用
语法
poweroff [参数]
参数:
-n:关闭操作系统时不执行sync操作;
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
-f:强制关闭操作系统;
-i:关闭操作系统之前关闭所有的网络接口;
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
实例:
关闭系统后关闭电源:# poweroff -p
5、init命令(telinit命令使用一样的语法)
init命令详解:https://www.cnblogs.com/machangwei-8/p/10392118.html
功能:用于关闭系统
使用权限:超级管理员使用
语法
init [0-6Ss]
参数:
0-6:表示系统的7个运行级别
S或s:配合开机执行级别1时使用,表示开机后不参考/etc/inittab文件
实例:
重启系统:#init 6
关机:init 0
6、7个启动级别
命令:init 0-6
作用:切换系统运行级别
0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
2 多用户模式,没有NFS和网络支持
3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5 图形化模式,登陆后进入图形GUI模式,X Window系
6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
注意:万万不能把默认设为 0 或者 6。因为0代表关机,6代表重启。常用级别为 3 和 5。
1)查看当前默认下运行的级别:
这两个命令都可以
[root@centos7 ~]# runlevel
N 3
[root@centos7 ~]# systemctl get-default
multi-user.target
2)设置默认的运行级别(常用级别)
设置默认第三启动级别( multi-user.target表示第 3级):# systemctl set-default multi-user.target
设置默认第五启动级别(graphical.target表示第5级):# systemctl set-default graphical.target
结论:
Linux系统中的关机命令:
命令参数列表使用权限init0rootshutdown-h nowroothalt-pall userpoweroff-pall user
Linux系统中的重启命令:
命令参数列表使用权限init6rootshutdown-r nowrootreboot可选项all user
更详细的可参考上面标注的文章
站在前辈的肩膀上,每天进步一点点
ends~