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

315
Pithikos

Я пытаюсь открыть терминал, показывающий последние 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 | head -5` или `watch ps -ef --sort = start_time | tail -5` в зависимости от того, идет ли сортировка по возрастанию или нет mnmnc 9 лет назад 0

1 ответ на вопрос

2
Andrew Stubbs

Ты хочешь:

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

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

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

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

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


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

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

Что приводит headк печати верхней строки, а также.

Я попробовал это. Проблема в том, что строка заголовка затем опускается. Предпочел бы, если бы я мог сохранить заголовок .. Pithikos 9 лет назад 0
Извинения, я попал в точную ловушку, о которой упоминал в середине своего поста, попробуйте сейчас! Andrew Stubbs 9 лет назад 0
Комбинация ** head ** и ** tail ** на одном канале не работает надежно, но только если выход ** ps ** длиннее, чем входной буфер ** head ** (попробуйте `watch ') ps -f --sort = start_time | (head -n 1; tail -n 5) "` чтобы понять, что я имею в виду). Чтобы убедиться, что обе программы видят все выходные данные, вам нужно использовать временный файл, например, `watch 'ps -ef --sort = start_time> TempFile; head -n 1 AFH 9 лет назад 1