Trong hướng dẫn này, chúng ta sẽ tìm hiểu những điều cơ bản về lệnh date.

Date hiển thị ngày, giờ của hệ thống. Nó được sử dụng phổ biến nhất để in ngày và giờ ở các định dạng khác nhau và tính toán các ngày trong tương lai và quá khứ.

Sử dụng lệnh date Linux

Cú pháp của lệnh date như sau:

date [OPTION]... [+FORMAT]

Để hiển thị ngày và giờ hệ thống hiện tại bằng cách sử dụng định dạng mặc định, hãy gọi lệnh mà không có bất kỳ tùy chọn và đối số nào:

date

Kết quả bao gồm ngày trong tuần, tháng, ngày trong tháng, thời gian, múi giờ và năm:

Sat Jun  1 14:31:01 CEST 2019

Tùy chọn định dạng ngày

Đầu ra của lệnh date có thể được định dạng bằng một chuỗi các ký tự điều khiển định dạng trước +dấu hiệu. Các điều khiển định dạng bắt đầu bằng %ký hiệu và được thay thế bằng các giá trị của chúng.

date +"Year: %Y, Month: %m, Day: %d"

Ký %Ytự sẽ được thay thế bằng năm, %m bằng tháng và %d bằng ngày trong tháng:

Year: 2019, Month: 06, Day: 02

Đây là một ví dụ khác:

date "+DATE: %D%nTIME: %T"
DATE: 06/02/19
TIME: 01:47:04

Dưới đây là danh sách nhỏ về một số ký tự định dạng phổ biến nhất:

  • %a – Tên ngày trong tuần viết tắt (ví dụ: Thứ Hai)
  • %A – Tên đầy đủ các ngày trong tuần được viết tắt(ví dụ: Thứ Hai)
  • %b – Tên tháng viết tắt(ví dụ: tháng 1)
  • %B – Tên tháng dài viết(ví dụ: tháng 1)
  • %d – Ngày trong tháng (ví dụ: 01)
  • %H – Giờ (00..23)
  • %I – Giờ (01..12)
  • %j – Ngày trong năm (001..366)
  • %m – Tháng (01..12)
  • %M – Phút (00..59)
  • %S – Thứ hai (00..60)
  • %u – Ngày trong tuần (1..7)
  • %Y – Cả năm (ví dụ: 2019)

Để có được danh sách đầy đủ tất cả các tùy chọn định dạng đang chạy date --help hoặc man date trong thiết bị đầu cuối của bạn.

Chuỗi ngày

Tùy chọn -d cho phép bạn để hoạt động trên một ngày cụ thể. Bạn có thể chỉ định ngày dưới dạng chuỗi ngày có thể đọc được của con người như bên dưới:

date -d "2010-02-07 12:10:53"
Sun Feb  7 12:10:53 CET 2010

Sử dụng định dạng tùy chỉnh:

date -d '16 Dec 1974' +'%A, %d %B %Y'
Monday, 16 December 1974

Chuỗi ngày chấp nhận các giá trị như “tomorrow”, “friday”, “last friday” “next friday”, “next month”, “next week” .. vv.

date -d "last week"
Sat May 25 14:31:42 CEST 2019

Bạn cũng có thể sử dụng tùy chọn chuỗi ngày để hiển thị giờ địa phương cho các múi giờ khác nhau. Ví dụ: để hiển thị giờ địa phương lúc 6:30 sáng Thứ Hai tới trên bờ biển phía đông nước Úc, bạn sẽ nhập:

date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Sun Jun  2 22:30:00 CEST 2019

Ghi đè múi giờ

Các lệnh date trả về ngày trong mặc định múi giờ hệ thống . Để sử dụng múi giờ khác, hãy đặt biến môi trường TZ thành múi giờ mong muốn.

Ví dụ: để hiển thị Melbourne, Aus time, bạn sẽ nhập:

TZ='Australia/Melbourne' date
Sat Jun  1 22:35:10 AEST 2019

Để liệt kê tất cả các múi giờ khả dụng , bạn có thể liệt kê các tệp trong thư mục /usr/share/zoneinfo hoặc sử dụng lệnh timedatectl list-timezones.

Công cụ chuyển đổi Epoch

Các lệnh date có thể được sử dụng như một công cụ chuyển đổi Epoch. Dấu thời gian Epoch, hay Unix, là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 lúc 00:00:00 UTC.

Để in số giây từ kỷ nguyên đến ngày hiện tại, hãy gọi date bằng %s điều khiển định dạng:

date +%s
1559393792

Để chuyển đổi giây kể từ kỷ nguyên thành ngày, hãy đặt giây làm chuỗi ngày có tiền tố @:

date -d @1234567890
Sat Feb 14 00:31:30 CET 2009

Sử dụng date với các lệnh khác

Các lệnh date được thường xuyên nhất được sử dụng để tạo ra tên tập tin có chứa thời gian hiện tại và ngày.

Lệnh dưới đây sẽ tạo tệp sao lưu Mysql ở định dạng sau database_name-20190601.sql

mysqldump  database_name > database_name-$(date +%Y%m%d).sql

Bạn cũng có thể sử dụng lệnh date trong các tập lệnh shell của mình. Trong ví dụ dưới đây chúng ta đang gán đầu ra của date cho biến date_now:

date_now=$(date "+%F-%H-%M-%S")

echo $date_now

Output:

2019-06-01-15-02-27

Hiển thị thời gian sửa đổi cuối cùng của tệp

Các lệnh date với tùy chọn -r cho thấy thời gian sửa đổi cuối cùng của một tập tin. Ví dụ:

date -r /etc/hosts
Tue Jul 24 11:11:48 CEST 2018

Nếu bạn muốn sửa đổi dấu thời gian của tệp, hãy sử dụng touch .

Đặt Ngày và Giờ Hệ thống

Không nên đặt ngày giờ hệ thống theo cách thủ công bằng lệnh date vì trên hầu hết các bản phân phối Linux, đồng hồ hệ thống được đồng bộ hóa bằng cách sử dụng ntp hoặc các service systemd-timesyncd.

Tuy nhiên, nếu bạn muốn đặt đồng hồ hệ thống theo cách thủ công, bạn có thể sử dụng tùy chọn --set=. Ví dụ: nếu bạn muốn đặt ngày và giờ thành 5:30 chiều, ngày 01 tháng 6 năm 2019, bạn sẽ nhập:

date --set="20190601 17:30"

Phần kết luận

Lệnh Linux date hiển thị hoặc đặt ngày và giờ hệ thống.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments