如何使用ps命令获取进程所有者的完整用户名
解决ps aux命令中长用户名被截断的问题
问题场景
执行ps aux | grep someRegexCondition查找进程时,短用户名(如root)可正常显示,但长用户名(例如myLongUsername)会被截断为myLongUserna+。不想通过匹配/etc/passwd(存在冲突风险)或逐个PID查询ps -o user= -p "PID"的方式获取完整用户名,希望直接加宽用户名列显示完整名称。
可行解决方案
使用
--cols参数指定整体输出宽度,设置足够大的数值即可显示完整用户名:ps aux --cols 200 | grep someRegexCondition可根据实际需求调整
200这个数值,确保能容纳最长的用户名。自定义输出字段并指定用户名列宽度,精准控制列宽:
ps -eo user:20,pid,pcpu,pmem,cmd | grep someRegexCondition其中
user:20表示将用户名列宽度设为20字符,可根据最长用户名长度调整数值;后续的pid,pcpu,pmem,cmd对应aux格式里的核心字段,保证输出信息和原命令一致。使用
w参数启用宽输出,叠加两次w可最大化输出宽度:ps auxww | grep someRegexCondition该方式无需手动指定宽度,
w会自动扩展列宽以显示完整内容,同时也能解决长命令行被截断的问题。
内容的提问来源于stack exchange,提问作者Thiemooo
相关产品推荐
相关产品推荐

