我在 Windows 上使用 Ubuntu。我使用的是 Ubuntu 16.04.2 LTS。我很困惑,为什么lscpu
没有任何输出。
但man lscpu
会给lscpu -h
我正确的信息。
这是什么问题?我该如何解决?
答案1
使用适用于 Linux 的 Windows 子系统时,请确保您使用的是最新的 Windows 版本。
(Win+R -> 输入winver
)
我使用的是版本 1703 build 15063.483(Creators Update),lscpu 运行良好。
onoma:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 15
Model name: Intel(R) Pentium(R) Dual CPU E2200 @ 2.20GHz
Stepping: 13
CPU MHz: 2200.000
CPU max MHz: 2200.0000
BogoMIPS: 4400.00
Hypervisor vendor: vertical
Virtualization type: full
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm
答案2
您不仅必须拥有最新版本的 Windows,还必须拥有 WSL 中 Ubuntu 的最新更新。
我使用的是 Win 10 版本 1709,操作系统版本 16299.64,WSL 报告 Ubuntu 16.04.2,当我运行 lscpu 命令时,它没有提供任何输出。它还给出了返回代码 1。
[ joelk: ~ ]$ lscpu
[ joelk: ~ ]$ echo rc=$?
rc=1
[ joelk: ~ ]$ uname -rv
4.4.0-43-Microsoft #1-Microsoft Wed Dec 31 14:42:53 PST 2014
[ joelk: ~ ]$
在我表演了
$ sudo apt-get update
和一个
$ sudo apt-get upgrade
Ubuntu 报告 16.04.3 并且 lscpu 命令提供了预期的输出。
[ joelk: ~ ]$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 142
Model name: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
Stepping: 9
CPU MHz: 2904.000
CPU max MHz: 2904.0000
BogoMIPS: 5808.00
Virtualization: VT-x
Hypervisor vendor: vertical
Virtualization type: full
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave osxsave avx f16c rdrand
[ joelk: ~ ]$ echo $?
0
[ joelk: ~ ]$