Lệnh xem giờ trong linux
Show Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng lệnh date để làm việc với ngày giờ trong Bash shell. Ngày giờ trong Bash shell có thể được in với nhiều định dạng khác nhau. Trong các hệ thống Unix, ngày tháng được lưu trữ dưới dạng số nguyên, có giá trị chính là số giây được tính từ thời điểm 01/01/1970 00:00:00 UTC đến thời điểm hiện nay. Tại sao lại có thời điểm 01/01/1970, là do hệ thống Unix, tiền thân của các hệ thống Linux sau này, được chính thức đưa vào hoạt động từ thời điểm 0 giờ ngày 01/01/1970, do đó thời điểm này được xem là thời điểm ra đời của các hệ thống Linux. Do đó thời gian trong các hệ thống Linux được tính bắt đầu từ mốc thời gian trên. Giá trị này được gọi là epoch time hoặc Unix time. Trong Linux, để lấy được giá trị ngày tháng dưới dạng số nguyên đã nói ở trên, ta dùng lệnh sau: $ date +%s
1407420763 Chúng ta cùng thử kiểm tra xem con số này có chính xác không nhé. Tại thời điểm tôi nhập lệnh trên, thời gian của hệ thống là 21:24:02 07/08/2014 (GMT+7) Như chúng ta biết thì :
=> Vậy 1 năm = 365,25 x 24 x 3600 = 31.557.600 giây Lấy số trên chia cho giá trị ta vừa tính được (làm tròn lấy 4 chữ số thập phân): 1407420763 / 31.557.600 = 44.5985 (năm) => 44 năm 218 ngày 14 giờ 24 phút => Tính từ mốc 00:00:00 01/01/1970 thì giá trị trên cho ta được kết quả 14:24:00 07/08/2014 UTC Giá trị trên là giờ quốc tế (UTC/GMT), do Việt Nam nằm ở múi giờ GMT + 7, nên ta lấy thời gian trên cộng thêm 7 giờ sẽ ra thời gian thực tế tại Việt Nam là 21:24:00 07/08/2014 => trùng khớp với thời gian ở trên.
1. In ra ngày tháng hiện tại$ date
Thu Aug 7 10:30:48 EDT 2014 2. Lấy giá trị Unix time từ thời điểm bất kỳỞ trên chúng ta đã lấy được giá trị Unix time (số giây tính từ thời điểm 00:00:00 01/01/1970) bằng lệnh: $ date +%s Chúng ta có thể lấy ra số giây tính từ 1 thời điểm bất kỳ đến hiện tại bằng lệnh: $ date --date "Thu Nov 18 08:07:21 IST 2010" +%s
1290047841 Tùy chọn –date ở trên được dùng để cung cấp 1 chuỗi ngày tháng đầu vào. 3. Các tùy chọn định dạng ngày thángCác tùy chọn định dạng ngày tháng khác nhau được dùng để in ngày tháng ra những định dạng khác nhau tùy vào những mục đích khác nhau. Ở trên chúng ta đã làm quen với 1 tùy chọn là +%s, có tác dụng in ra ngày tháng dưới dạng tem thời gian (Unix time). Ngoài ra còn có các tùy chọn như:
$ date +%a
Thu
$ date +%A
Thursday
$ date +%b
Aug
$ date +%B
August
$ date +%c Thu 07 Aug 2014 11:00:43 AM EDT
$ date +%C
20
$ date +%d
07
$ date +%D
08/07/14
$ date +%e
7
$ date +%F
2014-08-07
$ date +%g
14
$ date +%G
2014
$ date +%H
22
$ date +%I
10
$ date +%j
219
$ date +%m
08
$ date +%M
13
1 giây = 1000 mili giây 1 mili giây = 1000 micro giây 1 micro giây = 1000 nano giây $ date +%N
783255430
$ date +%p
PM
$ date +%P
pm
$ date +%r
10:19:07 PM
$ date +%R
22:19
$ date +%S
41
$ date +%T
11:23:03
$ date +%u
4
$ date +%U
31
$ date +%V
32
$ date +%w
4
$ date +%W
31
$ date +%x
08/07/2014
$ date +%X
10:30:28 PM
$ date +%y
14
$ date +%Y
2014
$ date +%z
-0400
$ date +%:z
-04:00
$ date +%::z
-04:00:00
$ date +%:::z
-04
$ date +%Z
EDT Chúng ta có thể sử dụng kết hợp nhiều tùy chọn trên với nhau để in ra chuỗi ngày tháng mong muốn. $ date "+%d %B %Y"
07 August 2014 4. Thiết lập ngày tháng, thời gianChúng ta có thể thiết lập ngày tháng và thời gian như sau: $ date -s "Chuỗi ngày tháng được định dạng" vd: $ date -s "07 August 2014 22:42:22"
Thu Aug 7 22:42:22 EDT 2014 Post navigation |