Logo

Personal Ops Runbook

Personal runbook covering infrastructure operations for Cloud, Kubernetes, OpenStack, and Ceph environments. Includes deployment and teardown procedures, node management, cluster monitoring setup, and incident response workflows compiled from day-to-day operational work. Intended strictly for personal reference — configurations and scripts are environment-specific and not guaranteed to work as-is elsewhere.

[Bash] Lesson 10 – Định dạng ngày tháng trong Bash


Định dạng ngày tháng trong Bash Trong chủ đề này, chúng ta sẽ tìm hiểu về các tùy chọn định dạng ngày có sẵn cho lệnh date và hiểu cách sử dụng chúng trong các tập lệnh Bash.

Ngày trong Bash Shell Bash cung cấp các lệnh date khác nhau cùng với các tùy chọn định dạng khác nhau. Chúng ta có thể sử dụng những lệnh đó để định dạng ngày trong Bash thành một định dạng mong muốn.

Lệnh date trong Bash Chúng ta có thể sử dụng lệnh “date” để hiển thị hoặc thay đổi giá trị ngày và giờ hiện tại của hệ thống. Chúng ta có thể in ra giá trị ngày và giờ trong các định dạng khác nhau bằng cách sử dụng lệnh date. Chúng ta cũng có thể sử dụng lệnh này để tính toán các nhiệm vụ liên quan đến giá trị ngày và giờ. Nếu lệnh “date” được sử dụng mà không có bất kỳ tùy chọn nào, thì nó sẽ in ra giá trị ngày và giờ của hệ thống hiện tại. Lệnh này chứa một số tùy chọn định dạng để định dạng đầu ra.

Cú pháp của lệnh date được đưa ra dưới đây:

$ date

Định dạng ngày tháng trong Bash với các tùy chọn

Như chúng ta đã thảo luận ở trên, chúng ta có thể định dạng ngày tháng trong Bash. Chúng ta cũng có thể sử dụng khoảng trống với định dạng mà bạn sẽ sử dụng.

Lệnh date chấp nhận các tùy chọn nếu được cung cấp như:

$ date +<format-option-codes><format-option-codes>

Nếu chúng ta muốn định dạng ngày với khoảng trắng, chúng ta có thể sử dụng cú pháp sau:

$ date '+<format-option-codes><format-option-codes> <format-option-codes>'

Danh sách các lựa chọn định dạng ngày tháng trong Bash

Các định dạng tùy chọn được sử dụng để định dạng ngày tháng nằm trong tùy chọn của lệnh date. Các tùy chọn này cho phép chúng ta định dạng ngày và giờ theo cách mong muốn. Dưới đây là một danh sách các tùy chọn và mã định dạng phổ biến để sử dụng với lệnh date:

Tùy chọn:

  • -d hoặc -date = Chuỗi: được sử dụng để hiển thị thời gian được đặt bởi giá trị Chuỗi.
  • -s, -set = Chuỗi: được sử dụng để đặt thời gian bằng giá trị Chuỗi.
  • -f hoặc -file = NgàyFile: được sử dụng để xử lý nhiều ngày.
  • -I hoặc -iso-8601 [= Timespec]: được sử dụng để tạo ra chuỗi ngày / giờ tuân thủ ISO 8601.
  • -r hoặc -reference = File: được sử dụng để in thời gian sửa đổi cuối cùng của một file.
  • -u, -utc, -universal: được sử dụng để in hoặc đặt giờ thế giới phối hợp.
  • -help: được sử dụng để lấy trợ giúp cho lệnh này.
  • -version: được sử dụng để lấy thông tin phiên bản.

Mã định dạng tùy chọn được sử dụng để định dạng ngày và giờ theo định dạng mong muốn.

%a Ngắn gọn tên thứ trong tuần Sun, Mon, Tue…
%A Tên đầy đủ của thứ trong tuần Sunday, Monday, Tuesday…
%b Ngắn gọn tên tháng Jan, Feb, Mar…
%B Tên đầy đủ của tháng January, February, March…
%c Ngày và giờ được định dạng cho ngôn ngữ cụ thể Wed Oct 26 07:45:59 EDT 2022
%C Hiển thị thế kỷ (the century number) 20
%d Ngày trong tháng 01, 02, 03…
%D Ngày tháng năm định dạng theo chuẩn MM/DD/YY 12/23/21
%e Ngày trong tháng, bao gồm cả khoảng trống 1, 2, 3…
%F Ngày tháng năm định dạng theo chuẩn YYYY-MM-DD 2021-12-23
%g Hiển thị số năm 2 chữ số (00-99) trong chu kỳ của tuần 22
%G Hiển thị số năm 4 chữ số (0000-9999) trong chu kỳ của tuần 2022
%h Tên ngắn gọn của tháng (tương đương với %b) Jan, Feb, Mar…
%H Giờ trong ngày (dạng 24 giờ) 00, 01, 02…23
%I Giờ trong ngày (dạng 12 giờ) 01, 02, 03…12
%j Ngày trong năm (001-366) 001, 002, 003…
%k Giờ trong ngày (dạng 24 giờ), bao gồm cả khoảng trống 0, 1, 2…23
%l Giờ trong ngày (dạng 12 giờ), bao gồm cả khoảng trống 1, 2, 3…12
%m Số tháng (01-12) 01, 02, 03…
%M Số phút trong giờ 00, 01, 02…59
%n Xuống dòng
%N Số nanosecond hiện tại 732177000
%p Buổi sáng hoặc tối AM hoặc PM

Chúng ta có thể sử dụng bất kỳ định dạng nào được đề cập ở trên (cột đầu tiên) cho lệnh date theo yêu cầu.

Ví dụ: Định dạng Bash Date MM-DD-YYYY

Để sử dụng ngày tháng năm theo định dạng MM-DD-YYYY, chúng ta có thể sử dụng lệnh date +%m-%d-%Y.

Chương trình Bash Script:

#!/bin/bash

d=`date +%m-%d-%Y`

echo "Date in format MM-DD-YYYY"
echo $d #MM-DD-YYYY

Kết quả

image

Rất quan trọng để lưu ý rằng các mã tùy chọn định dạng là phân biệt chữ hoa và thường. Trong ví dụ này, chúng tôi đã sử dụng %m cho tháng, %d cho ngày và %Y cho năm. Nếu chúng tôi sử dụng %M thay cho %m, thì nó sẽ xác định phút.

Để sử dụng ngày tháng trong định dạng MM-YYYY, chúng ta có thể sử dụng lệnh date +%m-%Y.

Chương trình Bash Script:

#!/bin/bash

d=`date +%m-%Y`

echo "Date in format MM-YYYY"
echo $d # MM-YYYY

Kết quả

image

Để sử dụng ngày tháng trong định dạng Weekday DD-Month, YYYY, chúng ta có thể sử dụng lệnh date +%A %d-%B, %Y.

Chương trình Bash Script tương ứng như sau:

#!/bin/bash

d=`date '+%A %d-%B, %Y'`

echo "Date in format Weekday DD-Month, YYYY"
echo $d # Weekday DD-Month, YYYY
image

Kết luận

Như vậy ở trong chủ đề này, chúng ta đã thảo luận về các tùy chọn định dạng ngày tháng có sẵn và một số ví dụ minh họa về cách sử dụng chúng.