当你运行Mac OS X时,你如何从命令行得知机器上有多少核?在Linux上,我使用:

x=$(awk '/^processor/ {++n} END {print n+1}' /proc/cpuinfo)

虽然不完美,但已经很接近了。这是为了让feedto make,这就是为什么它给出的结果比实际数字高1。我知道上面的代码可以用Perl写得更密集,也可以用grep、wc和cut来写,但我认为上面的代码是简洁和可读性之间的一个很好的折衷。

非常晚的编辑:澄清一下:我问的是有多少逻辑核可用,因为这对应于我想要生成多少同步作业。jkp的回答,经过Chris Lloyd的进一步完善,正是我所需要的。YMMV。


当前回答

更简单:

sysctl -n hw.ncpu

其他回答

$ system_profiler | grep 'Total Number Of Cores'

这可以通过一种更便携的方式来实现:

$ nproc --all
32

兼容macOS和Linux操作系统。

getconf在Mac OS X和Linux上都可以工作,以防你需要它与这两个系统兼容:

$ getconf _NPROCESSORS_ONLN
12

下面的命令提供了关于CPU的所有信息

$ sysctl -a | sort | grep cpu

更简单:

sysctl -n hw.ncpu