Tin tức và phân tích của tất cả các thiết bị di động

Cách hiển thị ngày và giờ trong thiết bị đầu cuối Linux (và sử dụng chúng trong tập lệnh Bash)

Lệnh date nằm trong shell Bash, đây là shell mặc định trên hầu hết các bản phân phối Linux và thậm chí cả macOS. Hướng dẫn này cho biết cách kiểm soát ngày trên dòng lệnh và cách sử dụng nó trong các tập lệnh shell để làm nhiều việc hơn là chỉ in thời gian.

Chạy lệnh date để xem thông tin này. In ngày và giờ hiện tại cho múi giờ của bạn:

date

Định dạng mặc định trông hơi ngớ ngẩn. Tại sao năm không được in sau tháng và ngày, thay vì được đánh dấu cuối cùng, sau múi giờ? Đừng lo: nếu bạn có quyền kiểm soát định dạng đầu ra mà bạn muốn, dữ liệu sẽ phân phối định dạng đó theo từng đợt. Có hơn 40 tùy chọn mà bạn có thể vượt qua để hướng dẫn nó định dạng kết quả chính xác như bạn muốn.

Để sử dụng bất kỳ tùy chọn nào, hãy nhập ngày, dấu cách, dấu cộng + và tùy chọn bao gồm dấu phần trăm ở đầu. Tùy chọn %c (ngày và giờ theo ngôn ngữ) làm cho ngày và giờ được in ở định dạng ngôn ngữ đã chuẩn hóa. Miền địa phương xác định thông tin địa lý và văn hóa được cung cấp trong quá trình cài đặt hệ điều hành. Ngôn ngữ kiểm soát những thứ như ký hiệu tiền tệ, khổ giấy, múi giờ và các chuẩn mực văn hóa khác.

date +%c

Xuất lệnh ngày với tùy chọn c

Bây giờ năm xuất hiện ở một vị trí tự nhiên hơn trong sản xuất.

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

date +%A%d%B

Xuất lệnh ngày với các tùy chọn A d B.

Nó hoạt động, nhưng nó xấu. Không vấn đề gì, chúng ta có thể chèn khoảng trắng miễn là chúng ta đặt toàn bộ chuỗi định dạng trong dấu ngoặc kép. Lưu ý rằng + nằm ngoài dấu ngoặc kép.

date +"%A %d %B"

Đầu ra của lệnh ngày với tùy chọn A d B có dấu cách

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

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

Đầu ra lệnh dữ liệu với văn bản được thêm bởi người dùng

Cuộn ngày lên và xuống trang thủ công để tìm tùy chọn bạn muốn nhanh chóng trở nên mệt mỏi. Chúng tôi đã chia các tùy chọn thành các nhóm để giúp bạn điều hướng qua chúng dễ dàng hơn.

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

%c: In ngày và giờ ở định dạng ngôn ngữ, bao gồm cả múi giờ.

Đầu ra lệnh ngày

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

%D: In ngày ở định dạng mm/dd/yy.
%F: In ngày ở định dạng yyyy-mm-dd.
%x: In ngày ở định dạng ngôn ngữ.

Xuất lệnh ngày với các tùy chọn DF x

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

% a: In ra tên của ngày, viết tắt Mon, Tue, Wed. vân vân.
%A: in tên đầy đủ của ngày, Thứ Hai, Thứ Ba, Thứ Tư, v.v.
% u: In số ngày trong tuần, trong đó Thứ hai = 1thứ ba = 2thứ tư = 3 vân vân.
% in: In số ngày trong tuần, trong đó Chủ nhật = 0thứ hai = 1thứ ba = 2 vân vân.
%d: In ngày trong tháng, với số 0 đứng đầu nếu cần (01, 02…09).
%e: In ngày trong tháng, với khoảng trắng ở đầu nếu cần (“1”, “2”…”9″). Lưu ý rằng dấu nháy đơn không được in.
%j: In ngày trong năm, với tối đa hai số 0 đứng đầu nếu cần.

Đầu ra lệnh ngày với các tùy chọn A uwde

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

%U: In ra số tuần của năm, coi Chủ nhật là ngày đầu tiên của 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: In số tuần của năm theo ISOcoi thứ Hai là ngày đầu tuần.
%W: Số tuần trong năm, coi Thứ Hai là ngày đầu tuần.

Đầu ra lệnh ngày với các tùy chọn UVW

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

%b hoặc %h: In tháng viết tắt Jan, Feb, Mar, v.v.
%B: in tên đầy đủ của tháng, tháng 1, tháng 2, tháng 3, v.v.
% m: In số tháng, với số 0 đứng đầu nếu cần 01, 02, 03…12.

Xuất lệnh ngày với các tùy chọn bh B m

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

%C: In tuổi không có năm. Năm 2019, nó sẽ in 20.
%y: In năm dưới dạng hai chữ số. năm 2019 sẽ in 19.
% Y: In năm dưới dạng bốn chữ số.

Xuất lệnh ngày với các tùy chọn C và Y

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

%T: In thời gian dưới dạng HH:MM:SS.
%R: In giờ và phút dưới dạng HH:MM mà không có giây, sử dụng đồng hồ 24 giờ.
% r: In thời gian theo cài đặt ngôn ngữ, sử dụng đồng hồ 12 giờ và chỉ báo sáng hoặc chiều.
% X: In thời gian theo cài đặt ngôn ngữ sử dụng đồng hồ 24 giờ. Bị cáo buộc. Lưu ý rằng trong quá trình thử nghiệm, tùy chọn này hoạt động giống như %r như minh họa bên dưới. Trên một máy Linux được định cấu hình cho ngôn ngữ Vương quốc Anh và được đặt thành GMT, máy in thời gian bằng đồng hồ 24 giờ không có chỉ báo AM hoặc PM như mong đợi.

