Câu trả lời:
Nó sẽ giúp nếu bạn cụ thể hơn rất nhiều về những gì bạn đang cố gắng làm.
Đây là một ví dụ cực kỳ đơn giản:
while true
do
clear
date
sleep 1
done
bạn có thể sử dụng lệnh watch (1) để chạy tập lệnh của mình theo định kỳ:
watch -n 1 myscript.sh
Thao tác này sẽ chạy myscript.sh
cứ sau 1 giây xóa màn hình giữa mỗi lần chạy và với dấu thời gian ở góc. Bạn có thể sử dụng -d
tùy chọn và thậm chí nó sẽ làm nổi bật sự khác biệt về đầu ra trên mỗi lần chạy.
watch
. Bạn có thể đặc sắc hơn không? HĐH gì?
Hầu hết các dữ liệu đó thường được phơi bày trong các nguyên hàm hệ thống tệp / Proc ảo. Mỗi quá trình có một mục trong / Proc trong một thư mục được gọi là PID. Vì vậy, / Proc / 5437 sẽ có các nguyên thủy cho quy trình 5437. Đọc các nguyên thủy ở đó và phân tích cú pháp một cách thích hợp sẽ giúp bạn gần với những gì hàng đầu làm.
Top thực sự hoạt động bằng cách gọi các cuộc gọi chức năng cụ thể trích xuất thông tin này trực tiếp từ kernel thay vì lấy nó từ các tệp. Để thực hiện tương tự từ bash, bạn phải kéo nó từ hệ thống tệp ảo / Proc hoặc trích xuất nó khỏi các cuộc gọi khác như đến ps
.
Đối với thời gian thực, điều đó không hoàn toàn khả thi ở mức độ chi tiết hàng đầu cung cấp. Bạn có thể cắt thời gian đủ tốt để nó có vẻ là thời gian thực, nhưng bạn vẫn sẽ có được những lát cắt thời gian.
Erm, trong trường hợp bạn đang xem top
đầu ra trong một thời gian dài hơn, và không chỉ để kiểm tra xem một chương trình có hoạt động tốt hay không, tôi khuyên bạn nên sử dụng htop .
Nó cung cấp cho bạn nhiều thông tin theo thời gian thực và dễ kiểm soát và quản lý hơn.
Bạn có thể thay đổi bố cục của đầu ra, chẳng hạn như biểu đồ thanh và cột.
top
sử dụng Curses và đọc /proc
hệ thống tập tin
/proc
. Một cách khác để có được thông tin là sysctl (8) / sysctl (3).
curses
giao diện ... nhưng tôi nghĩ đây là một câu hỏi lập trình nặng nề hơn và thuộc về SO