Відповіді:
Навіщо використовувати, psколи ви можете легко це зробити за допомогою topкоманди?
Якщо вам потрібно скористатися ps, спробуйте це:
ps aux | sort -nrk 3,3 | head -n 5
Якщо ви хочете чогось справді 'top'esq з постійними оновленнями, використовуйте годинник
watch "ps aux | sort -nrk 3,3 | head -n 5"
ps aux | sort -nrk 3,3 | head -n 5
topнасправді працює.
topчитає список процесів і відображає результат самостійно, не
Правильна відповідь :
ps --sort=-pcpu | head -n 6
Таким чином, ви можете вказати стовпці, не заважаючи сортувати.
Наприклад:
ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6
Примітка для MAC OS X : У Mac OS X psне розпізнає --sort, але пропонує -rсортувати за поточним використанням процесора. Таким чином, для Mac OS X можна використовувати:
ps -Ao user,uid,comm,pid,pcpu,tty -r | head -n 6
bash(x2, або headтакож) ps...
sort, другий показує, як вказати стовпці, не втручаючись у сортування. Коли щось пояснюється .. завжди краще бути стислим і пояснювати одне за одним.
Залежно від ваших потреб, це може бути трохи читабельніше:
ps -eo pcpu,pid,user,args --no-headers| sort -t. -nk1,2 -k4,4 -r |head -n 5
вихід вибірки:
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
(поля% CPU, PID, USER, COMMAND)
Я не думаю ps, що ви шукаєте. Ви подивилися на вихід top?
Якщо у вас є GNU-Top, спробуйте використовувати його пакетний режим, щоб виплюнути список процесів, відсортований за використанням процесора та використовуючи голову / хвіст, щоб отримати топ-5 рядків (перші 8 - заголовки):
top -b -n 1 | head -n 12 | tail -n 5
Здається, верх BSD поводиться по-різному і не має неінтерактивного режиму, тому використовуйте одне з інших psрішень на основі.
top -o cpu -n 5це спосіб досягти того ж самого. Хтось знає? Моя topвідрізняється від вашої top.
-oі -nвстановлює кількість разів оновлення дисплея перед тим, як вийти з нього.
topздається, не має пакетного режиму, що досить обмежує. Повинен бути якийсь спосіб перенесення topв інші команди. Я проведу кілька досліджень.
topпрацював так, як описано сьогодні вдень. Ура.
Найшвидший один лайнер, який я знайшов для цього (примітка 6, оскільки заголовка додається):
ps aux k-pcpu | head -6
Зауважте, що поточні версії ps мають можливість сортування всередині них, ґрунтуючись на кодах полів (наведених на сторінці man ps). Код поля для використання процесора - "c". Ви можете використовувати --sort cв кінці команди ps, наприкладps aux --sort c
Це поставить процес з використанням самого процесора в нижній частині списку. Зворотний порядок списку додаючи мінус до коду поля, який використовується для сортування, наприкладps aux --sort -c
Щоб додати крапку до інших цінних відповідей, я віддаю перевагу:
ps auxk-c | head -6
Він також друкує заголовок, що добре.
Тут kідентично --sortі cвказується %cpuполе використання процесора (псевдонім ) для сортування, тоді -як для зворотного сортування.
Ви можете додати більше специфікаторів розділених ,, інші можливі специфікатор: %mem, args, bsdstart, pid, gid, uid... , які ви можете знайти повний список в стандартному форматі специфікатор розділі сторінки людини. Наприклад:
ps auxk -gid,-%mem | head -11
буде надруковано 10 процесів з найвищим ідентифікатором групи, внутрішньо відсортованих за використанням пам'яті.
Інструмент командного рядка psмає свій варіант сортування, тому я віддаю перевагу:
$ ps -eo pcpu,args --sort=-%cpu | head
Ви можете додати потрібні стовпці. Подивіться, які інші варіанти доступні на psсторінці man.
$ man ps
topна Mac OS X є опція режиму реєстрації у формі top -l numberOfSamples(що, здається, еквівалентно пакетному режиму GNU top). Однак необхідно мати принаймні два зразки, оскільки "перший відображений зразок матиме недійсний% CPU для кожного процесу, оскільки він обчислюється за допомогою дельти між зразками" ( 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
Я вважаю, що найпростіший спосіб побачити топ-5 процесорів, що споживають процесор ,
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 5
Щоб побачити топ-5 процес, який займає пам'ять ,
ps -eo pid,comm,%cpu,%mem --sort=-%mem | head -n 5
Де,
-e : Цей прапор використовується для вибору всього процесу
-o : Цей прапор використовується для форматування, визначеного користувачем.
pid : Цей аргумент використовується для показу pid
comm: Цей аргумент використовується лише для відображення імені команди. Щоб отримати повне використання команди args, cmdабоcommand
%cpu: Цей аргумент показує відсоток використання процесора у форматі "##. #". Тут pcpuтакож можна використовувати.
%mem: Цей аргумент показує відношення розміру набору резидента процесу до фізичної пам'яті на машині, виражене у відсотках. Тут pmemтакож можна використовувати.
--sort: Вкажіть порядок сортування. Після =цього -знак використовується для сортування найвищого значення вгорі, де за замовчуванням +є список, що збільшує числовий порядок [тобто 0 до n].