ps 명령의 출력과 해당 열 이름을 인쇄하는 방법은 무엇입니까?

ps 명령의 출력과 해당 열 이름을 인쇄하는 방법은 무엇입니까?

RHEL 7.6의 CLI에서 ps 명령은 많은 출력 열을 표시합니다. 나는 그 중 일부가 무엇을 의미하는지 짐작할 수 있지만 모두 알고 있습니다. ps 명령의 결과와 해당 열 이름을 표시할 수 있습니까?

답변1

먼저 열 이름을 표시한 다음 명령을 실행하면 됩니다.

$ ps | head -n1; ps | grep localhost

PID TTY           TIME CMD
14270 ttys001    0:00.04 ssh example@localhost

편집자:A청소기솔루션(제안자@jeremy-borden):

$ ps | grep -E 'localhost|PID'

답변2

ps의 열 헤더는 명령이 실행될 때 가장 먼저 인쇄되는 것입니다. 헤더가 무엇인지 보고 싶다면 ps를 head에 파이프하는 것과 같은 간단한 작업을 수행하여 확인할 수 있습니다. 이와 같은 것은 ps | head -n1열 헤더만 표시합니다.

ps 출력(상당히 길 수 있음)에서 헤더를 보려면 명령 psawk.

아마도 이 문제(또는 일반적으로)를 처리하는 더 현명한 방법이 있을 것입니다 awk. 하지만 제가 할 일은 다음과 같습니다... ps 예제를 사용하겠지만 ps -ef모든 것에 적용할 수 있다고 생각합니다.

ps -ef | awk '{if(NR==1){HEADER=$0} if(NR%10 == 1){print "\n"HEADER}{print $0}}'

awk 문은 먼저 첫 번째 줄에 있는지 확인하고, 그렇다면 변수를 해당 줄의 값으로 설정합니다 HEADER. 이 값은 다음과 같습니다.if(NR==1){HEADER=$0}

하지만 아마도 머리글을 자주 인쇄하고 싶을 것이므로 다음 부분은 레코드 번호(이 경우 행)가 10으로 나누어지는지 확인하고 그렇다면 새 줄을 인쇄하는 것입니다(분할하여 읽을 수 있도록 만듭니다). 제목 줄. 머리글을 더 자주 인쇄하려면 10을 더 작은 숫자로 변경하고, 머리글을 덜 자주 인쇄하려면 10을 더 큰 숫자로 변경할 수 있습니다.if(NR%10 ==1){print "\n"HEADER}

awk 문의 마지막 부분은 awk가 있는 행을 인쇄합니다. 이는 ps: 의 일반 출력 입니다 {print $0}.

관련 정보