Xuất lệnh ngày với các tùy chọn TR r X

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

%H: In thời gian 00, 01, 02…23.
% I: In thời gian bằng đồng hồ 12 giờ, 00, 01, 02… 12, với số 0 đứng đầu nếu được yêu cầu.

Đầu ra lệnh ngày với các tùy chọn HI

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 cần.

Xuất lệnh ngày với các tùy chọn M

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

% s: In số giây kể từ 1970-01-01 00:00:00, là thời điểm bắt đầu Kỷ nguyên Unix.
%S: in giây, 01, 02, 03… 59, với số 0 đứng đầu nếu cần.
%N: In nano giây.

Xuất lệnh ngày với các tùy chọn s SN

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

% of: In chênh lệch múi giờ giữa múi giờ và giờ UTC.
%:z: In chênh lệch múi giờ giữa múi giờ và giờ UTC, z: giữa giờ và phút. Lưu ý: giữa dấu % và z.
%::z: In chênh lệch múi giờ giữa múi giờ và giờ UTC, với: giờ, phút và giây. Lưu ý :: giữa dấu % và z.
%Z: In tên theo thứ tự bảng chữ cái của múi giờ.

Xuất lệnh ngày với các tùy chọn múi giờ

tùy chọn định dạng

% p: In chữ hoa chỉ báo AM hoặc PM.
% P: In chỉ báo sáng hoặc chiều ở dạng chữ thường. Lưu ý cách giải quyết với hai tùy chọn này. Chữ p viết thường xuất ra chữ in hoa và chữ P in hoa in ra chữ thường.
%t: in thẻ.
%n: In một dòng mới.

Đầu ra lệnh ngày với chỉ báo AM PM và các tùy chọn định dạng

Tùy chọn để sửa đổi các tùy chọn khác

Các công cụ sửa đổi này có thể được chèn vào giữa % và ký tự tùy chọn của các tùy chọn khác để sửa đổi cách hiển thị của chúng. Ví dụ: % -S sẽ xóa số 0 đứng đầu đối với các giá trị giây có một chữ số.

-: Một dấu gạch nối đơn ngăn các giá trị một chữ số được đệm bằng số không.
_: dấu gạch dưới đơn thêm khoảng trắng ở đầu cho các giá trị một chữ số.
0: Chứa các số 0 đứng đầu cho các giá trị một chữ số.
^: Sử dụng chữ hoa khi có thể (không phải tất cả các tùy chọn đều bao gồm công cụ sửa đổi này).
#: Nếu có thể, hãy sử dụng ngược lại với mặc định của tùy chọn (không phải tất cả các tùy chọn đều có công cụ sửa đổi này).

Đầu ra lệnh ngày với các tùy chọn định dạng

Hai thủ thuật hay nữa

Để biết thời gian sửa đổi cuối cùng của tệp, hãy sử dụng tùy chọn -r (tham chiếu). Lưu ý rằng điều này sử dụng – (gạch nối) thay vì dấu % và không yêu cầu dấu +. Hãy thử lệnh này trong thư mục nhà của bạn:

date -r .bashrc

Xuất lệnh ngày với tùy chọn thời gian sửa đổi tệp

Cài đặt TZ cho phép bạn thay đổi múi giờ trong khoảng thời gian của một lệnh.

TZ=GMT date +%c

Xuất lệnh ngày cho một múi giờ khác

Sử dụng ngày trong tập lệnh

Kích hoạt tập lệnh shell Bash để in ngày giờ là chuyện nhỏ. Tạo một tệp văn bản với nội dung sau và lưu nó với tên 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

Nhập lệnh sau để đặt quyền thực thi và làm cho tập lệnh có thể thực thi được.

chmod +x gd.sh

Chạy tập lệnh bằng lệnh này:

./gd.sh

Đầu ra của tập lệnh gd.sh

Chúng ta có thể sử dụng lệnh date để cung cấp dấu thời gian. Tập lệnh được hiển thị sẽ tạo một thư mục có dấu thời gian làm tên. Sau đó, nó sẽ sao chép tất cả các tệp văn bản từ thư mục hiện tại vào đó. Bằng cách chạy tập lệnh này định kỳ, chúng tôi có thể chụp nhanh các tệp văn bản của mình. Theo thời gian, chúng tôi sẽ tạo một loạt thư mục với các phiên bản khác nhau của tệp văn bản.

Lưu ý rằng đây không phải là một hệ thống sao lưu mạnh mẽ, nó chỉ nhằm mục đích minh họa.

Tạo một tệp văn bản với nội dung sau và lưu nó với tên 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

Nhập lệnh sau để đặt quyền thực thi và làm cho tập lệnh có thể thực thi được.

chmod +x snapshot.sh

Chạy tập lệnh bằng lệnh này:

./snapshot.sh

Tác dụng của việc chạy tập lệnh snapshot.sh

Bạn sẽ thấy rằng thư mục đã được tạo. Tên của nó là ngày và thời gian tập lệnh được thực thi. Bên trong thư mục này là các bản sao của các tệp văn bản.

Với một chút suy nghĩ và sáng tạo, ngay cả một lệnh ngày khiêm tốn cũng có thể được sử dụng hiệu quả.