table of contents
- trixie 2.41-5
- testing 2.41.3-4
- unstable 2.41.3-4
- experimental 2.42~rc1-1
| LSCPU(1) | User Commands | LSCPU(1) |
NAME¶
lscpu - display information about the CPU architecture
SYNOPSIS¶
lscpu [options]
DESCRIPTION¶
lscpu gathers CPU architecture information from sysfs, /proc/cpuinfo and any applicable architecture-specific libraries (e.g. librtas on Powerpc). The command output can be optimized for parsing or for easy readability by humans. The information includes, for example, the number of CPUs, threads, cores, sockets, and Non-Uniform Memory Access (NUMA) nodes. There is also information about the CPU caches and cache sharing, family, model, bogoMIPS, byte order, stepping and microcode version.
The default output formatting on a terminal is subject to change and may be optimized for better readability. The output for non-terminals (e.g., pipes) is never affected by this optimization and it is always in "Field: data\n" format. Use for example "lscpu | less" to see the default output without optimizations.
In virtualized environments, the CPU architecture information displayed reflects the configuration of the guest operating system which is typically different from the physical (host) system. On architectures that support retrieving physical topology information, lscpu also displays the number of physical sockets, chips, cores in the host system.
Options that produce an output table accept an optional list argument. This list is a comma-separated series of column labels to limit the table to only the specified columns, arranged in the specified order. Use --help to see a list of valid column labels. The labels are case insensitive. Not all columns are supported on all architectures. If an unsupported column is specified, lscpu prints the column but does not provide any data for it.
The cache sizes are reported as summary from all CPUs. The versions before v2.34 reported per-core sizes, but this output was confusing due to complicated CPUs topology and the way how caches are shared between CPUs. For more details about caches see --cache. Since version v2.37 lscpu follows cache IDs as provided by Linux kernel and it does not always start from zero.
OPTIONS¶
-a, --all
-B, --bytes
By default, sizes are shown in units that are powers of 1024 bytes. The formal abbreviations for these units (KiB, MiB, GiB, ...) are further shortened to just their first letter: K, M, G, ....
-b, --online
-C, --caches[=list]
If the list argument is omitted, all columns for which data is available are included in the command output.
When specifying the list argument, the option string plus the equal sign (=) plus the list may not contain any whitespace. Examples: -C=NAME,ONE-SIZE or --caches=NAME,ONE-SIZE.
The default list of columns may be extended if list is specified in the format +list (e.g., lscpu -C=+ALLOC-POLICY).
-c, --offline
-e, --extended[=list]
If the list argument is omitted, the default columns are included in the command output. The default output is subject to change.
When specifying the list argument, the option string plus the equal sign (=) plus the list may not contain any whitespace. Examples: -e=cpu,node or --extended=cpu,node.
The default list of columns may be extended if list is specified in the format +list (e.g., lscpu -e=+MHZ).
-H, --list-columns
--hierarchic[=when]
-J, --json
--output-all
-p, --parse[=list]
If the list argument is omitted, the command output is compatible with earlier versions of lscpu. In this compatible format, two commas are used to separate CPU cache columns. If no CPU caches are identified the cache column is omitted. If the list argument is used, cache columns are separated with a colon (:).
When specifying the list argument, the option string plus the equal sign (=) plus the list may not contain any whitespace. Examples: -p=cpu,online,mhz or --parse=cpu,online,mhz.
The default list of columns may be extended if list is specified in the format +list (e.g., lscpu -p=+MHZ).
-r, --raw
-s, --sysroot directory
-x, --hex
-y, --physical
The CPU logical numbers are not affected by this option.
--arm-id[=list]
If an argument is given, print a list of the individual core IDs and their names, for the given implementer.
--arm-model id
--annotate[=when]
ENVIRONMENT¶
LSCPU_COLUMNS=
LSCPU_CACHES_COLUMNS=
-h, --help
-V, --version
COLUMNS¶
A list of valid column labels can be viewed with the --list-columns option.
NOTES¶
The default output is subject to change. So whenever possible, you should avoid using default output in your scripts.
BUGS¶
The basic overview of CPU models is based on heuristics, taking into account differences such as CPU model names and implementer IDs. In some (unusual) cases, CPUs may differentiate in flags or BogoMIPS, but these differences are ignored in the lscpu overview.
Sometimes in Xen Dom0 the kernel reports wrong data.
On virtual hardware the number of cores per socket, etc. can be wrong.
AUTHORS¶
Cai Qian <qcai@redhat.com>, Karel Zak <kzak@redhat.com>, Heiko Carstens <heiko.carstens@de.ibm.com>, Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
SEE ALSO¶
REPORTING BUGS¶
For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.
AVAILABILITY¶
The lscpu command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
| 2026-02-18 | util-linux 2.42-rc1 |