Linux通过命令提示符设置日期和时间
如何在命令提示符(bash shell)中设置系统日期和时间?我没有安装GUI,并且正在通过ssh会话登录。如何在Linux操作系统下设置日期?使用date命令显示当前日期和时间,或通过ssh会话设置系统日期/时间。您也可以从X终端以root用户身份运行date命令。 如果Linux服务器的时间和/或日期不正确,并且需要在shell提示符下将其设置为新值,则此功能很有用。
您必须以root用户身份登录才能使用date命令。
Linux显示当前日期和时间
只需输入date命令:
$ date
输出示例:
Mon Jan 21 01:31:40 IST 2019
Linux显示硬件时钟(RTC)
执行以下hwclock命令以读取硬件时钟并在屏幕上显示时间:
# hwclock -r
或者
# hwclock --show $ sudo hwclock --show --verbose
或以世界标准时间(UTC)显示它:
# hwclock --show --utc
输出示例:
2019-01-21 01:30:50.608410+05:30
Linux Set Date命令示例
使用以下语法设置新数据和时间:
date --set="STRING"
例如,将新数据设置为2006年10月2日18:00:00,以root用户身份执行以下命令:
# date -s "2 OCT 2006 18:00:00"
或者
# date --set="2 OCT 2006 18:00:00"
您还可以使用以下语法简化格式:
# date +%Y%m%d -s "20081128"
Linux Set Time示例
要设置时间,请使用以下语法:
# date +%T -s "10:13:13"
其中:
- 10:小时(hh)
- 13:分钟(mm)
- 13:秒(ss)
使用与AM或PM等效的%p语言环境,执行:
# date +%T%p -s "6:10:30AM" # date +%T%p -s "12:10:30PM"
如何将硬件时钟设置为当前系统时间?
使用以下语法:
# hwclock --systohc
或者
# hwclock -w
关于基于系统的Linux系统的注释
对于基于systemd的系统,您需要使用timedatectl命令来设置或查看当前日期和时间。
最现代的发行版,例如RHEL/CentOS v.7.x +,Fedora Linux,Debian,Ubuntu,Arch Linux和其他基于systemd的系统,都需要timedatectl实用程序。
请注意,以上命令也应在现代系统上运行。
timedatectl:显示当前日期和时间
执行以下命令:
$ timedatectl
Systemd Linux timedatecetl命令显示当前日期和时间
如何使用timedatectl命令更改当前日期?
要更改当前日期,请以root用户身份执行以下命令:
# timedatectl set-time YYYY-MM-DD
或者
$ sudo timedatectl set-time YYYY-MM-DD
例如,将当前日期设置为2014-12-01(2014年12月1日):
# timedatectl set-time '2014-12-01' # timedatectl
输出示例:
Local time: Tue 2014-12-01 00:00:03 EST Universal time: Tue 2014-12-01 05:00:03 UTC RTC time: Tue 2014-12-01 05:00:03 Time zone: America/New_York (EST, -0500) NTP enabled: no NTP synchronized: no RTC in local TZ: no DST active: no Last DST change: DST ended at Sun 2014-11-01 01:59:59 EDT Sun 2014-11-01 01:00:00 EST Next DST change: DST begins (the clock jumps one hour forward) at Sun 2015-03-13 01:59:59 EST Sun 2015-03-13 03:00:00 EDT
要同时更改日期和时间,请使用以下语法:
# timedatectl set-time YYYY-MM-DD HH:MM:SS
其中:
- HH:一个小时。
- MM:一分钟。
- SS:秒,全部以两位数字形式输入。
- YYYY:四位数的年份。
- MM:两位数的月份。
- DD:每月的两位数字。
例如,将日期设置为2014年11月23日,时间设置为上午8:10:40,执行:
# timedatectl set-time '2014-11-23 08:10:40' # date
如何仅设置当前时间?
语法为:
# timedatectl set-time HH:MM:SS # timedatectl set-time '10:42:43' # date
输出示例:
Mon Nov 23 08:10:41 EST 2014
如何使用timedatectl命令设置时区?
要查看列出所有可用时区,请执行:
$ timedatectl list-timezones $ timedatectl list-timezones | more $ timedatectl list-timezones | grep -i asia $ timedatectl list-timezones | grep America/New
要将时区设置为亚洲/加尔各答,请执行:
# timedatectl set-timezone 'Asia/Kolkata'
验证一下:
# timedatectl
Local time: Mon 2014-11-23 08:17:04 IST Universal time: Mon 2014-11-23 02:47:04 UTC RTC time: Mon 2014-11-23 13:16:09 Time zone: Asia/Kolkata (IST, +0530) NTP enabled: no NTP synchronized: no RTC in local TZ: no DST active: n/a
如何使用NTP将系统时钟与远程服务器同步?
只需执行以下命令:
# timedatectl set-ntp yes
验证一下:
$ timedatectl
输出示例:
Local time: Mon 2014-11-23 08:18:49 IST Universal time: Mon 2014-11-23 02:48:49 UTC RTC time: Mon 2014-11-23 02:48:50 Time zone: Asia/Kolkata (IST, +0530) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a