Linux에서 "top" 명령 시작 부분의 요약을 제거하는 방법은 무엇입니까?

Linux에서 "top" 명령 시작 부분의 요약을 제거하는 방법은 무엇입니까?

나는 그것을 사용했고 top -b -n 2 | awk '{if ($9 != 0.0) print $0,sed -n '8,20p'}'>>text.txt 출력은 다음과 같습니다.

top - 16:24:42 up  3:49,  3 users,  load average: 0.23, 0.29, 0.31
Threads: 503 total,   2 running, 501 sleeping,   0 stopped,   0 zombie
%Cpu(s):  9.7 us,  1.6 sy,  0.0 ni, 88.5 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   3938668 total,  2148708 used,  1789960 free,   133524 buffers
KiB Swap:  3903484 total,        0 used,  3903484 free.   822904 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1054 root      20   0  258664   3524   2692 S  0.5  0.1   0:00.00 rsyslogd
 1086 root      20   0  258664   3524   2692 S  0.4  0.1   0:00.03 in:imuxsock
 1087 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.00 in:imklog
 1090 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.05 rs:main Q:Reg
 2452 fpiat     20   0   25292   7520   3580 S  0.3  0.2   0:00.69 bash         
 2495 fpiat     20   0   25088   6988   3256 S  0.3  0.2   0:00.05 bash
top - 16:24:42 up  3:49,  3 users,  load average: 0.23, 0.29, 0.31
Threads: 503 total,   2 running, 501 sleeping,   0 stopped,   0 zombie
%Cpu(s):  9.7 us,  1.6 sy,  0.0 ni, 88.5 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   3938668 total,  2148708 used,  1789960 free,   133524 buffers
KiB Swap:  3903484 total,        0 used,  3903484 free.   822904 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1054 root      20   0  258664   3524   2692 S  0.5  0.1   0:00.00 rsyslogd
 1086 root      20   0  258664   3524   2692 S  0.4  0.1   0:00.03 in:imuxsock
 1087 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.00 in:imklog
 1090 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.05 rs:main Q:Reg
 2452 fpiat     20   0   25292   7520   3580 S  0.3  0.2   0:00.69 bash         
 2495 fpiat     20   0   25088   6988   3256 S  0.3  0.2   0:00.05 bash

다음과 같은 출력을 얻고 싶습니다(헤더가 인쇄되지 않음을 의미함).

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1054 root      20   0  258664   3524   2692 S  0.5  0.1   0:00.00 rsyslogd
 1086 root      20   0  258664   3524   2692 S  0.4  0.1   0:00.03 in:imuxsock
 1087 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.00 in:imklog
 1090 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.05 rs:main Q:Reg
 2452 fpiat     20   0   25292   7520   3580 S  0.3  0.2   0:00.69 bash         
 2495 fpiat     20   0   25088   6988   3256 S  0.3  0.2   0:00.05 bash
 1054 root      20   0  258664   3524   2692 S  0.5  0.1   0:00.00 rsyslogd
 1086 root      20   0  258664   3524   2692 S  0.4  0.1   0:00.03 in:imuxsock
 1087 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.00 in:imklog
 1090 root      20   0  258664   3524   2692 S  0.3  0.1   0:00.05 rs:main Q:Reg
 2452 fpiat     20   0   25292   7520   3580 S  0.3  0.2   0:00.69 bash         
 2495 fpiat     20   0   25088   6988   3256 S  0.3  0.2   0:00.05 bash

누구든지 해결책을 제안할 수 있나요?

답변1

주문하다:top -b -n1| sed -n '/PID/,$p'

산출

