Linux 日期和时间操作详解
程序员文章站
2022-06-04 13:54:37
Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。linux如何 修改时间,查看时间,设置时间。本文将提供详细的操作方法,需要的朋友可以参考下... 12-11-27...
linux将时钟分为系统时钟(system clock)和硬件(real time clock,简称rtc)时钟两种。系统时间是指当前linux kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,当linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
如何查看系统的日期和时间?
$ date
tue oct 16 11:18:32 cst 2012
date支持格式化输出,如
$ date +”%r %n%a %b %d, %y”
11:27:14 am
tue oct 16, 2012
显示指定的日期与时间
$ date -d “+1 month”
fri nov 16 11:31:10 cst 2012
显示日历
$ cal
october 2012
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 31
如何修改系统日期和时间?
使用date命令的-s参数.
#date -s 12/4/2011 #date -s 14:15:00
或
date -s ’2011/12/4 14:15:00′
如何查看硬件时钟?
# hwclock –show
tue 16 oct 2012 09:19:57 pm cst -0.844514 seconds
如何设置硬件时钟?
# hwclock –set –date=”09/17/2003 13:26:00′
# hwclock –hctosys //硬件时钟与系统时钟同步
# hwclock –systohc //系统时钟与硬件时钟同步
硬件时钟也可以通过clock命令来查看和设置.
时区
utc universal time coordinated,世界标准时间
gmt greenwich mean time,格林尼治时间
cst china standard time ,中国标准时间
比如设置设置时区为cst
cp /usr/share/zoneinfo/asia/shanghai /etc/localtime
ntp
network time protocol(ntp)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,gps等等)做同步化,它可以提供高精准度的时间校正,且可介由加密确认的方式来防止恶毒的协议攻击。
官方网站: http://www.pool.ntp.org/en/
可使用ntpdate同步,服务器可加crontab
# ntpdate cn.pool.ntp.org
使用time命令获取命令执行时间
$ time ls -rl dir/*
[...]
real 0m22.156s
user 0m1.652s
sys 0m4.772slinux 文件的时间概念
(1) modification time (mtime,修改时间),是文件内容修改的时间,用命令ls -l默认显示的就是这个时间.
(2)status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。
(3)access time (atime,访问时间):当读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。
可使用 ls -l –time=atime –full-time 和 ls -l –time=ctime –full-time 来查看.另外可以用stat命令来查看.
$ stat readme.md
file: `readme.md’
size: 25 blocks: 8 io block: 4096 regular file
device: 809h/2057d inode: 2755432 links: 1
access: (0664/-rw-rw-r–) uid: ( 1000/ diglike) gid: ( 1000/ diglike)
access: 2012-09-21 15:36:42.238294913 +0800
modify: 2012-09-21 15:35:31.626295155 +0800
change: 2012-09-21 15:35:31.750295154 +0800
birth: -
$ ls –full-time readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35:31.626295155 +0800 readme.md
$ ls –time=atime –full-time readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:36:42.238294913 +0800 readme.md
$ ls –time=ctime –full-time readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35:31.750295154 +0800 readme.md
如何修改linux文件的访问时间和修改时间?
可以使用touch命令来修改.
-a 参数只修改atime
-m 参数只修改mtime
-c 参数不创建文件
-t [[cc]yy]mmddhhmm[.ss] 修改为指定时间
如:
touch -t 1210011224.30 abc
touch -d “5 days ago” abc
定制ls输出的日期和时间格式
每个linux系统可能不一样,由time_style 环境变量控制.以下是ubuntu 12.04的默认输出格式:
$ll readme.md
-rw-rw-r– 1 diglike diglike 25 sep 21 15:35 readme.md
我修改后显示为
$ ll readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35 readme.md
因为我在.bashrc 中添加了export time_style=long-iso
还可以定制如
$ export time_style="+%y-%m-%d %h:%m:%s %z"
如何查看系统的日期和时间?
$ date
tue oct 16 11:18:32 cst 2012
date支持格式化输出,如
$ date +”%r %n%a %b %d, %y”
11:27:14 am
tue oct 16, 2012
显示指定的日期与时间
$ date -d “+1 month”
fri nov 16 11:31:10 cst 2012
显示日历
$ cal
october 2012
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 31
如何修改系统日期和时间?
使用date命令的-s参数.
#date -s 12/4/2011 #date -s 14:15:00
或
date -s ’2011/12/4 14:15:00′
如何查看硬件时钟?
# hwclock –show
tue 16 oct 2012 09:19:57 pm cst -0.844514 seconds
如何设置硬件时钟?
# hwclock –set –date=”09/17/2003 13:26:00′
# hwclock –hctosys //硬件时钟与系统时钟同步
# hwclock –systohc //系统时钟与硬件时钟同步
硬件时钟也可以通过clock命令来查看和设置.
时区
utc universal time coordinated,世界标准时间
gmt greenwich mean time,格林尼治时间
cst china standard time ,中国标准时间
比如设置设置时区为cst
cp /usr/share/zoneinfo/asia/shanghai /etc/localtime
ntp
network time protocol(ntp)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,gps等等)做同步化,它可以提供高精准度的时间校正,且可介由加密确认的方式来防止恶毒的协议攻击。
官方网站: http://www.pool.ntp.org/en/
可使用ntpdate同步,服务器可加crontab
# ntpdate cn.pool.ntp.org
使用time命令获取命令执行时间
$ time ls -rl dir/*
[...]
real 0m22.156s
user 0m1.652s
sys 0m4.772slinux 文件的时间概念
(1) modification time (mtime,修改时间),是文件内容修改的时间,用命令ls -l默认显示的就是这个时间.
(2)status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。
(3)access time (atime,访问时间):当读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。
可使用 ls -l –time=atime –full-time 和 ls -l –time=ctime –full-time 来查看.另外可以用stat命令来查看.
$ stat readme.md
file: `readme.md’
size: 25 blocks: 8 io block: 4096 regular file
device: 809h/2057d inode: 2755432 links: 1
access: (0664/-rw-rw-r–) uid: ( 1000/ diglike) gid: ( 1000/ diglike)
access: 2012-09-21 15:36:42.238294913 +0800
modify: 2012-09-21 15:35:31.626295155 +0800
change: 2012-09-21 15:35:31.750295154 +0800
birth: -
$ ls –full-time readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35:31.626295155 +0800 readme.md
$ ls –time=atime –full-time readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:36:42.238294913 +0800 readme.md
$ ls –time=ctime –full-time readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35:31.750295154 +0800 readme.md
如何修改linux文件的访问时间和修改时间?
可以使用touch命令来修改.
-a 参数只修改atime
-m 参数只修改mtime
-c 参数不创建文件
-t [[cc]yy]mmddhhmm[.ss] 修改为指定时间
如:
touch -t 1210011224.30 abc
touch -d “5 days ago” abc
定制ls输出的日期和时间格式
每个linux系统可能不一样,由time_style 环境变量控制.以下是ubuntu 12.04的默认输出格式:
$ll readme.md
-rw-rw-r– 1 diglike diglike 25 sep 21 15:35 readme.md
我修改后显示为
$ ll readme.md
-rw-rw-r– 1 diglike diglike 25 2012-09-21 15:35 readme.md
因为我在.bashrc 中添加了export time_style=long-iso
还可以定制如
$ export time_style="+%y-%m-%d %h:%m:%s %z"