9 Ví dụ thực tế về lệnh date trong Linux | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

9 Ví dụ thực tế về lệnh date trong Linux

Chia sẻ kiến thức 08/03/2022

Bạn cần lấy thông tin chi tiết liên quan đến ngày giờ trên Linux? 9 ví dụ về lệnh date sau đây chắc chắn sẽ giúp ích cho bạn.

Bạn cần lấy thông tin chi tiết liên quan đến ngày giờ trên Linux? 9 ví dụ về lệnh date sau đây chắc chắn sẽ giúp ích cho bạn.

Khi bạn đang viết mã lập trình kịch bản (script) trong Bash, chắc chắn bạn sẽ cần phải lấy (print) ngày hoặc giờ ở một định dạng nhất định để đáp ứng các yêu cầu của các chức năng khác. Lệnh date sẽ giúp bạn làm điều này. 

Như bạn sẽ thấy, lệnh date trong Linux vừa đơn giản vừa linh hoạt, có nghĩa là nó sẽ chấp nhận tất cả các loại đầu vào và tạo ngày tháng ở nhiều định dạng. Nó cũng có các chức năng đặc biệt khác cho nhiều tác vụ khác nhau liên quan đến thời gian. Việc học các tùy chọn và cú pháp của date chắc chắn sẽ giúp bạn thành thạo hơn trong việc viết script. 

Cú pháp cơ bản về lệnh date

Cú pháp cơ bản cho lệnh date như sau:

date [OPTION]... [+FORMAT]

Điều này có nghĩa là sau khi nhập date bạn có thể nhập một tùy chọn, như -d hoặc -s, để gọi một hàm (function) cụ thể, mà chúng tôi sẽ giải thích bên dưới.

Bạn cũng có thể thêm các chuỗi định dạng (formatting strings), luôn bắt đầu bằng ký tự + . Các chuỗi đó lấy các ký tự định dạng cụ thể để xác định đầu ra.

Ví dụ thực tế về lệnh date trên Linux

Hãy cùng FUNiX xem xét các trường hợp sử dụng phổ biến và hữu ích nhất của lệnh date.

1. Lấy ngày và giờ hiện tại

Bạn có thể lấy ngày và giờ địa phương hiện tại ở định dạng mặc định bằng dùng một mình lệnh date.

$ date
Mon 19 Apr 2021 12:41:17 PM CDT

Như bạn có thể thấy, date trả về thông tin ngày và giờ có liên quan ở định dạng đơn giản dễ hiểu. 

2. Lấy một ngày trong quá khứ hoặc trong tương lai

Giả sử trong script của bạn, bạn cần tính toán ngày và giờ chính xác một tuần kể từ hiện tại. Bạn có thể dùng lệnh date và tùy chọn -d để nhận thông tin chi tiết liên quan đến các ngày trong tương lai:

$ date -d "next week"
Tue 27 Apr 2021 05:21:07 PM CDT

Tùy chọn -d, viết tắt của date, là điểm nổi bật của lệnh date. Nó sẽ chấp nhận nhiều chuỗi ngày tùy chỉnh; ở các định dạng mang tính kỹ thuật, như 20200315 , 15/03/20 hoặc dễ đọc như  15/03/2020. Nhưng bạn cũng có thể sử dụng các thuật ngữ tương đối, như tomorrow (ngày mai), yesterday (hôm qua), next sunday (chủ nhật tuần sau), v.v. Hãy thử nghiệm và xem date diễn giải các chuỗi đầu vào khác nhau như thế nào.

3. Định dạng ngày

Bạn có thể nhận thấy trong hai ví dụ trước, date mặc định theo một định dạng thời gian rất cụ thể. Vậy nếu bạn cần nó ở một định dạng khác thì sao?

Bạn có thể định dạng đầu ra của mình tương tự như lệnh printf. Ví dụ: bạn có thể lấy năm hiện tại bằng lệnh này:

date +"Year: %Y"

Dấu + báo hiệu rằng bạn muốn một chuỗi được định dạng và bất cứ thứ gì xuất hiện sau đó bên trong dấu ngoặc kép, date sẽ xử lý và định dạng cho đầu ra.

Dưới đây là danh sách các ký tự định dạng mà bạn có nhiều khả năng sử dụng nhất:

Định dạng ký tự Đầu ra
% H Giờ (00-24)
%TÔI Giờ (01-12)
% M Phút (00-59)
%S Thứ hai (00-60)
%P AM hoặc PM
%MỘT Tên đầy đủ các ngày trong tuần (ví dụ: Sunday)
%Một Tên viết tắt của ngày trong tuần (ví dụ: Sun)
% w Số ngày trong tuần (0-6)
% d Ngày trong tháng (01-31)
% j Ngày trong năm (001-366)
% B Tên đầy đủ của tháng (ví dụ: tháng 1)
% b Tên viết tắt của tháng (ví dụ: Jan)
% m Số tháng (01-12)

