linux - 查看PS命令的完整输出



bash shell (8)

使用auxww标志,您将在终端窗口和shell脚本中看到完整的路径输出。

[email protected] ~ $uname -a
SunOS darraghserver 5.10 Generic_142901-13 i86pc i386 i86pc

[email protected] ~ $which ps
/usr/bin/ps<br>

[email protected] ~ $/usr/ucb/ps auxww | grep ps
darragh 13680  0.0  0.0 3872 3152 pts/1    O 14:39:32  0:00 /usr/ucb/ps -auxww
darragh 13681  0.0  0.0 1420  852 pts/1    S 14:39:32  0:00 grep ps

ps aux列出了所有用户执行的所有进程。 详情请参阅man psww标志设置无限宽度。

-w         Wide output. Use this option twice for unlimited width.
w          Wide output. Use this option twice for unlimited width.

我在以下博客找到了答案:
http://www.snowfrog.net/2010/06/10/solaris-ps-output-truncated-at-80-columns/

https://ffff65535.com

当我在我的linux服务器上运行ps -aux命令时,我使用putty连接了这些命令,但很少有进程太长,无法适应当前的窗口宽度。 有其他选择吗?

- 更新 -

我很抱歉降级,我认为别人也不会找到有用的答案,所以我降级了。

这是您要求的信息。

[email protected]:~$ echo $TERM
xterm

[email protected]:~$ stty -a
speed 38400 baud; rows 47; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

[email protected]:~$ echo $COLUMNS
158

只要把它扔在猫上,自动换行

ps aux | cat

如果你使用ps aux的管道grep你正在查找的命令,它会自动换行。 我在这里使用了很多其他的答案,但有时如果您正在寻找特定的东西,那么使用grep并且您知道它将包装线是很好的。

例如ps aux | grep ffmpeg ps aux | grep ffmpeg


如果您手动指定输出格式,则还需要确保args选项是输出字段列表中的最后一个 ,否则将被截断。

ps -A -o args,pid,lstart给出

/usr/lib/postgresql/9.5/bin 29900 Thu May 11 10:41:59 2017
postgres: checkpointer proc 29902 Thu May 11 10:41:59 2017
postgres: writer process    29903 Thu May 11 10:41:59 2017
postgres: wal writer proces 29904 Thu May 11 10:41:59 2017
postgres: autovacuum launch 29905 Thu May 11 10:41:59 2017
postgres: stats collector p 29906 Thu May 11 10:41:59 2017
[kworker/2:0]               30188 Fri May 12 09:20:17 2017
/usr/lib/upower/upowerd     30651 Mon May  8 09:57:58 2017
/usr/sbin/apache2 -k start  31288 Fri May 12 07:35:01 2017
/usr/sbin/apache2 -k start  31289 Fri May 12 07:35:01 2017
/sbin/rpc.statd --no-notify 31635 Mon May  8 09:49:12 2017
/sbin/rpcbind -f -w         31637 Mon May  8 09:49:12 2017
[nfsiod]                    31645 Mon May  8 09:49:12 2017
[kworker/1:0]               31801 Fri May 12 09:49:15 2017
[kworker/u16:0]             32658 Fri May 12 11:00:51 2017

ps -A -o pid,lstart,args可以让你完整的命令行:

29900 Thu May 11 10:41:59 2017 /usr/lib/postgresql/9.5/bin/postgres -D /tmp/4493-d849-dc76-9215 -p 38103
29902 Thu May 11 10:41:59 2017 postgres: checkpointer process   
29903 Thu May 11 10:41:59 2017 postgres: writer process   
29904 Thu May 11 10:41:59 2017 postgres: wal writer process   
29905 Thu May 11 10:41:59 2017 postgres: autovacuum launcher process   
29906 Thu May 11 10:41:59 2017 postgres: stats collector process   
30188 Fri May 12 09:20:17 2017 [kworker/2:0]
30651 Mon May  8 09:57:58 2017 /usr/lib/upower/upowerd
31288 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31289 Fri May 12 07:35:01 2017 /usr/sbin/apache2 -k start
31635 Mon May  8 09:49:12 2017 /sbin/rpc.statd --no-notify
31637 Mon May  8 09:49:12 2017 /sbin/rpcbind -f -w
31645 Mon May  8 09:49:12 2017 [nfsiod]
31801 Fri May 12 09:49:15 2017 [kworker/1:0]
32658 Fri May 12 11:00:51 2017 [kworker/u16:0]

很抱歉迟到了,但刚刚找到解决问题的办法。

由于ps坚持使用$ COLUMNS的值,因此行被截断,即使输出不是当时的屏幕。 这是一个错误,恕我直言。 但很容易解决,只是让ps认为你有一个超宽屏幕,即在ps命令的持续时间内将COLUMNS设置为高。 一个例子:

$ ps -edalf                 # truncates lines to screen width
$ COLUMNS=1000 ps -edalf    # wraps lines regardless of screen width

我希望这对某人仍然有用。 所有其他的想法似乎太复杂了:)


您可以设置输出格式,例如仅查看命令和进程标识。

ps -eo pid,args

请参阅ps的手册页获取更多输出格式。 或者,您可以使用-w--width n选项。

如果一切都失败了,这里有另一个解决方法,(只是看你的长码)

awk '{ split(FILENAME,f,"/") ; printf "%s: %s\n", f[3],$0 }' /proc/[0-9]*/cmdline

简单而完美:

ps -efww

不会截断线


通过几秒将忽略显示宽度。





process