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