顶部命令 - 如何减少显示的列

Sur*_*rya 22 top columns

我们能否在 top 命令中获取特定列,例如,我只对内存利用率和 CPU 使用率列感兴趣。

如何将顶部命令的显示列减少到仅上述两列?

slm*_*slm 21

注意:假设你有这个版本的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 ...]
Run Code Online (Sandbox Code Playgroud)

procps 通常是top包含在 Fedora/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
Run Code Online (Sandbox Code Playgroud)

您可以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)
...
Run Code Online (Sandbox Code Playgroud)

还有更多,这些只是一个示例。完成按所需方式切换列后,请使用Esc退出选择屏幕。

保存配置

您可以使用Shift+W来保存更改,使其成为默认值:

  W         Write configuration file
Run Code Online (Sandbox Code Playgroud)

文件存储在这里,$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
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅手册页的第 5 节“5. 文件”。

  • 有没有办法通过命令行标志更改列/字段?这将非常有用,例如检查不同机器上的 top 并获得标准化输出。 (2认同)