Команда lshw позволяет использовать утилиту с соответствующим именем для получения информации об аппаратном обеспечении компьютера. Данная утилита позволяет выводить информацию об отдельных классах устройств, использовать различное форматирование вывода, а также удалять из вывода информацию, позволяющую идентифицировать устройства (серийные номера и подобные идентификаторы), что делает ее идеальным вариантом для формирования списка устройств, который можно передавать третьим лицам. Аналогами данной утилиты являются hwinfo и inxi.
Базовый синтаксис команды выглядит следующим образом:
# lshw [формат-вывода] [параметры]
Перед тем, как говорить о параметрах утилиты, следует обратить внимание на тот факт, что ее интерфейс немного отличается от интерфейсов большинства других утилит командной строки для Linux: вам придется использовать один, а не два дефиса перед полными именами параметров. Утилита поддерживает несколько форматов вывода результатов: HTML (активируется с помощью параметра -html), XML (активируется с помощью параметра -xml), табличный с путями sysfs (активируется с помощью параметра -short) и табличный с адресами шин (активируется с помощью параметра -businfo). Что касается параметров, то наиболее актуальными являются такие параметры, как -class для указания интересующего класса устройств, -enable и -disable для активации и деактивации определенных тестов, -sanitize для удаления идентификационных данных устройств, -numeric для вывода цифровых идентификаторов и -notime для удаления из вывода меток времени. Для ознакомления со списком классов устройств используемого компьютера следует использовать утилиту с параметром -short. Что касается тестов, то вы можете использовать следующие идентификаторы: dmi (доступ к расширениям DMI/SMBIOS), device-tree (доступ к интерфейсу OpenFirmware Device Tree), spd (доступ к интерфейсу Serial Presence Detect оперативной памяти), memory (эвристическое определение объема оперативной памяти), cpuinfo (доступ к информации о ЦП от ядра ОС), cpuid (доступ к информации от ЦП), pci (доступ к информации от устройств PCI/AGP), isapnp (доступ к расширениям ISA PnP), pcpcia (доступ к интерфейсу PCMCIA/PCCARD), ide (доступ к информации от устройств IDE/AT-API), usb (доступ к информации от устройств USB), scsi (доступ к информации от устройств SCSI), network (определение параметров сетевых интерфейсов).
В первую очередь вам придется установить рассматриваемую утилиту; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды. Подробнее об установке программного обеспечения рассказано в данном разделе.
Команда для Linux Mint, Ubuntu и Debian:
$ sudo apt-get install lshw
Команда для Fedora Workstation:
$ sudo dnf install lshw
Для вывода полной информации обо всех устройствах компьютера достаточно использовать утилиту lshw без каких-либо параметров:
# lshw
layla
описание: Настольный компьютер
продукт: MS-7592 (To Be Filled By O.E.M.)
производитель: MSI
версия: 5.0
серийный №: To Be Filled By O.E.M.
разрядность: 64 bits
возможности: smbios-2.5 dmi-2.5 smp vsyscall32
...
Такой режим работы утилиты не всегда удобен, ведь вывод содержит огромное количество лишних деталей.
Для вывода краткой информации обо всех устройствах компьютера следует использовать лишь параметры -short или -businfo утилиты lshw:
# lshw -short
H/W path Устройство Класс Описание
================================================================================
system MS-7592 (To Be F
/0 bus G41M-P28 (MS-759
/0/0 memory 64KiB BIOS
/0/4 processor Intel(R) Xeon(R)
…
Очевидно, что в данном случае вывод представлен в виде таблицы, содержащей пути в sysfs, классы устройств и их названия.
Для вывода информации об интересующих пользователя классах устройств достаточно указать класс этих устройств:
# lshw -class processor
*-cpu
описание: ЦПУ
продукт: Intel(R) Xeon(R) CPU 3060 @ 2.40GHz
производитель: Intel Corp.
физический ID: 4
сведения о шине: cpu@0
версия: Intel(R) Xeon(R) CPU 3060 @ 2.40GHz
серийный №: To Be Filled By O.E.M.
слот: CPU 1
размер: 2045MHz
capacity: 2403MHz
разрядность: 64 bits
частота: 267MHz
возможности: lm fpu fpu_exception wp vme de pse tsc
конфигурация: cores=2 enabledcores=2 threads=2
В данном случае была выведена информация лишь о центральном процессоре.
Для сохранения журнала работы утилиты в файле достаточно использовать параметр форматирования вывода и перенаправить вывод в файл:
# lshw -xml > log.xml
$ head -n 10 log.xml
<?xml version="1.0" standalone="yes" ?>
<!-- сгенерировано lshw- -->
<!-- GCC 9.3.0 -->
<!-- Linux 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020 x86_64 -->
<!-- GNU libc 2 (glibc 2.31) -->
<list>
<node id="layla" claimed="true" class="system" handle="DMI:0001">
<description> </description>
<product>MS-7592 (To Be Filled By O.E.M.)</product>
<vendor>MSI</vendor>
Разумеется, третьим лицам лучше передавать файл в формате HTML, использовав при его формировании параметр -sanitize.