在我的项目中,我想在 Linux 服务器的进程中选择用户名或用户 ID
\n\n我使用的命令如下:
\n\nps aux | grep -v root\nRun Code Online (Sandbox Code Playgroud)\n\n我得到了一些这样的内容:
\n\nmae-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\nRun Code Online (Sandbox Code Playgroud)\n\n第一列是:
\n\nmae-wan+\nRun Code Online (Sandbox Code Playgroud)\n\n所以整个名字应该是:
\n\nmae-wangjc\nRun Code Online (Sandbox Code Playgroud)\n\n也许,mae-wangjc这个名字太长了,它显示给mae-wan+
\n\n结果,我不得不使用:
\n\nll /proc/34325 | awk \'{print $3}\' | uniq\nRun 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)