LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1037|回复: 7

怎样看到一个程序的全部参数?

[复制链接]
发表于 2006-5-8 10:44:56 | 显示全部楼层 |阅读模式
使用 ps aux,如果命令行参数比较长,象 mysql 那样就被截断了。使用   ps 的 l 选项也没办法完整显示。应该怎么办?

谢谢。
发表于 2006-5-8 10:54:56 | 显示全部楼层
我是加了 “| less” 来看的,这样就全部显示出来了。。
回复 支持 反对

使用道具 举报

发表于 2006-5-8 12:02:22 | 显示全部楼层
Post by Chowroc
使用 ps aux,如果命令行参数比较长,象 mysql 那样就被截断了。使用   ps 的 l 选项也没办法完整显示。应该怎么办?

谢谢。

ps -aef
Sorry I didn't change your post, I should have clicked "quote" but I did on "edit"...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-8 13:29:34 | 显示全部楼层
ps -aef 也不行。

不过我找到一个参数:--width 300,或 --cols 300,基本上可以看到了。

另外“终极幻想”兄的办法也可以
回复 支持 反对

使用道具 举报

发表于 2006-5-8 20:59:54 | 显示全部楼层
命令行长度的上限是多少?

应该是65536个字符?

在/usr/include/linux/limits.h中有

  1. #define ARG_MAX       131072        /* # bytes of args + environ for exec() */
复制代码


如果

  1. ls `perl -e 'print "x " x 32766'`
复制代码


没问题,ls是unalias后的。

如果

  1. ls `perl -e 'print "x " x 32767'`
复制代码




  1. bash: /bin/ls: 参数列表过长
复制代码


所以`--width 300'一般是够了,但不是百分之百保险的。
回复 支持 反对

使用道具 举报

发表于 2006-5-9 04:06:47 | 显示全部楼层
不同的解析度,(比如console的vga=791和不加,大小就不一样。

另外一个最简单的就是加上  “|cat”。嘿嘿(很BT的做法。)
回复 支持 反对

使用道具 举报

发表于 2006-5-10 05:27:54 | 显示全部楼层
一般都要|给grep,more之类的命令吧。
  1. ps auxef|grep wine
复制代码
就算加上所有的env变量,grep后的命令都是完全的(折行显示)。
  1. ps -aef|grep mysql
复制代码
应该是没有问题的。
回复 支持 反对

使用道具 举报

发表于 2006-5-10 05:37:29 | 显示全部楼层
Post by seamonkey
命令行长度的上限是多少?

应该是65536个字符?

在/usr/include/linux/limits.h中有

  1. #define ARG_MAX       131072        /* # bytes of args + environ for exec() */
复制代码


如果

  1. ls `perl -e 'print "x " x 32766'`
复制代码


没问题,ls是unalias后的。

如果

  1. ls `perl -e 'print "x " x 32767'`
复制代码




  1. bash: /bin/ls: 参数列表过长
复制代码


所以`--width 300'一般是够了,但不是百分之百保险的。


process table 中的命令肯定不会超过参数长度限制,所以还是个显示问题。300的确不是很保险,很多java命令就长得不得了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表