Hướng dẫn sử dụng lệnh Time trong Linux

Tác giả: VPS chính hãng 25 tháng 06, 2023

Là quản trị viên Linux hoặc người dùng bình thường, bạn sẽ thấy việc học các lệnh Linux rất hữu ích để thực hiện các tác vụ một cách chính xác. Một trong những lệnh hiệu quả nhất của Linux là lệnh Time hiển thị thông tin “thời gian thực”, “thời gian người dùng” và “thời gian hệ thống”. Trong bài viết này, chúng tôi sẽ chia sẻ cách sử dụng lệnh Time trong Linux. Lệnh Time là công cụ lý tưởng để sử dụng nếu bạn muốn đánh giá độ dài của lệnh. Đây là một lệnh đơn giản với ít tùy chọn và mục tiêu đơn giản. Các ví dụ trong hướng dẫn này sẽ giúp bạn trở thành một chuyên gia trong việc sử dụng lệnh Time.

Điều kiện tiên quyết để sử dụng lệnh Time trong Linux

Để hướng dẫn này hoạt động tốt hơn, hãy xem xét và cung cấp các tùy chọn bên dưới:

  • Một hệ thống chạy bất kỳ bản phân phối Linux nào.
  • Người dùng không phải root có đặc quyền sudo.

Lệnh Time là gì?

Trong các hệ điều hành tương tự Linux và Unix, bạn có thể tìm hiểu thời gian thực hiện một thao tác cụ thể bằng cách sử dụng lệnh Time. Thông thường, nó được sử dụng để đánh giá mức độ hoạt động của các tập lệnh hoặc hướng dẫn. Một lệnh hoạt động tốt hơn khi hoàn thành nhiệm vụ của nó nhanh hơn. Lệnh Time là một công cụ hữu ích để đánh giá hiệu quả của lệnh, vì lệnh này cũng có thể cho biết quy trình đang sử dụng bao nhiêu tài nguyên hệ thống. Ví dụ: nếu bạn muốn chọn giữa hai công việc định kỳ có thể thực hiện cùng một thao tác. Chạy lệnh time sẽ cho bạn biết sẽ mất bao lâu để mỗi công việc định kỳ hoàn thành nhiệm vụ của nó.

Lệnh Time trong Linux giúp xác định thời gian thực hiện một thao tác cụ thể

Lệnh Time trong Linux giúp xác định thời gian thực hiện một thao tác cụ thể

Các phiên bản khác nhau của lệnh Time

Các phiên bản khác nhau của lệnh time trong hệ thống Linux: Bash, ZshGNU là ba phiên bản của lệnh time. Sử dụng lệnh bên dưới để kiểm tra phiên bản lệnh time trong Linux nào áp dụng cho hệ thống của bạn:

$ type time

Đầu ra:

  • time is a shell keyword“: có nghĩa là bạn đang sử dụng lệnh time Bash.

Đầu ra:

  • time is a reserved word”: có nghĩa là bạn đang sử dụng lệnh time Zsh.

Đầu ra:

  • time is usr/bin/time” nghĩa là bạn đang sử dụng lệnh time GNU.

Hướng dẫn sử dụng lệnh Time trong Linux

Trong bài viết này, chúng tôi sẽ sử dụng các ví dụ để chỉ cho bạn cách sử dụng lệnh time. Đầu tiên, hãy xem cú pháp của lệnh time trong Linux. Sau đó, bạn sẽ học cách đọc output của nó. Vì vậy, hãy mở chương trình shell của bạn và gõ:

$ time command 

$ time command arg1 arg2 ... argN 

$ time [options] command arg1 arg2 ... argN

Time chạy lệnh được chỉ định với bất kỳ đối số được cung cấp nào (arg). Lệnh Time tạo ra thông tin sau khi một lệnh hoàn thành hoạt động của nó, bao gồm thời gian chạy và những tài nguyên mà nó tiêu thụ. Và lệnh time sẽ xuất thông báo cảnh báo và trạng thái thoát nếu lệnh chương trình không thành công và thoát với trạng thái khác không.

Bạn có thể chọn dữ liệu để hiển thị trong phần sử dụng tài nguyên hệ thống bằng cách nhập định dạng chuỗi mà lệnh sử dụng. Giá trị của biến môi trường time sẽ được sử dụng làm định dạng nếu người dùng không cung cấp định dạng. Nếu không, định dạng mặc định tích hợp sẵn của time sẽ được áp dụng.

