Команда lshw

Команда 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.