我们可以通过安装GNU coreutilsbrew。但是utils中没有ps。我们可以ps在OS X中使用gnu 吗?
我想使用GNU,ps因为它具有更多选项和功能。
ps因为它具有更多的选项和功能。
                我们可以通过安装GNU coreutilsbrew。但是utils中没有ps。我们可以ps在OS X中使用gnu 吗?
我想使用GNU,ps因为它具有更多选项和功能。
ps因为它具有更多的选项和功能。
                Answers:
没有可移植的ps程序。正如其他人所提到的,Linux上可用的ps命令来自“ procps”软件包。之所以不能将其移植到OSX,是因为Linux和OSX内核不会以相同的方式公开此信息。Linux在/ proc中使用伪文件系统,而OSX使用sysctl函数。其他系统可能使用任何一种机制,但以不同的格式提供数据,或者可能要求诸如ps之类的程序直接从内核内存中读取。
通常,对于诸如ps和top之类的程序如何使用过程信息,没有标准。因此该程序必须针对特定的操作系统而设计。如果OSX ps缺少某个特定功能,则必须找到另一个可以执行此操作的程序,或者自己编写一个程序(请参阅sysctl手册,尤其是KERN_PROC作为起点),或者修改现有的ps。命令以添加功能。
或者,如果您可以通过解析ps命令本身的输出来获得所需的内容,则可以编写可移植的程序-该-o选项的输出在各个平台上都相当可靠,尤其是在您参考UNIX标准的情况下。要使用的列名。
/proc文件系统的Linux内核提供了获取进程列表的唯一方法,还是有独立也系统调用其提供的信息?
                    否-因为它不存在。至于为什么ps GNU coreutils软件包中没有内置的内容,请在Unix和Linux论坛上查看此答案。
通过Homebrew可获得的最佳替代公式是psgrep:
psgrep是一个小的Bash shell脚本,它使用强大的实用程序grep(1)搜索进程列表(由ps(1)获得) 。
也就是说,您仍然psgrep可以像OS X一样使用ps。例如:
   OPTIONS
   -a     Search the process list using BSD's "ps aux" format. This option
          includes all users' processes in the search.
   -b     Search the process list using BSD's "ps  ux"  format  (default).
          This option only includes the running user's processes.pgrep也可以通过来使用brew,它在语法上更接近ps,但效率不如psgrep:
psgrep(1)比pgrep(1)更有用,因为它不仅可以搜索进程列表并返回PID,而且还可以提供更多有用的信息,例如其UID,GID,内存/ CPU使用率,美观程度以及所有其他受支持的信息由ps。
全部强调我的。
pgrep也是OS X最新版本的一部分
                    type -a pgrep pgrep is /usr/local/bin/pgrep pgrep is /usr/bin/pgrep
                    
ps或ps -ef在终端上运行?我可以在两台不同的机器上不加修改地在OSX 10.7.5上工作。它在/ bin / ps中