Mẹo: Sau lệnh, mọi thứ được cung cấp sẽ được xem là đối số.

=>> Đọc thêm: Hướng dẫn cài đặt Red Hat Enterprise Linux (RHEL)

Ví dụ về lệnh Time trong Linux

Trong phần này, chúng ta sẽ xem xét cách sử dụng lệnh time trong Linux và cũng như cách bạn có thể đọc đầu ra của nó bằng cách học cú pháp của lệnh này. Tại đây, bạn sẽ thấy việc sử dụng lệnh time dễ dàng như thế nào. Bạn chỉ cần mở chương trình shell của mình và gõ lệnh liên quan.

Nói chung, bạn có thể chạy lệnh sau để xem tất cả các tùy chọn có thể được sử dụng của time:

$ man time

Tùy thuộc vào hệ điều hành và phiên bản đang chạy của bạn, lệnh trên cung cấp cho bạn một danh sách các tùy chọn mà bạn có thể sử dụng để thay đổi lệnh time Linux.

Ngoài ra, để xác minh vị trí, hãy chạy lệnh bên dưới:

$ type -a time 

$ command -V time

Đầu ra phải giống như dưới đây:

time is a shell keyword 

time is /usr/bin/time 

time is /bin/time

Ví dụ dưới đây hiển thị thời gian cần thiết để hoàn tất quá trình di chuyển tệp sang một thư mục khác. Để tìm hiểu xem sẽ mất bao lâu, hãy chạy:

$ time mv example.txt example-dir

Như bạn sẽ thấy ở đầu ra, tệp example.txt đã được di chuyển đến example-dir.

Nhập thông tin sau để tính thời gian thực hiện chương trình trong ngày:

$ time date

Sau đó, cung cấp đường dẫn đầy đủ đến nhị phân thời gian để sử dụng lệnh time bên ngoài:

$ /usr/bin/time -p date

Làm cách nào để đọc Output của lệnh Time trong Linux?

Tìm hiểu về Output của lệnh time trong Linux giúp bạn biết được ưu điểm của lệnh này. Ở đây, chúng tôi sẽ giải thích làm thế nào để đọc output.

  • Real-time (real): lượng thời gian thực tế cần thiết để thủ tục hoàn tất từ ​​đầu đến cuối. Điều này bao gồm thời gian dành cho các thủ tục bổ sung cũng như thời gian cần thiết để đợi chúng hoàn thành.
  • User time (user): khoảng thời gian tiến trình sử dụng CPU ở chế độ người dùng. Khối thời gian và các quy trình khác không được bao gồm.
  • System time (sys): tổng thời gian tiến trình đã sử dụng CPU ở chế độ nhân. Các quy trình khác, cũng như thời gian bị chặn bởi các quy trình khác không được tính, giống như user time.

Hãy tiếp tục xem xét các ví dụ để biết cách sử dụng lệnh Time trong Linux một cách hoàn hảo. Để tải xuống trình cài đặt VirtualBox, hãy sử dụng lệnh bên dưới và cài đặt chương trình máy ảo mã nguồn mở này.

$ time wget https://download.virtualbox.org/virtualbox/6.1.28/virtualbox-6.1_6.1.28-147628~Ubuntu~eoan_amd64.deb

Bạn sẽ thấy ba con số sau khi quá trình tải xuống hoàn tất. Chúng hiển thị lượng thời gian đã trôi qua trong suốt quá trình tải xuống tính bằng phút và giây ở chế độ real, user, và sys.

=>> Đọc thêm: Cách chỉnh sửa tệp Sudoers và quản lý lệnh Sudo trong Linux

Chuyển hướng Output của lệnh Time sang một File

Để lưu bản ghi thông tin lệnh time (trong tệp output.time.txt), cú pháp sẽ như sau:

time date 2> output.time.txt 

/usr/bin/time -p date 2> output.time.txt

Nếu bạn là người dùng GNU/Linux, bạn có thể sử dụng các lệnh sau để ghi thống kê sử dụng tài nguyên vào tệp thay vì vào standard error stream:

$ /usr/bin/time -o output.time.txt -p date 

$ cat output.time.txt

Nếu bạn muốn dữ liệu tiêu thụ tài nguyên được thêm vào tệp đầu ra thay vì ghi đè, hãy chuyển tùy chọn -a. Chỉ có tùy chọn -o và tùy chọn này là hữu ích cùng nhau:

$ /usr/bin/time -a -o output.time.txt -p sleep 2 

$ cat output.time.txt

