맨 위 명령-표시된 열을 줄이는 방법


17

상단 명령에서 특정 열을 가져올 수 있습니까? 예를 들어 메모리 사용률과 CPU 사용 열에 만 관심이 있습니다.

top 명령의 표시된 열을 위의 두 열로만 줄이려면 어떻게합니까?


3
어떤 OS? 어떤 top변형? 수십 가지의 최고 구현이 있습니다.
Stéphane Chazelas

OS와 최상위 버전 ( top -h)을 알려주십시오 .
slm

답변:


19

참고 : 이 버전의 top(procps) 가 있다고 가정합니다 . 이 명령으로 확인할 수 있습니다 :

$ top --version
    top: procps version 3.2.8
usage:  top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

procps는 종종 topFedora / CentOS / RHEL 및 기타 변형 에 포함 된 버전입니다 .

열 변경

매뉴얼 페이지에서 top"2b. SELECTING and ORDERING Columns"섹션이 표시됩니다. 다른 필드 / 열에 대한 가시성을 토글하기위한 키보드 단축키가 있습니다.

예를 들면 다음과 같습니다.

  f,o     . Fields/Columns: 'f' add or remove; 'o' change display order
  F or O  . Select sort field
  <,>     . Move sort field: '<' next col left; '>' next col right

어떤 키 ftop표시하거나 숨길 지 지정할 수있는 보조 화면으로 이동하기 위해 키 를 사용할 수 있습니다 .

예를 들면 다음과 같습니다.

Current Fields:  ANOPQRSTUVbcdefgjlmyzWHIKX  for window 3:Mem
Toggle fields via field letter, type any other key to return 

* A: PID        = Process Id                                      * W: S          = Process Status
* N: %MEM       = Memory usage (RES)                              * H: PR         = Priority
* O: VIRT       = Virtual Image (kb)                              * I: NI         = Nice value
* P: SWAP       = Swapped size (kb)                               * K: %CPU       = CPU usage
* Q: RES        = Resident size (kb)                              * X: COMMAND    = Command name/line
* R: CODE       = Code size (kb)
...

더 많은 것이 있습니다. 이들은 단지 샘플 일뿐입니다. 원하는 방식으로 열을 전환 한 후을 사용 Esc하여 선택 화면에서 나오십시오.

구성 저장

당신이 사용할 수있는 Shift+를 W가 기본값있어 귀하의 변경 사항을 저장합니다 :

  W         Write configuration file

파일은 여기에 저장 $HOME/.toprc되며 다음과 같습니다.

$ more .toprc 
RCfile for "top with windows"       # shameless braggin'
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=1.000, Curwin=2
Def fieldscur=AEHIoqTWKNMBcdfgjpLrsuvyzX
    winflags=129016, sortindx=19, maxtasks=0
    summclr=2, msgsclr=5, headclr=7, taskclr=7
Job fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX
    winflags=63416, sortindx=13, maxtasks=0
    summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX
    winflags=65464, sortindx=13, maxtasks=0
    summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=ABDECGfhijlopqrstuvyzMKNWX
    winflags=65464, sortindx=12, maxtasks=0
    summclr=3, msgsclr=3, headclr=2, taskclr=7

자세한 내용은 "5. 파일"매뉴얼 페이지의 섹션 5를 참조하십시오.


명령 행 플래그를 통해 열 / 필드를 변경하는 방법이 있습니까? 예를 들어 다른 컴퓨터에서 상단을 확인하고 표준화 된 출력을 얻는 데 유용합니다.
naught101

@ naught101-새로운 질문이 있으면 메인 사이트에 문의하십시오. 코멘트는 실제로 그런 의미가 아닙니다.
slm

2

[센 토스 -6 | 우분투 12.10]이 cmd print 4 개의 상위 프로세스는 CPU 사용량별로 정렬됩니다.

top -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s  %-8s\n", $9, $10, $12); }' | head -n 5

산출

%CPU      %MEM      COMMAND
7.7       0.2       top
0.0       0.3       init
0.0       0.0       kthreadd
0.0       0.0       migration/0

참고 : 열 이름도 있기 때문에 4 대신 head -n 5

열 $ 9, $ 10, $ 12는 CPU, MEM, COMMAND를 의미합니다. 'top'명령을 사용하여 열 번호를 가져옵니다.

MEMORY USAGE로 정렬 (이를 실행하려면 'top'이 -m을 지원해야 함)

# this work on my centos-6 machine, NOT work on my Ubuntu 12.10
top -m -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s  %-8s\n", $9, $10, $12); }' | head -n 5

어떤 버전의 최상위 버전입니까?
slm

나는 centos-6.4를 사용했다. Ubuntu의 최상위 명령은 내 메모리 사용량을 정렬하기 위해 -m을 지원하지 않습니다.
damphat

흥미롭게도, 저는 Fedora (14)에 있습니다. 나는 procps의 top 버전을 얻고 있습니다. 방금 두 번 확인했고 CentOS 5 + 6에서는 최상위 procp도 사용하고 있습니다. F14에서 명령이 작동하지 않았습니다. CentOS 5 + 6에서는 작동합니다. 이 스레드를 우연히 만난 사람을위한 참고 사항!
slm

1

json 형식으로보고 헤더를 제거하기 위해

top -bn 1 | grep "^ " | awk '{ printf("%s%s%s\n","{CPU:"$9",","MEM:"$10",","CMD:"$12"}"); }' | head -n 6 | tail -n +2

아래와 같이 출력

{CPU:6.4,MEM:0.3,CMD:gnome-terminal}
{CPU:6.4,MEM:1.9,CMD:chrome}
{CPU:0.0,MEM:0.0,CMD:init}
{CPU:0.0,MEM:0.0,CMD:kthreadd}
{CPU:0.0,MEM:0.0,CMD:ksoftirqd/0}

당신 grep | awk | head | tail은 하나에 통합 될 수 있습니다 awk.
roaima

0

커맨드 라인 구성
사용자를 덮어 써서 전체 사용자에게 영향을 미치지 않기를 원 .toprc하므로 사용 사례마다 별도의 구성을 갖는 솔루션을 생각해 냈습니다. 사용자 홈 디렉토리에있는 파일 대신 사용자 정의 구성 파일
top사용할 수 있습니다 . 변수를 필요에 따라 파일이 포함 된 사용자 정의 디렉토리로
변경하십시오 .HOME.toprc

# TOPRC_PROFILE_DIRECTORY contains .toprc (or can be created by saving using shift+w after configuring using keybindings) 
TOPRC_PROFILE_DIRECTORY="<your-directory>"
HOME="$TOPRC_PROFILE_DIRECTORY" top
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.