Cách hiển thị ngày giờ trong Linux Terminal

Chắc hẳn bạn không còn xa lạ gì với lệnh date trong Bash shell, đây là shell mặc định trong hầu hết các bản phân phối Linux và thậm chí là macOS. Tuy nhiên, trong bài hướng dẫn này, chúng ta hãy cùng xem xét các cách sử dụng nâng cao của lệnh date trong dòng lệnh và cách sử dụng nó trong script shell để thực hiện nhiều chức năng hơn ngoài việc đơn giản chỉ hiện thị thời gian.

Khi chạy lệnh date, bạn sẽ thấy ngày giờ hiện tại theo múi giờ quốc gia bạn.

date

Chạy lệnh date

Bạn có thể thấy định dạng mặc định trông không thuận mắt. Tại sao năm không được in sau ngày tháng mà lại để cuối cùng sau múi giờ? May thay có hơn 40 cách để sắp xếp ngày tháng để bạn có thể điều chỉnh đầu ra như mong muốn.

Để điều chỉnh đầu ra lệnh date, gõ date, dấu cách, dấu cộng (+) và tùy chọn (thường là chữ cái) cùng với biểu tượng %. Tùy chọn % (ngày và giờ theo định dạng địa phương) hiển thị ngày và giờ ở định dạng chuẩn hóa theo địa phương của bạn. Địa điểm của bạn được thiết lập theo thông tin địa lý bạn đã cung cấp khi cài đặt hệ điều hành. Nó bao gồm các ký hiệu tiền tệ, kích thước trang, múi giờ và một số chuẩn mực khác.

date +%c

Chạy lệnh date +%c

Bạn có thể thấy, năm giờ đã xuất hiện ở vị trí ngay sau ngày tháng trong kết quả đầu ra.

Bạn có thể thay đổi một số tùy chọn cùng một lúc. Một chuỗi các tùy chọn được gọi là chuỗi định dạng. Để xem tên ngày (%A), ngày của tháng (%d) và tên tháng (%B), sử dụng lệnh sau:

date +%A%d%B

Chạy lệnh date +%A%d%B

Lệnh đúng nhưng định dạng không được đẹp mắt cho lắm, rất khó nhìn. Để dễ đọc hơn, bạn có thể thêm dấu cách giữa các tùy chọn nhưng phải để trong dấu ngoặc kép. Lưu ý, dấu cộng ở bên ngoài ngoặc kép.

date +"%A %d %B"

Chạy lệnh date +"%A %d %B"

Bạn có thể thêm văn bản vào chuỗi định dạng như:

date +"Today is: %A %d %B"

Chạy lệnh date +"Today is: %A %d %B"

Dưới đây là một số tùy chọn giúp bạn chỉnh sửa định dạng kết quả hiển thị ngày và giờ.

Tùy chọn hiển thị ngày và giờ

  • %c: Hiển thị ngày và giờ theo định dạng địa phương, gồm cả múi giờ.

Tùy chọn hiển thị ngày và giờ

Tùy chọn hiển thị ngày

  • %D: Hiển thị ngày theo định dạng tháng/ngày/năm.

  • %F: Hiển thị ngày theo định dạng năm - tháng - ngày.

  • %x: Hiển thị ngày theo định dạng miền địa phương.

Tùy chọn hiển thị ngày

Tùy chọn hiển thị ngày

  • %a: Hiển thị tên ngày viết tắt như Mon, Tue, Wed, v.v…

  • %A: Hiển thị tên ngày đầy đủ như Monday Tuesday, Wednesday, v.v…

  • %u: Hiển thị số thay cho ngày trong tuần như Monday=1, Tuesday=2, Wednesday=3, v.v...

  • %w: Hiển thị số thay cho ngày trong tuần bắt đầu từ Chủ Nhật như Sunday=0, Monday=1, Tuesday=2, v.v...

  • %d: Hiển thị ngày trong tháng với số 0 đứng trước (01, 02 … 09) nếu yêu cầu.

  • %e: Hiển thị ngày trong tháng, với khoảng trắng trước mỗi ngày (‘ 1’, ‘ 2’ … ‘ 9’) nếu yêu cầu. Lưu ý, dấu nháy đơn không hiển thị.

  • %j: Hiển thị ngày trong năm với tối đa hai số 0 đứng đầu nếu yêu cầu.

Tùy chọn hiển thị ngày

Tùy chọn hiển thị tuần

  • %U: Hiển thị số tuần một năm, coi Chủ nhật là ngày đầu tuần. Ví dụ, tuần thứ ba của năm, tuần thứ hai mươi của năm, v.v…

  • %V: Hiển thị số tuần ISO một năm, coi ngày thứ Hai là ngày đầu tiên của một tuần.

  • %W: Số tuần một năm, coi ngày thứ Hai là ngày đầu tiên của một tuần.

Tùy chọn hiển thị tuần

Tùy chọn hiển thị tháng

  • %b hoặc %h: Hiển thị tên của tháng viết tắt như Jan, Feb, Mar, v.v...

  • %B: Hiển thị tên đầy đủ của một tháng như January, February, March, v.v...

  • %m: Hiển thị số tháng với số 0 đứng trước nếu yêu cầu.

Tùy chọn hiển thị tháng

Tùy chọn hiển thị năm

  • %C: Hiển thị thế kỷ không có năm. Ví dụ năm 2019 là 20 (thế kỷ 20).

  • %y: Hiển thị năm dưới dạng hai chữ số. Ví dụ, năm 2019 là 19.

  • %Y: Hiển thị năm với 4 chữ số.

Tùy chọn hiển thị năm

