Ви також можете обробити ps
вихід трохи краще.
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
Це дозволить ps
проаналізувати свій вихід на ваші технічні характеристики за потребою.
Звичайно, якщо ви не переказуєте слова, то у вас виникає проблема з відсутністю інформації. Вам справді потрібно все це для всіх процесів? Відкрийте його в пейджері, якщо так:
ps ww ${opts} | $PAGER
Якщо ні, вкажіть, що ви хочете бачити:
ps -o args= -p $pid
Ви також можете чітко повідомити ps
про свій термінал --width
:
man ps
...
w
Широкий вихід. Використовуйте цю опцію двічі для необмеженої ширини.
-w
Широкий вихід. Використовуйте цю опцію двічі для необмеженої ширини.
--width n
Встановити ширину екрана.
Ця --width
річ працює саме на запитувані вами характеристики, не залучаючи будь-яких додаткових фільтрів або допоміжних процесів (які, ймовірно, -aux
ще більше захаращують ваш вихід). І, $COLUMNS
як показано вище, і як вказує Стефан, це навіть буде динамічно працювати.
Напевно, варто відзначити, що я вважаю, що люди часто намагаються додати такі види непотрібних фільтрів, щоб вони могли розмістити |pipe
через інший фільтр для розбору результатів, який також є дуже непотрібним. Звичайно, під людьми я в основному маю на увазі мене.
-o
Utput операнда я згадав вище дозволяю фільтрувати стовпці , які ps
відображаються, а при додаванні =
розпаювання ви можете навіть назвати колонки , як вам завгодно. Я залишаю завдання порожнім і вручаю йому цільову -p
обробку, $pid
тому єдиним результатом з ps
усіх є $pid
ім'я команди та її args
при виклику. І -o
ледь не дряпає поверхню того, як ви можете визначити, що ps
буде чи не буде відображатися. Це я б рекомендував вам взяти, особливо через:
man ps
...
Щоб побачити кожен процес у системі, що використовує синтаксис BSD:
ps ax
ps axu
Щоб надрукувати дерево процесу:
ps -ejH
ps axjf
Щоб отримати інформацію про теми:
ps -eLf
ps axms
Щоб отримати інформацію про безпеку:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
Щоб побачити кожен процес, що працює як root (реальний та ефективний ідентифікатор) у форматі користувача:
ps -U root -u root u
Щоб побачити кожен процес у визначеному користувачем форматі:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan
Роздрукуйте лише ідентифікатори процесу syslogd:
ps -C syslogd -o pid=
Роздрукуйте лише назву PID 42:
ps -p 42 -o comm=