在我们的系统上,用户名最长可达 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)
纵观来源的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)
请注意,命令名称现在被截断(以 + 结尾),因为我们的用户名更长并且已将其他列推到右侧。您是否认为这是一个好主意取决于您正在寻找什么。