Tùy chọn hiển thị thời gian

  • %T: Hiển thị thời gian dưới dạng Giờ:Phút:Giây.

  • %R: Hiển thị giờ và phút theo dạng Giờ:Phút không có giây, sử dụng đồng hồ 24 giờ.

  • %r: Hiển thị thời gian theo giờ địa phương, sử dụng đồng hồ 12 giờ và chỉ báo AM hoặc PM.

  • %X: Hiển thị thời gian theo giờ địa phương, sử dụng đồng hồ 24 giờ.

Tùy chọn hiển thị thời gian

Tùy chọn hiển thị giờ

  • %H: Hiển thị giờ theo dạng 00, 01, 02…23.

  • %I: Hiển thị giờ sử dụng đồng hồ 12 giờ theo dạng 00, 01, 02 … 12, với số 0 đứng đằng trước nếu yêu cầu.

Tùy chọn hiển thị giờ

Tùy chọn hiển thị phút

  • %M: Hiển thị phút 01, 02, 03 … 59, với số 0 đứng đầu nếu yêu cầu.

Tùy chọn hiển thị phút

Tùy chọn hiển thị giây

  • %s: Hiển thị số giây kể từ 01/01/1970 00:00:00, bắt đầu từ Unix Epoch.

  • %S: Hiển thị số giây 01, 02, 03 … 59, với số 0 đứng đằng trước nếu yêu cầu.

  • %N: Hiển thị nano giây.

Tùy chọn hiển thị giây

Tùy chọn hiển thị thông tin múi giờ

  • %z: Hiển thị chênh lệch thời gian giữa múi giờ của bạn và UTC.

  • %:z: Hiển thị chênh lệch thời gian giữa múi giờ của bạn và UTC với dấu hai chấm ở giữa giờ và phút. Lưu ý, : ở giữa dấu % và z.

  • %::z: Hiển thị chênh lệch thời gian giữa múi giờ của bạn và UTC với dấu hai chấm ở giữa giờ, phút và giây. Lưu ý, :: ở giữa dấu % và z.

  • %Z: Hiển thị tên múi giờ theo chữ cái.

Tùy chọn hiển thị thông tin múi giờ

Tùy chọn liên quan đến định dạng

  • %p: Hiển thị chỉ báo AM hoặc PM bằng chữ viết hoa.

  • %P: Hiển thị chỉ báo am hoặc pm theo chữ viết thường.

  • %t: Hiển thị trong một tab.

  • %n: Hiển thị sang một dòng mới.

Tùy chọn liên quan đến định dạng

Các tùy chọn chỉnh sửa khác

Các tùy chọn sau có thể được thêm vào % và chữ cái của các tùy chọn khác để chỉnh sửa định dạng hiển thị. Ví dụ, %-S sẽ bỏ số 0 đứng đầu các giá trị giây có một chữ số.

: Dấu gạch nối bỏ chữ số 0 đứng đầu các giá trị có một chữ số.

_: Dấu gạch dưới thêm khoảng trắng trước số có một chữ số.

0: Thêm số 0 trước các số có một chữ số.

^: Sử dụng chữ hoa nếu có thể (không phải tất cả các tùy chọn đều có thể áp dụng cách này).

#: Sử dụng ngược lại định dạng mặc định nếu có thể (không phải tất cả các tùy chọn đều có thể áp dụng cách này).

Một số tùy chọn khác

Để chỉnh sửa thời gian của một file, bạn có thể sử dụng tùy chọn -r. Ở đây - (dấu gạch nối) thay cho % và không yêu cầu dấu +.

date -r .bashrc

Chạy lệnh date -r .bashrc

Cài đặt TZ cho phép bạn thay đổi múi giờ trong suốt một lệnh.

TZ=GMT date +%c

Chạy lệnh TZ=GMT date +%c

Sử dụng lệnh date trong script

Kích hoạt Bash shell script để hiển thị ngày và giờ là chuyện nhỏ, hãy tạo một file văn bản với nội dung như bên dưới và lưu nó thành gd.sh.

#!/bin/bash

TODAY=$(date +"Today is %A, %d of %B")
TIMENOW=$(date +"The local time is %r")
TIME_UK=$(TZ=BST date +"The time in the UK is %r")

echo $TODAY
echo $TIMENOW
echo $TIME_UK

Gõ lệnh sau để thiết lập quyền thực thi cho script.

chmod +x gd.sh

Chạy script với lệnh này:

./gd.sh

Chạy lệnh ./gd.sh

Bạn có thể sử dụng lệnh date để tạo dấu thời gian. Script hiển thị sẽ tạo một thư mục với dấu thời gian làm tên của nó. Sau đó nó sẽ sao chép toàn bộ file văn bản từ thư mục hiện tại vào đó. Bằng các chạy script này thường xuyên, bạn có thể chụp ảnh file văn bản. Và sau đó có thể xây dựng được một seri thư mục với các phiên bản file văn bản khác nhau.

Lưu ý, đây không phải là hệ thống sao lưu mạnh mẽ.

Tạo file văn bản với nội dung sau và lưu thành snapshot.sh.

#!/bin/bash

# obtain the date and time
date_stamp=$(date +"%F-%H-%M-%S")

# make a directory with that name
mkdir "$date_stamp"

# copy the files from the current folder into it
cp *.txt "$date_stamp"

# all done, report back and exit
echo "Text files copied to directory: "$date_stamp

Gõ lệnh sau để thiết lập quyền thực thi.

chmod +x snapshot.sh

Chạy script với lệnh sau:

./snapshot.sh

Chạy lệnh ./snapshot.sh

Bạn sẽ thấy thư mục vừa được tạo có tên theo ngày tháng script thực thi. Bên trong thư mục đó là bản sao file văn bản.

Chúc các bạn thực hiện thành công!

Thứ Năm, 11/04/2019 15:40
53 👨 878