В этой статье рассматриваются основы команды pgrep в Linux.
pgrep — это утилита командной строки, которая позволяет вам находить идентификаторы процессов работающей программы на основе заданных критериев. Это может быть полное или частичное имя процесса, пользователь, выполняющий процесс, или другие атрибуты.
Команда pgrep является частью пакета procps (или procps-ng), который предварительно установлен почти во всех дистрибутивах Linux.
Синтаксис pgrepкоманды следующий:
pgrep [OPTIONS] <PATTERN>
Соответствие <PATTERN> указывается с использованием расширенных регулярных выражений.
Когда вызывается без какой-либо опции, pgrep отображают PID всех запущенных программ, которые соответствуют указанному имени. Например, чтобы найти PID сервера SSH, вы должны выполнить:
pgrep ssh
Если есть запущенные процессы с именами, совпадающими с «ssh», их PID будут отображаться на экране. Если совпадений не найдено, вывод пуст.
1039 2257 6850 31279
Команда возвращает 0, когда хотя бы один запущенный процесс соответствует запрошенному имени. В противном случае код выхода есть 1. Это может быть полезно при использовании в сценариях оболочки.
pgrep печатает каждый соответствующий идентификатор процесса на новой строке. Опция -d позволяет указать другой разделитель. Например, если вы хотите использовать пробел в качестве разделителя, введите:
pgrep ssh -d' '
1039 2257 6850 31279
Опция -l указывает pgrep показать имя процесса наряду с его ID:
pgrep ssh -l
pgrep использует регулярные выражения для выполнения операции поиска и перечислит все процессы, которые содержат «ssh» в своих именах:
1039 sshd 2257 ssh-agent 6850 ssh 31279 ssh-agent
Если вы хотите сопоставлять только процессы, имена которых точно соответствуют шаблону поиска, вы должны использовать:
pgrep '^ssh$' -l
6850 ssh
Символ caret ( ^) соответствует началу строки и доллару $ в конце.
По умолчанию pgrep совпадает только с именем процесса. Если используется опция -f, команда сопоставляется с полными списками аргументов.
pgrep -f ssh
Используйте опцию -u, чтобы сказать pgrepдля отображения процессов, запускаемых данным пользователем:
pgrep -u root
Чтобы указать несколько пользователей, разделите их имена запятыми:
pgrep -u root,mark
Вы также можете комбинировать параметры и шаблоны поиска. Например, чтобы напечатать все процессы и их имена, которые запускаются под пользователем «mark» и содержат «gnome» в их именах, вы должны ввести:
pgrep -l -u mark gnome
Чтобы отобразить только самые последние (самые старые) или самые последние (самые новые) запущенные процессы, используйте параметр -n(для самых новых) или -o(для самых старых).
Например, чтобы найти новейший процесс, запущенный пользователем «mark», вы должны ввести:
pgrep -lnu mark
Как видно из приведенного выше примера, вы также можете комбинировать параметры без пробела между ними и с одной чертой.
Чтобы отменить сопоставление, т. е. показать только процессы, которые не соответствуют заданным критериям, используйте параметр -v. Следующая команда напечатает все процессы, которые не запускаются пользователем «mark»:
pgrep -v -u mark
Опция -c указывает pgrepпечатать только количество процессов согласования. Например, чтобы найти процессы, которые запускаются от имени пользователя «mark», введите:
pgrep -c -u mark
Команда pgrep используется для определения PID запущенной программы на основе различных критериев.
Для получения дополнительной информации о команде pgrep посетите страницу руководства pgrep или введите man pgrep в свой терминал.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.