顶部的完整用户名

gue*_*tli 11 top

在我们的系统上,用户名最长可达 20 个字符。但top命令只显示前 8 个字符。

如何配置top以显示整个用户名?

目前我们使用:top procps version 3.2.8 (linux)

但是可以安装不同的顶级实现。

我们需要支持的最古老的系统是这样的:

Linux foohost 2.6.37.1-1.2-desktop #1 SMP PREEMPT 2011-02-21 10:34:10 +0100 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

rzy*_*mek 8

纵观来源top,似乎有8个字符的硬编码最大的:

1223    static FLD_t Fieldstab[] = {
1229          keys   head           fmts     width   scale  sort   desc                     lflg
1230         ------  -----------    -------  ------  -----  -----  ----------------------   -------- */
1235       { "EeDd", " USER    ",   " %-8.8s",  -1,    -1, SF(URE), "User Name",            L_EUSER  },
Run Code Online (Sandbox Code Playgroud)

fmts科拉姆是一个printf格式字符串。%-8.8s表示最小和最大大小为 8 的左填充字符串。


小智 7

不能真正帮助您使用较旧的 3.2.x 版本的 procps,但在较新的版本中(例如肯定是 3.3.10,我认为它回到了 3.3.4),您可以调整固定列的大小。你要找的钥匙是大写的X。

要使用此功能,首先启动top。理想情况下(但不是必需的),您可以通过删除其他列或扩展终端来为您的列“腾出空间”。使用 f 调出字段列表并取消选择不需要的内容。一旦您对字段选择感到满意,请按 q 返回进程列表。

然后使用X命令,它会询问你增加多少宽度,一般-1就可以了。您可能会得到这种奇怪的“列增长”效果,但经过几次刷新后,您可以看到完整的用户名。

  PID USER          PR    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
 3775 libvirt-qemu  20 4667404 960508  14724 S   6.1  5.9 188:04.01 qemu-syste+ 
 3825 Debian-gdm    20 1516152 114924  64404 S   2.7  0.7   1:52.09 gnome-shell 
Run Code Online (Sandbox Code Playgroud)

请注意,命令名称现在被截断(以 + 结尾),因为我们的用户名更长并且已将其他列推到右侧。您是否认为这是一个好主意取决于您正在寻找什么。