Lệnh time: Cách để tính thời gian cho một lệnh cụ thể trong Linux
Trong Linux, “time” là một công cụ dòng lệnh cho phép người dùng đo lượng thời gian cần thiết để chạy một lệnh cụ thể. Nó có lợi cho việc tối ưu hóa hiệu suất của hệ thống hoặc xác định các lệnh chạy chậm. Nó có được bức tranh chi tiết hơn về thời gian chạy của một lệnh và nơi nó sử dụng tài nguyên. Hướng dẫn này sẽ giải thích ngắn gọn về lệnh time và cách người dùng có thể tính thời gian cho một lệnh cụ thể trong Linux.
Lệnh time là gì?
Lệnh time trong Linux và các hệ điều hành tương tự Unix cho phép bạn xác định thời gian chạy một lệnh cụ thể. Thông thường, nó được sử dụng để đo hiệu suất của tập lệnh hoặc lệnh. Lệnh hoàn thành nhiệm vụ càng nhanh thì hiệu suất của nó càng tốt. Ngoài ra, lệnh time cũng có thể hiển thị việc sử dụng tài nguyên hệ thống của quy trình, khiến nó trở thành một công cụ hữu ích để xem xét hiệu quả của một lệnh cụ thể. Ví dụ: bạn muốn chọn giữa hai công việc định kỳ có thể chạy cùng một tác vụ. Bạn có thể xác định mỗi công việc định kỳ sẽ mất bao lâu để hoàn thành các tác vụ bằng cách chạy lệnh time.
Tuy nhiên, trước khi chúng ta bắt đầu nói về cách sử dụng lệnh time để tính thời gian chjay một lệnh cụ thể trong Linux, hãy nhớ rằng nó khác nhau tùy thuộc vào shell bạn sử dụng. Có ba phiên bản khác nhau của lệnh time trong hệ thống Linux:
- Bash – đã được tích hợp sẵn trong shell và có thể chạy bằng cách gõ thời gian.
- Zsh – giống như Bash, nó cũng đã được tích hợp sẵn trong hệ thống, chạy theo thời gian gõ.
- GNU Default Linux (GNU) – có sẵn bằng cách nhập đường dẫn rõ ràng tới lệnh, usr/bin/time.
Cách kiểm tra phiên bản lệnh time trong Linux
Để 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, hãy nhập thông tin sau vào chương trình shell của bạn:
$ type time
- Nếu bạn nhận được thời gian đầu ra là từ khóa shell thì bạn đang sử dụng lệnh Bash time.
- Nếu bạn nhận được thời gian đầu ra là một từ dành riêng thì bạn đang sử dụng lệnh Zsh time.
- Nếu bạn nhận được thời gian đầu ra là usr/bin/time thì bạn đang sử dụng lệnh GNU time.
Ngoài ra, bạn có thể đơn giản hóa lệnh thời gian GNU trong Linux bằng cách tạo lệnh phụ cho usr/bin/time.
=>> Cách sử dụng lệnh set để lặp lại các lệnh shell
Làm cách nào để tính thời gian cho một lệnh cụ thể?
Để tính thời gian cho một lệnh cụ thể trong Linux, hãy sử dụng lệnh time bằng cách chỉ định lệnh cụ thể. Cú pháp sử dụng lệnh “time” như sau:
$ time [options] command |
Ở đây, “options” là các đối số tùy chọn có thể được sử dụng để tùy chỉnh đầu ra của lệnh “time” và “command” là lệnh mà người dùng muốn tính thời gian.
Nếu người dùng muốn tùy chỉnh đầu ra của lệnh “time”, hãy sử dụng các tùy chọn sau:
- “-p“: Hiển thị đầu ra ở định dạng di động hơn.
- “-f format“: Chỉ định định dạng tùy chỉnh cho đầu ra.
- “-o file“: Chuyển hướng đầu ra sang một tập tin.
Lệnh “time” đo thời gian thực hiện lệnh theo ba cách khác nhau:
- Thời gian thực: Thời gian thực tế đã trôi qua để lệnh chạy (thời gian chờ I/O hoặc các quy trình khác).
- Thời gian của người dùng: Thời gian mà CPU sử dụng ở chế độ người dùng.
- Thời gian hệ thống: Thời gian CPU ở chế độ hệ thống.
Có nhiều cách khác nhau để sử dụng lệnh “time” trong Linux để tính thời gian cho một lệnh cụ thể.
Dưới đây là một số ví dụ:
Ví dụ 1: Thời gian cho một lệnh cụ thể
Một ví dụ được thực hiện để đo thời gian lệnh cần chạy. Để thực hiện việc này, hãy nhập lệnh “time”, theo sau là lệnh mà người dùng muốn tính thời gian. Trong trường hợp của chúng tôi, hãy tìm thời gian của lệnh “ls” thông qua tập lệnh sau:
$ time ls |
Đầu ra của lệnh “time” hiển thị lượng thời gian thực (0m0,016s), thời gian của người dùng (0m0,004s) và thời gian hệ thống (0m0,005s) cần thiết để lệnh chạy.
Ví dụ 2: Thời gian cho một lệnh cụ thể ở định dạng di động
Để tìm ra thời gian và hiển thị đầu ra ở định dạng di động dễ hiểu, hãy sử dụng lệnh time với tùy chọn “p” bằng cách chỉ định lệnh cụ thể là “$ sudo apt update” trong tập lệnh bên dưới:
$ time -p sudo apt update |
Việc thực thi lệnh trên sẽ hiển thị đầu ra ở định dạng di động bằng cách sử dụng tùy chọn “p”.
Ví dụ 3: Tính thời gian cho một lệnh cụ thể bằng cách sử dụng Pipeline
Người dùng cũng có thể tính thời gian cho một chuỗi lệnh bằng cách đặt chúng trong dấu ngoặc đơn thông qua lệnh “time”. Ví dụ: sắp xếp và đếm số dòng duy nhất trong “file.txt” thông qua lệnh bên dưới:
$ time (sort file.txt | uniq -c) |
Nó hiển thị thời gian của cả hai lệnh “sort” và “uniq” cùng nhau và hiển thị tổng thời gian cần thiết để đường ống chạy.
Lưu ý: Người dùng cũng có thể sử dụng lệnh “/usr/bin/time” thay vì lệnh “time” để thực hiện các thao tác khác nhau.
Ví dụ 4: Định dạng con người có thể đọc được
Để tùy chỉnh đầu ra của lệnh “/usr/bin/time”, hãy sử dụng tùy chọn “-f”. Ví dụ: chỉ hiển thị mức sử dụng bộ nhớ và thời gian thực của lệnh thông qua tập lệnh bên dưới:
$ /usr/bin/time -f "%E real" ls |
Nó hiển thị “0:00.02” thời gian thực ở định dạng dễ đọc hơn cho con người.
Ví dụ 5: Lưu đầu ra vào một tệp
Người dùng có thể lưu đầu ra của lệnh “/usr/bin/time” vào một tệp bằng tùy chọn “-o”. Đối với điều này, hãy lưu đầu ra của lệnh “time” vào một tệp có tên “file.txt“:
$ /usr/bin/time -o file.txt ls |
Nó lưu đầu ra của lệnh “time” vào tệp “file.txt” trên màn hình.
=>> Cách để khớp chuỗi chính xác bằng lệnh grep trong Linux
Bài viết này đã giải thích cách người dùng có thể tính thời gian cho một lệnh cụ thể bằng các ví dụ khác nhau trong Linux. Để tính thời gian cho một lệnh cụ thể trong Linux, hãy sử dụng tập lệnh “time<command>”. Nó cho người dùng biết lệnh này mất bao lâu để chạy. Người dùng cũng có thể sử dụng các tùy chọn “p” và “f” để tùy chỉnh đầu ra của lệnh “time” ở định dạng di động, định dạng con người có thể đọc được. Ngoài ra, người dùng có thể lưu đầu ra vào một tệp thông qua tùy chọn “o”. Đó là tất cả những chia sẻ hôm nay của chúng tôi. Nếu có bất kì những câu hỏi nào liên quan đến vận hành và sử dụng VPS Windows/Linux hãy liên hệ với chúng tối ngay hôm nay!