查看 PS 命令的完整输出
当我在使用 putty 连接的 Linux 服务器上运行 ps -aux 命令时,很少有进程太长而无法适应我当前的窗口宽度。还有其他选择吗?
-- 更新 --
我很抱歉降级,我认为其他人也不会发现答案有用,所以我降级了。
这是您要求的信息。
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
when I run ps -aux
command on my linux server, to which I connected using putty, few processes are too long to fit in my current window width. Is there an alternative?
-- Update --
I am sorry for downgrading,I thought others won't find the answer useful too, so I downgraded.
Here is the info you asked for.
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(14)
只要把它扔到 cat 上,它就会自动换行
Just throw it on cat, which line-wraps automatically
传递几个
w
将忽略显示宽度。Passing it a few
w
s will ignore the display width.如果您手动指定输出格式,您还需要确保 args 选项位于输出字段列表中的最后一个,否则它将被截断。
ps -A -o args,pid,lstart
给出,但
ps -A -o pid,lstart,args
为您提供完整的命令行:If you are specifying the output format manually you also need to make sure the
args
option is last in the list of output fields, otherwise it will be truncated.ps -A -o args,pid,lstart
givesbut
ps -A -o pid,lstart,args
gets you the full command line:您可以设置输出格式,例如仅查看命令和进程 ID。
有关更多输出格式,请参阅 ps 的手册页。或者,您可以使用
-w
或--width n
选项。如果一切都失败了,这里有另一个解决方法,(只是为了看看你的长命令)
you can set output format,eg to see only the command and the process id.
see the man page of ps for more output format. alternatively, you can use the
-w
or--width n
options.If all else fails, here's another workaround, (just to see your long cmds)
很抱歉参加聚会迟到,但刚刚找到了解决问题的方法。
这些行被截断,因为 ps 坚持使用 $COLUMNS 的值,即使当时输出不是屏幕。这是一个错误,恕我直言。但很容易解决,只需制作
ps 认为您有一个超宽屏幕,即在 ps 命令期间将 COLUMNS 设置为高。一个例子:
我希望这对某人仍然有用。所有其他想法似乎都太复杂了:)
Sorry to be late to the party but just found this solution to the problem.
The lines are truncated because ps insists on using the value of $COLUMNS, even if the output is not the screen at that moment. Which is a bug, IMHO. But easy to work around, just make
ps think you have a superwide screen, i.e. set COLUMNS high for the duration of the ps command. An example:
I hope this is still useful to someone. All the other ideas seemed much too complicated :)
其他人提到的截断证据,(个人示例)
^^ 捕获变量中的长输出
与因为我从 Docker jupyter 笔记本上尝试这个相反
,我当然需要运行这个。
令人惊讶的是,jupyter 笔记本甚至可以让你执行这个!但很高兴能帮助找到占用我所有记忆的有问题的笔记本=D
Evidence for truncation mentioned by others, (a personal example)
That ^^ captures that long output in a variable
As opposed to
Since I was trying this from a Docker jupyter notebook, I needed to run this with the bang of course ..
Surprisingly jupyter notebooks let you execute even that! But glad to help find the offending notebook taking up all my memory =D
如果上述解决方案均不起作用,则
ps
的输出不是您的问题。也许您需要将 putty 设置为 换行长行< /a>?否则,我们需要更多信息。
If none of the solutions above work, the output of
ps
isn't your problem. Maybe you need to set putty to wrap long lines?Otherwise, we need more information.
如果您使用 ps aux 中的管道来
grep
您要查找的命令,它会自动换行文本。我在这里使用了很多其他答案,但有时如果您正在寻找特定的内容,那么使用 grep 会很好,并且您知道它会换行。例如 ps aux | grep ffmpeg 。
If you
grep
the command that you are looking for with a pipe from ps aux, it will wrap the text automatically. I used a lot of the other answers on here, but sometimes if you are looking for something specific, it is nice to just usegrep
and you know that it will wrap lines.For instance
ps aux | grep ffmpeg
.我找到了这个答案,这对我来说是最重要的,因为上述答案都不起作用
https://unix.stackexchange.com/questions/91561/ps-full-command-is-too-long
基本上,内核限制了我的命令行。
I found this answer which is what nailed it for me as none of the above answers worked
https://unix.stackexchange.com/questions/91561/ps-full-command-is-too-long
Basically, the kernel is limiting my cmd line.
在带有 busybox 的 docker 容器中,以上内容都不适合我。我用的是:
None of the above worked for me in a docker container with busybox. What I use is:
只是
ps ww
或ps -ww
例如,执行
pa auxww
或ps aux -ww
而不是执行ps aux
来源:
Just
ps ww
orps -ww
e.g., execute
pa auxww
orps aux -ww
rather than executeps aux
Source:
使用 auxww 标志,您将在终端窗口和 shell 脚本中看到输出的完整路径。
ps aux
列出所有用户执行的所有进程。有关详细信息,请参阅man ps
。ww
标志设置无限宽度。我在以下博客中找到了答案:
http://www.snowfrog。净/2010/06/10/solaris-ps-output-truncated-at-80-columns/
Using the
auxww
flags, you will see the full path to output in both your terminal window and from shell scripts.ps aux
lists all processes executed by all users. Seeman ps
for details. Theww
flag sets unlimited width.I found the answer on the following blog:
http://www.snowfrog.net/2010/06/10/solaris-ps-output-truncated-at-80-columns/
您可能使用的是
less
或 < a href="https://www.jedsoft.org/most/" rel="noreferrer">most
因为ps aux
的输出较长比一屏。如果是这样,以下选项将导致(或强制)长行换行而不是被截断。如果您使用以下任一命令,行将不会换行,但您可以使用箭头键或其他移动键左右滚动。
more
和pg
总是换行。当在管道中使用
ps aux
时,不需要w
选项,因为ps
仅在输出到终端时使用屏幕宽度。It is likely that you're using a pager such as
less
ormost
since the output ofps aux
is longer than a screenful. If so, the following options will cause (or force) long lines to wrap instead of being truncated.If you use either of the following commands, lines won't be wrapped but you can use your arrow keys or other movement keys to scroll left and right.
Lines are always wrapped for
more
andpg
.When
ps aux
is used in a pipe, thew
option is unnecessary sinceps
only uses screen width when output is to the terminal.简单而完美:
不会截断行
simple and perfect:
won't truncate line