如何从命令行获取Linux中的CPU /内核数量?
我有这个脚本,但我不知道如何获得打印输出中的最后一个元素:
cat /proc/cpuinfo | awk '/^processor/{print $3}'
最后一个元素应该是CPU的数量,减1。
cat /proc/cpuinfo | awk '/^processor/{print $3}' | tail -1
或干脆
grep -c ^processor /proc/cpuinfo
它将计算/proc/cpuinfo
以“processor”开头的行数
处理/proc/cpuinfo
的内容是不必要的巴洛克式的。 使用nproc是coreutils的一部分,因此它应该在大多数Linux安装中可用。
命令nproc
输出当前进程可用的处理单元数量,可能少于在线处理器数量。
要找到所有安装的内核/处理器的数量,请使用nproc --all
在我的8核机器上:
$ nproc --all
8
我发现的最便携的解决方案是getconf
命令:
getconf _NPROCESSORS_ONLN
这适用于Linux和Mac OS X.与其他一些方法相比,另一个好处是getconf已经存在很长时间了。 我必须开发的一些较旧的Linux机器没有可用的nproc
或lscpu
命令,但它们具有getconf
。
编者按:虽然getconf
实用程序是POSIX规定的,但具体的_NPROCESSORS_ONLN
和_NPROCESSORS_CONF
值不是。 也就是说,如上所述,他们在Linux平台以及macOS上工作; 在FreeBSD / PC-BSD上,您必须省略前导_
。
上一篇: How to obtain the number of CPUs/cores in Linux from the command line?
下一篇: how to use if to see whether file has suffix in shell bash script