Linux Как получить конкретные команды

Linux Centos 6,64

Я использую следующую команду для отображения htop в столбце команды

команда htop -u

Как мне сделать так, чтобы он показывал только определенную команду, которую я выбираю из списка запущенных команд?

Спасибо

1 ответ

Решение

В htop -u параметр является именем пользователя, а не командой.

Единственная опция для мониторинга конкретной команды -p, но для этого требуется PID, поэтому имя команды должно быть сначала преобразовано в PID, что pidof Сделаю.

Если запущено более одного экземпляра команды, pidof возвращает разделенный пробелами список PID, но -p опция принимает список через запятую, поэтому pidof Выходные данные должны быть преобразованы:

htop -p $(pidof command | sed 's/ /,/g')

Это лучше всего включить в функцию или скрипт, в этом случае команда будет:

htop -p $(pidof "$1" | sed 's/ /,/g')

Хотя я сначала думаю о sed для пакетного редактирования, в этом случае проще tr команда может быть использована:

htop -p $(pidof "$1" | tr ' ' ',')

Обратите внимание, что системные мониторы GUI, такие как qps а также ksysguard, может фильтровать вывод и напрямую показывать конкретные команды (хотя текстовый фильтр может также подобрать имя команды, если оно появляется в списке параметров другой команды).

Другие вопросы по тегам