linux下用户名太长如何显示完整用户名

sta*_*ack 3 shell

在我的项目中,我想在 Linux 服务器的进程中选择用户名或用户 ID

\n\n

我使用的命令如下:

\n\n
ps aux | grep -v root\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到了一些这样的内容:

\n\n
mae-wan+  34325 99.7  0.5 1717096 1056124 ?     Rl   Apr18 1533:33 ./turb\nmae-wan+  34326 99.7  0.5 1717128 1057284 ?     Rl   Apr18 1533:35 ./turb\nmae-wan+  34327 99.7  0.5 1716992 1056860 ?     Rl   Apr18 1533:41 ./turb\nmae-wan+  34328 99.7  0.5 1717244 1056644 ?     Rl   Apr18 1533:43 ./turb\nmae-wan+  34329 99.7  0.5 1717100 1054616 ?     Rl   Apr18 1533:43 ./turb\nmae-wan+  34330 99.5  0.5 1717100 1057640 ?     Rl   Apr18 1530:33 ./turb\n
Run Code Online (Sandbox Code Playgroud)\n\n

第一列是:

\n\n
mae-wan+\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以整个名字应该是:

\n\n
mae-wangjc\n
Run Code Online (Sandbox Code Playgroud)\n\n

也许,mae-wangjc这个名字太长了,它显示给mae-wan+

\n\n

结果,我不得不使用:

\n\n
ll /proc/34325 | awk \'{print $3}\' | uniq\n
Run Code Online (Sandbox Code Playgroud)\n\n

我可以成功获得“mae-wangjc”这个名字。但我认为逐一解决每个过程是丑陋的。

\n\n

哪个命令可以显示整个用户名而不是缩写名称\xef\xbc\x9f

\n

小智 5

根据 man ps 的说法, ps -aux 是“使用 BSD 语法查看系统上的每个进程”。

然而,在标准语法中,您可以设置列的宽度,例如:user:。以下内容应为您提供相同的信息,将用户名列宽度设置为 20(或任何其他值):

ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm
Run Code Online (Sandbox Code Playgroud)

结果会是这样的:

mae-wangjc  34325 99.7  0.5 1717096 1056124 ?     Rl   Apr18 1533:33 ./turb
mae-wangjc  34326 99.7  0.5 1717128 1057284 ?     Rl   Apr18 1533:35 ./turb
mae-wangjc  34327 99.7  0.5 1716992 1056860 ?     Rl   Apr18 1533:41 ./turb
mae-wangjc  34328 99.7  0.5 1717244 1056644 ?     Rl   Apr18 1533:43 ./turb
mae-wangjc  34329 99.7  0.5 1717100 1054616 ?     Rl   Apr18 1533:43 ./turb
Run Code Online (Sandbox Code Playgroud)