当我运行命令时
ps -e -o cmd,stime,etime=
列cmd
被截断,因此cmd
路径被截断。如何设置列宽格式以便显示所有文本?
答案1
在 GNU/Linux 中,您可以按如下方式设置列宽:
ps -e -o cmd:50,stime,etime=
来自附注(1)手册页:
-o 格式
用户定义的格式。 format 是空格分隔或逗号分隔列表形式的单个参数,它提供了一种指定各个输出列的方法。下面的标准格式说明符部分描述了已识别的关键字。可以根据需要重命名标头 (ps -o pid,ruser=RealUser -o comm=Command)。如果所有列标题均为空 (ps -o pid= -o comm=),则不会输出标题行。列宽将根据宽标题的需要而增加;这可用于加宽列,例如 WCHAN (ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm)。还提供显式宽度控制(ps opid,wchan:42,cmd)。ps -o pid=X,comm=Y 的行为因个性而异;输出可以是名为“X,comm=Y”的一列或名为“X”和“Y”的两列。如有疑问,请使用多个 -o 选项。使用 PS_FORMAT 环境变量根据需要指定默认值; DefSysV 和 DefBSD 是可用于选择默认 UNIX 或 BSD 列的宏。
答案2
在 Ubuntu 18.04 中,命令:
ps -eo comm:25,pid
确实会加宽 COMMAND 列,但它不会停止截断,即使命令短于 25 个字符:
gsd-printer 2384
gvfsd-trash 2397
evolution-calen 2401
ibus-engine-sim 2429
dconf-service 2436
evolution-calen 2445
evolution-addre 2457
evolution-addre 2468
fwupd 2488