在 Linux 中,/proc/cpuinfo 或 lscpu 输出信息较多,常需要根据需求过滤出关键信息。下面按常见场景给你一些实用方法。
grep -c ^processor /proc/cpuinfo
grep "physical id" /proc/cpuinfo | sort -u | wc -l
grep "cpu cores" /proc/cpuinfo | uniq
# 逻辑核 > 物理核 说明开了超线程
echo "逻辑核: $(grep -c ^processor /proc/cpuinfo)"
echo "物理核: $(grep "cpu cores" /proc/cpuinfo | uniq)"
grep "model name" /proc/cpuinfo | uniq
lscpu | grep "Model name"
grep -E "vmx|svm" /proc/cpuinfo
grep -o "avx" /proc/cpuinfo | head -1
grep "flags" /proc/cpuinfo | head -1
awk '/^processor *: 0/{flag=1} flag{print} /^$/{if(flag) exit}' /proc/cpuinfo
lscpu | grep -E "CPU\(s\)|Core|Thread|Socket|Model name"
示例输出:
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Model name: Intel(R) Core(TM) i7-8550U
echo "物理CPU: $(grep 'physical id' /proc/cpuinfo | sort -u | wc -l)"
echo "每CPU核心: $(grep 'cpu cores' /proc/cpuinfo | uniq | awk '{print $4}')"
echo "逻辑CPU: $(grep -c ^processor /proc/cpuinfo)"
echo "型号: $(grep 'model name' /proc/cpuinfo | uniq | awk -F: '{print $2}')"
如果你有具体过滤需求(比如:只要核心数 / 只要某个 flag / 脚本化输出),可以直接告诉我,我可以给你定制命令。