Для системных администраторов ps является часто используемым инструментом.
Он используется для отображения текущих запущенных процессов в вашей системе с помощью различных режимов фильтрации и отображения, доступных с помощью флагов и аргументов.
Мы будем следовать соглашению UNIX об одиночном тире, предшествующем флагу, поскольку это наиболее широко поддерживаемый синтаксис.
Однако он также может быть запущен с синтаксисом BSD, который отбрасывает префиксные тире и использует отдельный синтаксис имени флага.
Например, флаг aux заменяет более распространенный флаг -ef. Убедитесь, что вы знаете, какой из них вы используете.
1. Показать все процессы
ps -ef
Показывает все запущенные процессы с полными данными о каждом процессе.
Эти данные включают столбцы, показывающие PID, тип терминала (TTY), время выполнения и имя команды.
2. Фильтр по пользователю
ps -e -u userName
3. Фильтр по имени процесса
ps -C name
Фильтрует результаты по имени процесса.
Поиск не чувствителен к регистру, но все имена процессов в любом случае строчные.
Будет искать во всех процессах без префикса -e.
4. Фильтр по идентификатору процесса
ps -ef -p 1234,5678,9012
Если вам известен идентификатор запущенного процесса, который вы хотите показать, вы можете отфильтровать его с помощью флага -p.
Это может вывести несколько PID в качестве аргументов, разделенных одной запятой и без пробела.
5. Фильтрация с Grep в результатах
ps -ef | grep worker
6. Отображение определенных столбцов
ps -e -o pid,uname,pcpu,pmem,comm
Флаг -o устанавливает конкретные параметры вывода результатов команды ps.
7. Сортировка процессов по использованию
ps -e --sort=-pcpu -o pid,pcpu,comm
Сортирует команды по перечисленным столбцам.
Префикс минус (-) сортирует данные по убыванию, а префикс плюс (+) сортирует по возрастанию.
Эта команда также использует команду -o для отображения определенных столбцов, что не является строго необходимым для сортировки.
8. Переименовать заголовки столбцов
ps -o pid=Process,ruser=RealUser,comm=Command
При использовании команды -o для создания указанного пользователем внешнего вида столбцы можно переименовывать.
Добавьте знак = (равно) и желаемое имя, используя флаг -o для каждого переименованного заголовка.
Заголовки также можно скрыть в определенных столбцах, оставив пробел после знака равенства.
Вы можете смешивать и сопоставлять с переименованными столбцами и именами по умолчанию.
Просто используйте флаг -o для каждого переименованного столбца, как показано ниже:
ps -e -o pid,pcpu=CPU -o pmem=RAM,comm
9. Отображение результатов в стиле иерархического дерева
ps -e --forest
Использует искусство ASCII для создания древовидной структуры для отображения процессов.
Показывает разветвленные и дочерние процессы как потомки соответствующих родительских процессов, сортируя для соответствия.
Чтобы скрыть «ветви» дерева, используйте -H вместо –forest.
10. Отображение потоков процесса
ps -p 4041 -L
Флаг -L переключает отображение потока для любой функциональности ps.
Это наиболее полезно при отслеживании потоков определенного процесса.
11. Показать все корневые процессы
ps -f -U root -u root
Выполните поиск по всем процессам, работающим с реальной и эффективной идентификацией root.
Это показывает их в полноразмерном формате благодаря флагу -f.
Вы можете комбинировать ее с флагом -o для настройки вывода.
Заключение
Хотя флаги в стиле UNIX лучше подходят для других команд терминала, команды BSD могут отображать информацию в разных, а иногда и более полезных форматах.