ux_example ~]# top -b -n1| sed -n '/PID/,$p'
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
     7 root      RT   0     0    0    0 S  1.7  0.0   0:01.04 migration/1
     1 root      20   0 19356 1564 1252 S  0.0  0.1   0:07.96 init
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.07 kthreadd
     3 root      RT   0     0    0    0 S  0.0  0.0   0:03.46 migration/0
     4 root      20   0     0    0    0 S  0.0  0.0   0:01.84 ksoftirqd/0
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
     6 root      RT   0     0    0    0 S  0.0  0.0   1:58.23 watchdog/0
     8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1
     9 root      20   0     0    0    0 S  0.0  0.0   0:02.87 ksoftirqd/1
    10 root      RT   0     0    0    0 S  0.0  0.0   2:10.65 watchdog/1
    11 root      RT   0     0    0    0 S  0.0  0.0   0:02.42 migration/2
    12 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/2
    13 root      20   0     0    0    0 S  0.0  0.0   0:01.27 ksoftirqd/2
    14 root      RT   0     0    0    0 S  0.0  0.0   1:55.75 watchdog/2
    15 root      RT   0     0    0    0 S  0.0  0.0   0:01.03 migration/3
    16 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/3
    17 root      20   0     0    0    0 S  0.0  0.0   0:00.95 ksoftirqd/3
    18 root      RT   0     0    0    0 S  0.0  0.0   1:58.07 watchdog/3
    19 root      20   0     0    0    0 S  0.0  0.0   0:14.40 events/0
    20 root      20   0     0    0    0 S  0.0  0.0   3:52.96 events/1
    21 root      20   0     0    0    0 S  0.0  0.0   0:16.77 events/2
    22 root      20   0     0    0    0 S  0.0  0.0   1:34.48 events/3
    23 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup
    24 root      20   0     0    0    0 S  0.0  0.0   0:00.01 khelper
    25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns
    26 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr
    27 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm
    28 root      20   0     0    0    0 S  0.0  0.0   0:07.44 sync_supers
    29 root      20   0     0    0    0 S  0.0  0.0   0:03.43 bdi-default
    30 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0
    31 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/1
    32 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/2
    33 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/3
    34 root      20   0     0    0    0 S  0.0  0.0   0:02.02 kblockd/0
    35 root      20   0     0    0    0 S  0.0  0.0   0:01.02 kblockd/1
    36 root      20   0     0    0    0 S  0.0  0.0   0:07.83 kblockd/2
    37 root      20   0     0    0    0 S  0.0  0.0   0:22.51 kblockd/3
38 root      20   0     0    0    0 S  0.0  0.0   0:

답변2

top명령은 대화형으로 사용하기 위한 것입니다. 프로그래밍 방식으로 원하는 출력을 얻으려면 ps대부분 동일한 정보를 제공하지만 스크립트 친화적인 this 사용을 고려할 수 있습니다 .

예:

$ ps -eo pid,uid,pri,nice,vsz,rss,s,%cpu,%mem,time,comm | head
  PID   UID PRI  NI    VSZ   RSS S %CPU %MEM     TIME COMMAND
    1     0  19   0 186380  9608 S  0.0  0.0 00:01:15 systemd
    2     0  19   0      0     0 S  0.0  0.0 00:00:00 kthreadd
    3     0  39 -20      0     0 I  0.0  0.0 00:00:00 rcu_gp
    4     0  39 -20      0     0 I  0.0  0.0 00:00:00 rcu_par_gp
    6     0  39 -20      0     0 I  0.0  0.0 00:00:00 kworker/0:0H-kblockd
    8     0  39 -20      0     0 I  0.0  0.0 00:00:00 mm_percpu_wq
    9     0  19   0      0     0 S  0.0  0.0 00:00:19 ksoftirqd/0
   10     0  41   -      0     0 I  0.0  0.0 00:02:20 rcu_preempt
   11     0  41   -      0     0 S  0.0  0.0 00:00:24 rcuc/0

유일하게 누락된 필드는 입니다 SHR. ( ps인쇄하는 방법을 모르겠습니다 .)

답변3

요약 영역의 개별 구성 요소는 다음과 같이 활성화하거나 비활성화할 수 있습니다.

       Summary-Area-defaults
          'l' - Load Avg/Uptime  On  (thus program name)
          't' - Task/Cpu states  On  (1+1 lines, see '1')
          'm' - Mem/Swap usage   On  (2 lines worth)
          '1' - Single Cpu       On  (thus 1 line if smp)

모두 비활성화하려면 줄이 사라질 때까지 topm, lt키를 시작하고 누르십시오(일부는 단순히 켜고 끄는 것이 아니라 여러 모드 사이를 순환합니다). 그런 다음 변경 사항을 으로 저장 .toprc합니다 W.

그 이후에는 top -b -n 1각 프로세스의 빈 행, 열 머리글 행 및 개별 행만 표시됩니다.

구성 파일은 대부분 사람이 읽을 수 있으므로 직접 편집할 수 있지만 이를 위해 설계된 것 같지는 않습니다. (이 필드에는 일반적인 ASCII 범위를 벗어난 문자가 포함되어 있다는 점은 주목할 가치가 있습니다 fieldscur.) 비활성화하려는 부분은 항목의 비트로 표시되지만 winflags정확한 값(및 구성 파일의 위치)은 버전마다 다를 수 있습니다.

관련 정보