맨 위 명령-표시된 열을 줄이는 방법 수 있습니까? 예를 들어

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

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



답변

참고 : 이 버전의 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를 참조하십시오.


답변

[센 토스 -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

답변

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}

답변

커맨드 라인 구성
사용자를 덮어 써서 전체 사용자에게 영향을 미치지 않기를 원 .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