Ham date trong linux
Khi bạn đang viết script trong Bash, chắc chắn bạn sẽ cần phải in ngày hoặc giờ và ngày hoặc giờ đó thường cần ở một định dạng cụ thể để đáp ứng các yêu cầu của những hàm khác. Đó là khi lệnh date có tác dụng. Show
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 những nhiệm vụ tính toán khác nhau liên quan đến thời gian. Biết 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 của lệnh dateCú pháp cơ bản cho lệnh date như sau:
Điều đó có nghĩa là sau khi nhập ngày, bạn có thể nhập một tùy chọn, như -d hoặc -s, để gọi một hàm cụ thể (bài viết sẽ giải thích bên dưới). Bạn cũng có thể theo dõi chúng bằng các chuỗi định dạng, luôn bắt đầu bằng ký tự +. Các chuỗi đó lấy những ký tự định dạng cụ thể, cũng được liệt kê bên dưới, để xác định đầu ra. Ví dụ thực tế về lệnh date trên LinuxBạn có thể đặt lệnh date để sử dụng theo một số cách. Hãy xem xét các trường hợp sử dụng phổ biến và hữu ích nhất. 1. Lấy thông tin ngày và giờ hiện tạiBạn có thể lấy thông tin ngày và giờ cục bộ hiện tại ở định dạng mặc định bằng cách sử dụng lệnh date.
Như bạn có thể thấy, date cung cấp cho bạn thông tin ngày và giờ có liên quan ở định dạng đơn giản và có thể đoán trước được. 2. Lấy một ngày trong quá khứ hoặc tương laiGiả sử trong script, bạn cần tính toán ngày và giờ chính xác sau một tuần kể từ bây giờ. Lệnh date sẽ giúp bạn. Nhập lệnh này, sử dụng 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:
Tùy chọn -d, viết tắt của date, là nơi lệnh date thực sự tỏa sáng. Nó sẽ chấp nhận nhiều chuỗi ngày tùy chỉnh; chúng có thể mang tính kỹ thuật, như 20200315, 15/03/20 hoặc ở dạng có thể đọc được như Mar 15 2020. Nhưng bạn cũng có thể sử dụng các thuật ngữ tương đối, như tomorrow, yesterday, next Sunday, v.v... Hãy thoải mái 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àyBạn có thể nhận thấy trong hai ví dụ trước, ngày 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ể in năm hiện tại bằng lệnh này:
Dấu + báo hiệu rằng bạn muốn một chuỗi được định dạng và bất kỳ 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:
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.
4. Nhận thông tin ngày trong tuầnMộ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 thông tin 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:
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 cho đầu ra. Hãy nhớ rằng chuỗi ngày có thể ở nhiều định dạng, chứ không chỉ có một định dạng được chỉ định ở đây. 5. Nhận thông tin Giờ Phối hợp Quốc tếBằng cách đưa ra flag -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).
6. Xuất giờ địa phương ở múi giờ khácNế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 biến môi trường TZ= 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 (MST) bằng lệnh sau:
Đối với mục đích của bạn, chỉ cần thay thế MST bằng các chữ cái viết tắt 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ể đặt 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 thành phố cụ thể đó. Ví dụ:
7. Lấy thông tin thời gian sửa đổi cuối cùng của fileVí dụ, nếu bạn đang tạo bản sao lưu, bạn thường cần lấy thông tin ngày sửa đổi cuối cùng của file. Bạn có thể thực hiện việc này bằng cách chuyển tùy chọn -r và đặt tên file.
Bạn cũng có thể thay đổi timestamp (dấu thời gian) của file bằng lệnh touch trong Linux. 8. Xuất và chuyển đổi thời gian UnixBạn có thể tính số giây kể từ kỷ nguyên Unix bằng lệnh sau:
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ự @.
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, chắc chắn sẽ giữ cho các thiết bị khác được đồng bộ.
9. Tạm thời đặt thời gian hệ thốngBạn có thể thay đổi đồng hồ hệ thống của mình từ Terminal với 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:
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) bởi vì hầu hết các bản phân phối sử dụng những tiện ích khác để quản lý đồng hồ hệ thống, sẽ ghi đè thay đổi khi boot. |