Показать последние 5 открытых процессов в терминале?

Я пытаюсь открыть терминал, показывающий последние 5 процессов. Это полезно для моей отладки.

На данный момент у меня есть

watch ps -ef --sort=start_time

Это прекрасно работает, но показывает все процессы, поэтому они не помещаются на экране. Как я могу ограничить его конкретным числом, например, 5 или 10?

-- Обновить --

А попробовал

watch "ps -ef --sort=start_time | tail -n 5"

но проблема в том, что заголовок ps опущен, поэтому через некоторое время я не знаю, на что смотрю.

1 ответ

Решение

Ты хочешь:

watch "ps -ef --sort=start_time | tail -n 5"

tail будет выводить только последний n линии, переданные к нему.

Я полагаю, вы пытались:

watch ps -ef --sort=start_time | tail -n 5

Который будет пытаться передать вывод watch в tail, а не вывод ps, и в качестве watch никогда не заканчивается, tail не могу определить, когда последний n строки выводятся, поэтому и ничего не печатает.


Если вы также хотите сохранить заголовок, вы можете использовать умный bash, чтобы просто:

watch "ps -ef --sort=start_time | (head -n 1 ; tail -n 5)"

Что приводит к head чтобы напечатать верхнюю строку, а также.

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