分类: LINUX
2012-12-06 10:17:41
Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟
。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时
钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统
时钟的设置,然后系统时钟就会独立于硬件运作。
时钟相关命令:cal,date,clock,hwclock,tzselect
1.date
名称:打印或设置系统日期和时间。
总揽:
date[options] [+format]
date[-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
描述:
date命令以指定的格式显示当前时间或者设置系统日期。
options:
-d,--date=String:显示指定字符串所描述的日期而不是当前日期。
-f,--file=DateFile:从指定的文件中读取日期来显示。每个日期一行。
会在最后一行显示当前日期。
-r,--reference=File:显示指定文件的最后修改时间。
-R,--rfc-2822:以RFC 2822格式显示日期和时间。显示格式如:
Sun, 04 Apr 2010 00:47:28 +0800
-s,--set=String:设置时间为String.需要管理员权限。
-u,--utc,--universal:打印或设置时间为Universal时间。
format控制输出格式:
%% 一个文字的%
%a 当前locale的星期名的缩写(如日表示星期日)
%A 当前locale的星期名的全名。(如星期日)
%b,%h 当前locale的月名的缩写(如一代表一月)
%B 当前locale的月的全名(如一月)
%c 当前locale的日期和时间(如:2010年04月04日 星期日 01时05分18秒)
%C 省略年份的后两位数。(如:2010年则显示20)
%d 按月计的日期(如四月则显示04)
%D 按月计的日期,等于%m/%d/%y
%e 按月计的日期(如4代表四月)
%F 完整日期格式,等价于%Y-%m-%d(如2010-04-04)
%g 显示年份的后两位数。(如2009则显示09)
%G ISO-8601格式显示完整的年份。
%H 小时(00-23)
%I 小时(00-12)
%k 小时(0-23)
%l 小时(1-12)
%M 分(00-59)
%S 秒(00-59)
%n 换行
%m 月份(01-12)
%N 纳秒(000000000-999999999)
%p,%P 显示’上午‘或‘下午’。
%r 显示12小时的时间(如:11:11:04 下午)
%R 显示24小时的时和分等价于%H:%M
%s 显示自1970-01-01 00:00:00 以来走过的秒数。
%t 输出制表符
%T 时间等价于%H:%M:%S
%U 显示一年中的第几周,以星期日为每周的第一天。
%V 显示一年中的第几周,以星期一为每周的第一天。
%Y 年份
%w 一星期中的第几日(0-6),0 代表周一
%W 一年中的第几周,以周一为每星期第一天(00-53)
%x 当前locale 下的日期描述 (如:12/31/99)
%X 当前locale 下的时间描述 (如:23:13:48)
%z +hhmm 数字时区(例如,-0400)
%:z +hh:mm 数字时区(例如,-04:00)
%::z +hh:mm:ss 数字时区(例如,-04:00:00)
%:::z 数字时区带有必要的精度 (例如,-04,+05:30)
%Z 按字母表排
默认情况,日期以数字0填充。以下可选标记可以跟在"%"后:
- (连字符)不填充该域
_ (下划线)以空格填充
0 (数字0)以0 填充
^ 如果可能,使用大写字母
# 如果可能,使用相反的大小写
在任何标记之后还允许一个可选的域宽度指定,它是一个十进制数字。
作为一个可选的修饰声明,它可以是E,在可能的情况下使用本地环境关联的
表示方式;或者是O,在可能的情况下使用本地环境关联的数字符号。
date的string格式:
--date=String:中的String是自由格式且为易于人类读懂的格式。可以写成:
1.“Sun, 29 Feb 2010 16:21:42 -0800"
2."2010-04-07 16:23:23"
3."next Thursday"
一个String可能包括:年,月,日,星期几,时,分,秒,相对时间,数字,相
对日期。
使用权限:
设置时间和日期时只能为管理员权限
显示时间和日期是为所有者
实例:
date -d "next Thursday" #显示下周四的日期
date #显示当前时间和日期
2.cal,ncal
名称:显示日历和东方日期。
总揽:
cal [-3jmy] [[month] year]
ncal [-jJpwy] [-s country_code] [[month]year]
ncal [-Jeo] [year]
描述:
cal命令以传统格式显示一个简单的日历,ncal提供另一种排版模式和更多选项显示日期
新的格式有一点狭窄但是适合在25*80的终端上显示一年的日历。若未指定参数则之显示当
月的日历。
options:
-3:显示3个月的日历。前一个月,这个月,后一个月。
-j:显示Julian日历。(显示这一年已过的天数)。
-m:以星期一作为一个星期的第一天。
-y:显示当年整年的日历。
使用权限:
所有者
实例:
cal #显示当前月的日历
cal -j #显示这一年已过的天数
cal 3 2009 #显示2009年3月的日历
说明:
若只有一个参数的话,则代表年份(1-9999)显示该年的全年日历。年份必须为完整的
数(1-9999)。
1752年9月3日起改用西洋日历,因此这个月有10天被除去。
3.clock,hwclock
名称:查询和设置硬件时钟(RTC)
用法: hwclock [Functions] [Options...]
Functions:
--help:显示帮助
--show:显示硬件时钟
--set:设置硬件时钟为由--date指定的时钟
--hctosys:设置系统时钟为硬件时钟
--systohc:设置硬件时钟为当前的系统时钟
Options:
--utc:以UTC显示硬件时钟
--localtime:以本地时间显示硬件时钟
--date="MM/DD/YY HH:MM:SS":指定设置的硬件时钟.
实例:
#(1).显示当前的硬件时钟
clock
#(2).设置硬件时钟为指定的时间
clock --set --date="10/04/11 13:27"
#(3).将系统时钟保存为硬件时钟(即设置硬件时钟为当前系统时钟)
clock --systohc
#(4).将硬件时钟保存为系统时钟(即设置当前系统时钟为硬件时钟)
clock --hctosys
4.设置当前系统的时区
#!/bin/bash
CMD=tzselect
zone=$($CMD)
cp /usr/share/zoneinfo/$zone /etc/localtime
echo "将你的系统时区设置为 $zone"
更多精彩的文章尽在:
文章资料由新居网书房装修效果图 栏目整理推荐。