ps - самая важная команда в Linux

Команда 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 имеет широкий спектр возможностей, и в этом руководстве я постарался рассказать о самых практичных из них, которые вы можете использовать часто.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен itsfoss.com

Похожие статьи

Комментарии (0)