Ngoài ra, bạn có thể chạy lệnh bên dưới để kiểm soát định dạng đầu ra của lệnh thời gian:

$ /usr/bin/time -f 'FORMAT' -p command
Output của lệnh time có thể được chuyển thành file

Output của lệnh time có thể được chuyển thành file

Làm cách nào để ghi Output vào File một cách chính xác?

Đôi khi, bạn có thể muốn lưu thông tin bạn nhận được theo thời gian. Vì vậy, bạn có thể ghi đầu ra lệnh vào một tệp bằng tùy chọn định dạng. Tùy chọn -o của lệnh time GNU cho phép bạn tạo một tệp đầu ra mới chứa dữ liệu từ lệnh khác.

Để thực hiện việc này, hãy sử dụng lệnh bên dưới để lưu thông tin ping của yourdomain.com. Nó cũng sẽ lưu các chi tiết về quy trình của nó vào một tệp mới.

$ time -o yourdomain-ping-info.log ping yourdomain.com

Người dùng Bash shell phải gọi lệnh time bên ngoài nếu họ muốn sử dụng -o hoặc bất kỳ tùy chọn nào khác. Để làm điều này, phải sử dụng đường dẫn rõ ràng usr/bin/time thay vì chỉ time.

$ usr/bin/time -o yourdomain-ping-info.log ping yourdomain.com

Ngoài ra, cú pháp sử dụng lệnh time dựng sẵn của bash trong Linux/Unix như sau:

$ time command 

$ time ls 

$ TIMEFORMAT="%P" time ls 

$ TIMEFORMAT="%U" time sleep 3 

$ TIMEFORMAT="%S" time sleep 3 

$ TIMEFORMAT="%R" time sleep 2

Tiếp theo, bạn có thể sử dụng lệnh sau để kiểm tra nội dung của yourdomain-ping-info.log.

$ cat yourdomain-ping-info.log

Như chúng tôi đã đề cập, có thể lấy đầu ra chi tiết trong File. Có khả năng đầu ra lệnh time mặc định sẽ không cung cấp cho bạn tất cả thông tin bạn cần để hiểu một quy trình nhất định. Thêm tùy chọn -v vào lệnh time trong Linux để hiển thị đầu ra chi tiết.

Chạy lệnh sau để tìm ping hoặc thời gian phản hồi của yourdomain.com. Bằng cách này, thông tin chi tiết về quy trình sẽ được hiển thị.

$ time -v ping yourdomain.com

Nhưng bạn có thể sử dụng lệnh time bên ngoài bằng cách nhập đường dẫn đầy đủ usr/bin/time, nếu bạn không sử dụng lệnh thời gian GNU.

$ usr/bin/time -v ping yourdomain.com

Cách sử dụng lệnh Time trong Linux hoặc Unix với tùy chọn định dạng

Khi bạn quyết định chỉ hiển thị người dùng, hệ thống và tổng thời gian bằng tùy chọn định dạng, hãy chạy:

$ /usr/bin/time -f "%E real,%U user,%S sys" sleep 2 

$ /usr/bin/time -f "%E real,%U user,%S sys" /path/to/script

Đầu ra sẽ giống như dưới đây:

0:02.00 real,0.00 user,0.00 sys

Lệnh sau sẽ hiển thị phần trăm CPU:

$/usr/bin/time -f "Tỷ lệ phần trăm CPU: %P"

$ /usr/bin/time -f "Phần trăm CPU: %P" grep vivek /etc/passwd

$ /usr/bin/time -f "Phần trăm CPU: %P" find /etc/ -type f -iname "a*.conf"

Trong bài viết này, bạn đã biết được cách sử dụng lệnh Time trong Linux. Lệnh time rất đơn giản để sử dụng và là lệnh duy nhất người dùng cần biết khi họ cần đo khoảng thời gian cần thiết để thực thi một thứ gì đó trên hệ thống Linux. Để kiểm tra thời gian thực hiện và hiệu suất tổng thể của một quy trình cụ thể, bạn chỉ cần sử dụng Lệnh Time. Cú pháp lệnh, mục đích và đầu ra đã được giải thích trong hướng dẫn này và các ví dụ sẽ giúp bạn sử dụng lệnh này trong các tình huống khác nhau. Nếu bạn gặp bất kỳ vấn đề, xin vui lòng liên hệ với chúng tôi qua vpschinhhang.com. Nhóm hỗ trợ kỹ thuật của chúng tôi hoạt động 24/7 để giải quyết vấn đề của bạn.