Bạn có thể nhận được danh sách đầy đủ các ký tự định dạng bằng cách sử dụng tùy chọn –help trong terminal.

date --help

4. Nhận Ngày trong tuần

Một cách sử dụng rất phổ biến và thực tế của định dạng ngày là lấy ngày trong tuần cho bất kỳ ngày cụ thể nào. Ví dụ: để kiểm tra ngày 4 tháng 11 năm 1995 rơi vào ngày nào trong tuần, hãy nhập một lệnh tương tự như sau:

$ date -d "1996-04-11" +"%A"
Friday

Tùy chọn -d chỉ ra rằng bạn muốn một ngày cụ thể, chuỗi “1996-04-11”  cho biết bạn muốn ngày nào và định dạng + “% A” cho biết rằng bạn muốn ngày trong tuần trong đầu ra. Hãy nhớ rằng chuỗi ngày có thể ở nhiều định dạng, không chỉ một định dạng được chỉ định ở đây.

5. Nhận Giờ Phối hợp Quốc tế( Coordinated Universal Time)

Bằng cách đưa ra cờ -u, bạn có thể nhận được thời gian hiện tại theo Giờ Phối hợp Quốc tế (UTC).

$ date -u
Wed 21 Apr 2021 12:46:59 PM UTC

6. Xuất Giờ địa phương ở Múi giờ khác

Nếu bạn cần lấy một ngày ở bất kỳ múi giờ nào khác, bạn có thể làm như vậy bằng cách đặt TZ = biến môi trường trước lệnh date.

Ví dụ: bạn có thể xem ngày và giờ hiện tại theo Giờ chuẩn miền núi (Mountain Standard Time, viết tắt là MST) bằng lệnh sau:

$ TZ=MST date
Tue 20 Apr 2021 03:45:29 PM MST

Đối với mục đích của bạn, chỉ cần thay thế MST bằng các chữ cái đầu cho bất kỳ múi giờ nào bạn muốn. Bạn cũng có thể chọn sử dụng ký hiệu UTC. Ví dụ: để có cùng múi giờ, hãy thay thế MST bằng UTC + 7.

Ngoài ra, bạn có thể gõ tên cho một lục địa và thành phố lớn để lấy thời gian theo giờ địa phương của nơi đó. Ví dụ:

$ TZ=America/Phoenix date
Tue 20 Apr 2021 03:45:29 PM MST

7. Nhận thời gian sửa đổi cuối cùng của tệp

Ví dụ: nếu bạn đang tạo bản sao lưu, bạn thường cần lấy ngày sửa đổi cuối cùng của tệp. Bạn có thể làm điều này bằng cách gõ tùy chọn -r và đặt tên tệp.

$ date -r /etc/shadow
Wed 14 Apr 2021 07:53:02 AM CDT

Bạn cũng có thể thay đổi dấu thời gian của tệp bằng cách sử dụng lệnh touch trong Linux.

8. Đầu ra và chuyển đổi thời gian kỷ nguyên

Bạn có thể tính số giây kể từ kỷ nguyên Unix bằng lệnh sau:

$ date +%s
1618955631

Bạn cũng có thể đảo ngược quá trình và chuyển đổi thời gian Unix thành một định dạng mà con người có thể đọc được thông qua việc sử dụng tùy chọn -d và  ký tự @.

$ date -d @1618955631
Tue 20 Apr 2021 04:53:51 PM CDT

Tính toán thời gian Unix rất hữu ích nếu bạn cần một giây chính xác giữ cho các thiết bị khác được đồng bộ hóa.

9. Tạm thời đặt thời gian hệ thống

Bạn có thể thay đổi đồng hồ hệ thống của mình từ terminal bằng lệnh date bằng cách chuyển đối số -s theo sau là thời gian bạn muốn. Ví dụ: bạn có thể đặt đồng hồ hệ thống thành 24 giờ trong tương lai bằng lệnh sau:

date -s "tomorrow"

Lưu ý rằng bạn sẽ cần các đặc quyền sudo để chuyển lệnh này. Ngoài ra, thay đổi có thể sẽ không liên tục (có nghĩa là đồng hồ của bạn sẽ quay trở lại thời điểm trước đó sau khi khởi động lại) vì hầu hết các bản phân phối đều sử dụng các tiện ích khác để quản lý đồng hồ hệ thống của bạn, đồng hồ sẽ ghi đè thay đổi khi khởi động.

Kết luận

Cũng như trong cuộc sống, bạn không thể bỏ qua khi thời gian sử dụng Linux. Đó là lý do tại sao điều quan trọng là bạn phải hiểu cách định dạng và sử dụng nó, thông qua lệnh date. Một điều bạn chắc chắn sẽ gặp trong quản lý tệp Linux là các dấu thời gian (timestamp) khác nhau mà tệp mang theo với nó. 

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/date-command-examples-linux/

 

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại