当我在我的linux服务器上运行ps -aux命令时,我使用putty连接到它,很少有进程太长而不能适应我当前的窗口宽度。还有别的选择吗?

——更新——

很抱歉我降级了,我觉得别人也不会觉得这个答案有用,所以我降级了。

这是你要的资料。

hadoop-user@hadoop-desk:~$ echo $TERM
xterm

hadoop-user@hadoop-desk:~$ 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

hadoop-user@hadoop-desk:~$ echo $COLUMNS
158

当前回答

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

ps -eo pid,args

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

如果所有这些都失败了,这里有另一个解决方案,(只是为了看到你的长cmd)

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

其他回答

简单而完美:

ps -efww

不会截断行

只要把它扔到cat上,它就会自动换行

ps aux | cat

其他人提到的截断证据(个人例子)

foo=$(ps -p 689 -o command); echo "$foo"

COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtime/kernel-5732db1a-d484-4a58-9d67-de6ef5ac721b.json

^^在变量中捕获长输出 而不是

ps -p 689 -o command

COMMAND
/opt/conda/bin/python -m ipykernel_launcher -f /root/.local/share/jupyter/runtim

因为我试图从一个Docker jupyter笔记本,我需要运行这个当然爆炸..

!foo=$(ps -p 689 -o command); echo "$foo"

令人惊讶的是,jupyter笔记本甚至可以让你执行!但是很高兴能帮你找到那本占用了我所有内存的笔记本

如果您使用来自ps aux的管道grep正在查找的命令,它将自动换行文本。我在这里使用了很多其他答案,但有时如果您正在寻找一些特定的东西,只使用grep是很好的,您知道它会自动换行。

例如ps aux | grep ffmpeg。

很抱歉来晚了,但我刚刚找到了这个问题的解决方案。

这些行被截断,因为ps坚持使用$COLUMNS的值,即使输出不是当时的屏幕。恕我直言,这是个bug。但是很容易变通,只要做出来就行了 ps认为你有一个超宽的屏幕,即设置COLUMNS高ps命令的持续时间。一个例子:

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

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