Команда ps
в Linux используется для мониторинга активных процессов в Linux и является одной из самых важных утилит командной строки, особенно для сисадминов и опытных пользователей.
Вот как использовать команду ps
Каждая команда в Linux требует соблюдения определенного синтаксиса, так же как и команда ps
. Поэтому я всегда рекомендую начинать с синтаксиса.
Вот синтаксис команды ps:
ps [options]
Здесь,
[options]
: используется для точной настройки вывода команды ps в соответствии с вашими потребностями, например, вы можете использовать флаг -u
, добавить к нему имя пользователя и отобразить процессы, относящиеся к этому пользователю.
Да, команда ps принимает только один аргумент. Поэтому она не так запутанна, как некоторые другие команды.
Теперь позвольте мне поделиться некоторыми популярными опциями команды ps:
Опции | Описание |
---|---|
-e |
Показать все процессы, включая те, которые не связаны с терминалом. |
-f |
Показать полную информацию о процессе, включая аргументы. |
-u <username> |
Показать процессы, принадлежащие определенному пользователю. |
-t <terminal_name> |
Показать процессы, запущенные на определенном терминале. |
-x |
Показать процессы без управляющего терминала. |
-o <PID/USER/CMD/%CPU/%MEM> |
Укажите формат вывода (PID, пользователь, команда, использование ЦП, использование памяти). |
--sort=<parameter> |
Сортировка вывода по различным параметрам. |
Когда команда ps
используется без каких-либо опций, она покажет только процессы, подключенные к текущему терминалу:
ps
Практические примеры использования команды ps
В этом разделе я расскажу вам о практических примерах использования команды ps
, чтобы вы поняли, насколько она универсальна.
1. Отображение активных процессов текущего пользователя
Чтобы показать все активные процессы текущего пользователя, вы используете флаг -x
с командой ps, как показано здесь:
ps -x
Здесь,
PID
: показывает идентификатор процесса.STAT
: показывает код состояния процесса, указывающий на текущий статус процесса.TTY
: показывает управляющий терминал за процессом.TIME
: показывает, сколько процессорного времени использовал процесс.COMMAND
: показывает исполняемый файл, инициировавший процесс.
Но если вы более подробно изучите команду ps, то узнаете, что флаг -x
часто используется в паре с флагом -u
для получения подробной информации о каждом процессе:
ps -ux
Здесь вы увидите больше столбцов:
%CPU
: количество процессорного времени, которое использовал процесс (в %).%MEM
: использование памяти процессом в %.VSZ
: общий объем виртуальной памяти, выделенной процессу.RSS
: объем физической памяти (RAM), используемой процессом в данный момент.TIME
: время запуска процесса.
2. Показать запущенные процессы каждого пользователя
Чтобы показать активные процессы каждого пользователя, достаточно использовать флаг -a
с -ux
для подробного вывода:
ps -aux
Хотя вывод выглядит в основном так же, как и в предыдущем примере, благодаря флагу -a
вы увидите процессы и других пользователей.
Кроме того, вы можете использовать команду ps -ef
, чтобы вывести список всех активных процессов с дополнительной информацией. Вот подробное руководство по этой теме:
3. Список запущенных процессов определенного пользователя
Чтобы получить список запущенных процессов определенного пользователя, используйте флаг -U
и добавьте к нему имя пользователя, как показано здесь:
ps -U<username>
Например, здесь я хотел получить список активных процессов, принадлежащих пользователю root
, поэтому я использовал следующую команду:
ps -U root
4. Список текущих процессов группы
Чтобы перечислить процессы группы, нужно использовать флаг -G
, за которым следует имя группы или ее ID, как показано здесь:
ps -G group_id/name
Для демонстрации этого здесь я перечислил активные процессы, принадлежащие группе sagar
:
ps -G sagar
5. Поиск PID процесса
Представьте себя в ситуации, когда вы хотите убить упрямый процесс, но не знаете, как найти его PID. Обидно, правда?
Команда ps может найти PID активных процессов, используя флаг -C
, как показано здесь:
ps -C process_name
Здесь введение правильного имени процесса обязательно, иначе будет показан пустой вывод:
Когда вы найдете его, вы можете использовать команду kill
, чтобы избавиться от процесса:
6. Получите дерево процессов
Хотите показать дерево процессов? Чтобы определить родительские/дочерние процессы, прежде чем их убивать?
Команда ps может это сделать, используя флаг --forest
вместе с комбинацией других флагов.
Я предлагаю использовать ее в паре с флагом -aux
, как показано здесь, чтобы получить список всех активных процессов:
ps -aux --forest
Вы также можете комбинировать опции -e
и -f
, чтобы получить аналогичный вывод:
ps -ef --forest
7. Сортировка вывода
По умолчанию вывод команды ps сортируется на основе PID, и некоторых пользователей такое поведение может не устраивать.
Для решения этой проблемы можно использовать флаг --sort
с существующими опциями и указать различные параметры для сортировки вывода:
ps -<options>--sort=parameters
Например, здесь я хотел отсортировать вывод на основе потребления процессора, поэтому использовал следующее:
ps -aux --sort=-%cpu
8. Найдите имя процесса по PID
Бывают случаи, когда у вас есть PID и вы хотите узнать, какому процессу он принадлежит. Звучит глупо, но со мной такое бывало.
Чтобы найти имя процесса по PID, используйте флаг -p
, как показано здесь:
pid -p PID
Заключение
Команда ps имеет широкий спектр возможностей, и в этом руководстве я постарался рассказать о самых практичных из них, которые вы можете использовать часто.
Комментарии (0)