Câu trả lời:
Tại sao sử dụng pskhi bạn có thể làm điều đó dễ dàng với toplệnh?
Nếu bạn phải sử dụng ps, hãy thử điều này:
ps aux | sort -nrk 3,3 | head -n 5
Nếu bạn muốn một cái gì đó thực sự là 'top'esq với các cập nhật liên tục, hãy sử dụng đồng hồ
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
topthực sự hoạt động.
topđọc danh sách quy trình và tự hiển thị kết quả mà không cần chuyển sang bất kỳ quy trình nào khác
Câu trả lời đúng là :
ps --sort=-pcpu | head -n 6
Vì vậy, bạn có thể chỉ định các cột mà không can thiệp vào sắp xếp.
Ví dụ:
ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6
Lưu ý cho MAC OS X : Trong Mac OS X, pskhông nhận ra --sort, nhưng cung cấp -rđể sắp xếp theo mức sử dụng CPU hiện tại. Do đó, đối với Mac OS X, bạn có thể sử dụng:
ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
bash(x2, hoặc headlà tốt) ps...
sort, phần thứ hai cho biết cách chỉ định các cột mà không can thiệp vào việc sắp xếp. Khi giải thích một cái gì đó .. tốt hơn là luôn luôn ngắn gọn và giải thích từng điều một.
Tùy thuộc vào nhu cầu của bạn, bạn có thể thấy điều này dễ đọc hơn một chút:
ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5
đầu ra mẫu:
1.3 4 root [ksoftirqd/0]
1.1 9 root [ksoftirqd/1]
1.0 17606 nobody /usr/sbin/gmetad
1.0 13 root [ksoftirqd/2]
0.3 17401 nobody /usr/sbin/gmond
(các trường là% CPU, PID, USER, THÔNG TIN)
Tôi không nghĩ pslà những gì bạn đang tìm kiếm. Bạn đã nhìn vào đầu ra từ top?
Nếu bạn có GNU-Top, hãy thử sử dụng chế độ hàng loạt của nó để đưa ra danh sách quy trình được sắp xếp theo mức độ sử dụng cpu và sử dụng head / tail để có được 5 dòng trên cùng (8 đầu tiên là các tiêu đề):
top -b -n 1 | head -n 12 | tail -n 5
Đầu BSD dường như hoạt động khác đi và không có chế độ không tương tác, vì vậy hãy sử dụng một trong các psgiải pháp dựa trên khác .
top -o cpu -n 5một cách để đạt được điều tương tự. Có ai biết không? My topkhác với bạn top.
-ovà -nđặt số lần nó làm mới màn hình trước khi thoát.
topdường như không có chế độ hàng loạt, điều này khá hạn chế. Phải có một số cách đường ống topvào các lệnh khác. Tôi sẽ làm một số nghiên cứu.
toplàm việc như mô tả chiều nay. Chúc mừng.
Nhanh nhất một lớp lót tôi đã tìm thấy cho điều này (lưu ý 6 vì tiêu đề cộng lại):
ps aux k-pcpu | head -6
Lưu ý rằng các phiên bản hiện tại của ps có khả năng sắp xếp bên trong chúng, dựa trên mã trường (được đưa ra trong trang ps man). Mã trường để sử dụng bộ xử lý là "c". Bạn có thể sử dụng --sort cở cuối lệnh ps, vdps aux --sort c
Điều này sẽ đặt quá trình sử dụng hầu hết các cpu ở cuối danh sách. Thứ tự đảo ngược của danh sách bằng cách thêm một dấu trừ vào mã trường được sử dụng để sắp xếp, ví dụps aux --sort -c
Để thêm một điểm vào các câu trả lời có giá trị khác, tôi thích:
ps auxk-c | head -6
Nó cũng in tiêu đề, đó là tốt đẹp.
Ở đây kgiống hệt --sortvà cchỉ định trường sử dụng CPU (bí danh %cpu) để sắp xếp, trong khi đó -là sắp xếp ngược lại.
Bạn có thể thêm specifiers phân cách bằng ,, specifiers khác có thể là: %mem, args, bsdstart, pid, gid, uid... mà bạn có thể tìm thấy danh sách đầy đủ tại TIÊU CHUẨN specifiers FORMAT phần của trang người đàn ông. Ví dụ:
ps auxk -gid,-%mem | head -11
sẽ in 10 tiến trình với id nhóm cao nhất, được sắp xếp bên trong theo mức sử dụng bộ nhớ.
Công cụ dòng lệnh pscó tùy chọn sắp xếp riêng, vì vậy tôi thích:
$ ps -eo pcpu,args --sort=-%cpu | head
Bạn có thể thêm các cột bạn muốn. Xem những tùy chọn khác có sẵn thông qua pstrang người đàn ông.
$ man ps
toptrên Mac OS X có tùy chọn chế độ ghi nhật ký ở dạng top -l numberOfSamples(có vẻ tương đương với chế độ hàng loạt của GNU top). Tuy nhiên, cần có ít nhất hai mẫu vì "mẫu đầu tiên được hiển thị sẽ có% CPU không hợp lệ được hiển thị cho mỗi quy trình, vì nó được tính bằng cách sử dụng delta giữa các mẫu" ( man 1 top).
# examples
top -o cpu -l 2 -n 5 | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu | tail -n 6
top -o cpu -l 2 -n 5 -stats pid,command,cpu -U $(logname) | tail -n 6
Tôi tin rằng cách đơn giản nhất để xem 5 quy trình tiêu thụ cpu hàng đầu là,
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5
Để xem 5 quá trình tiêu thụ bộ nhớ hàng đầu là,
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5
Ở đâu,
-e : Cờ này được sử dụng để chọn tất cả quá trình
-o : Cờ này được sử dụng để định dạng dưới dạng người dùng xác định.
pid : Đối số này được sử dụng để hiển thị pid
comm: Đối số này được sử dụng để chỉ hiển thị tên lệnh. Để có được lệnh sử dụng đầy đủ args, cmdhoặccommand
%cpu: Đối số này cho thấy tỷ lệ sử dụng cpu của quy trình ở định dạng "##. #". Ở đây pcpucũng có thể được sử dụng.
%mem: Đối số này hiển thị tỷ lệ kích thước cài đặt thường trú của quy trình với bộ nhớ vật lý trên máy, được biểu thị bằng phần trăm. Ở đây pmemcũng có thể được sử dụng.
--sort: Chỉ định thứ tự sắp xếp. Sau =những -dấu hiệu được sử dụng để sắp xếp giá trị cao nhất ở phía trên nơi tùy chọn mặc định đó là +là lập danh sách số thứ tự tăng [tức là từ 0 đến n].