Какова команда, которая позволяет фильтрацию процессов через фильтр метасимвола регулярного выражения?
Например, если я хотел отфильтровать все процессы, начинающиеся с буквы A
или a
, как я реализовал бы [Aa]$
в полной команде?
Команда pgrep
.
Для нахождения всех процессов, который запускается с A
или a
, только PID:
pgrep '^[Aa]'
Можно использовать любого ДО (Расширенное регулярное выражение) шаблон.
Для получения имени процесса к использовать -l
:
pgrep -l '^[Aa]'
Для получения полной командной строки использовать -a
:
pgrep -a '^[Aa]'
Можно также соответствовать шаблону против полной командной строки с помощью -f
опция.
Проверить man pgrep
.
Только для замечания шаблон Regex является неправильным, маркер Regex $
соответствуйте концу строки, не запускаются, ^
матчи начинаются. Так Ваш шаблон, [Aa]$
соответствовал бы любому имени процесса (или полная командная строка, если -f
используется) с A
или a
в конце.
Также рефрен от использования:
ps -ef | grep ...
это неуклюже, и включает ненужное порождение дополнительного процесса и неименованный канал где pgrep
может сделать это легко, и сразу также. Кроме того, pgrep
(и это - брат pkill
) было специально предназначено с этой целью.
ps ax| grep name_of_processes
, Например:
$ ps ax |grep python
1393 pts/2 S+ 0:00 grep --color=auto python
1713 ? S 0:00 /usr/bin/python3 /usr/bin/mintupdate-launcher
1727 ? Sl 0:01 /usr/bin/python3 /usr/lib/linuxmint/mintUpdate/mintUpdate.py
Самый Быстрый способ, которым я используюсь, чтобы сделать и Вы видите количество процессов, чтобы уничтожить, если Вы хотите.
В Ваших случаях, для устранения процесса grep можно использовать скобки в качестве части шаблона:
ps -ef | grep '[t]ty'