顯示系統日期
要顯示系統日期,只要輸入:
$ date Thu Dec 5 22:55:41 WIB 2013
格式化顯示日期
日期有很多格式。如果你不喜歡默認的格式,你可以換一種格式。你可能會想"為什么我需要改變格式? 默認的輸出對我足夠了。"
是的,你說的對,但是當你在編程時,默認輸出或許無法滿足你的需求,因此需要一些自定義輸出。
RFC 2822 的日期與時間輸出格式
$ date -R Thu, 05 Dec 2013 23:40:53 +0700
RFC 2822 的格式像這樣 : 星期, 日-月-年, 小時:分鍾:秒 時區
時區 +0700 等同於 GMT +7。
使用格式化選項
要自定義你的日期格式, 使用加號 (+)
$ date +”Day : %d Month : %m Year : %Y” Day: 05 Month: 12 Year: 2013
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鍾(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..61)
%T : 直接顯示時間 (24 小時制)
%X : 相當於 %H:%M:%S
%Z : 顯示時區
日期方面 :
%a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最后兩位數字 (00.99)
%Y : 完整年份 (0000..9999)
設置系統日期和時間
通常地,你希望你的系統日期和時間是自動設置的。如果由於一些原因,你想要手動修改它,我們可以使用這個命令。
# date –set=”20140125 09:17:00”
這會設置你當前的系統日期和時間到一月 25, 2014 and 09:17:00 AM。請注意,你必須擁有root特權來這么做。不然你會得到這樣一個錯誤。
date: cannot set date: Operation not permitted Sat Jan 25 09:17:00 WIB 2014
#date -s 修改時間,看下面的例子#date -s 05/16/2010(將系統日期設定為2010年05月16日)
#date -s 12:40:22(將系統時間設定為下午12:40:22)修改完后執行:clock -w ,強制將時間寫入COMS!修改時區:(將Asia/shanghai-上海時區寫入當前時區)
#cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 提示是否覆蓋,輸入Y回車,然后#date 查看時區和時間(CST,中國時區)
重置你的時間
如果你希望重置你的系統日期和時間到原始值,你可以用這個技巧。
# hwclock Fri 06 Dec 2013 03:44:10 AM WIB -0.314082 seconds
這回設置你的系統日期和時間到hwclock命令的輸出的樣子。
在腳本中使用date命令
還記得我之前說為什么你需要改變date的輸出么?一個答案是你或許需要編程。讓我們看下bash腳本下的一個例子。
$ vi display.date #! /bin/bash DATETIME=$(date +”DATE: %a %b-%d-%Y TIME: %T WEEK NUMBER: %W”) echo $DATETIME
保存並運行它:
$ ./display.date DATE : Fri Dec-06-2013 TIME: 03:08:19 WEEK Number :40
如果你發現權限拒絕錯誤信息,輸入:
$ chmod 755 display.date
在備份流程中使用date
另外一個例子是子你備份流程中使用date。
$ date +%F 2013-12-06 $ tar zcfv /daily_backup/backup-`date +%F`.tar.gz /home/pungki/Documents
它會壓縮文件夾/home/pungki/Documents到一個位於/daily_backup folder的文件backup-2013-12-06.tar.gz中。(譯注:通過“` 命令 `”來在命令行內嵌其它命令,這個字符不是單引號,而是和波浪號~同一個鍵位的那個符號。)
總結
date可能被認為在某些方面不重要。但是date扮演了一個重要的角色。要想知道關於date命令更多的細節,在你的控制台下輸入man date訪問man頁面。