Анализ системы с помощью инструментов командной строки lscpu и lsusb

Введение

Fedora (и другие распространенные системы Linux) предлагает вам множество инструментов для управления, мониторинга и понимания системы. Среди этих инструментов есть ряд команд, начинающихся с ls (что означает «список»).

Они позволяют легко получить представление о различных аспектах аппаратного обеспечения и ресурсов системы. В этой статье будут рассмотрены lscpu и lsusb.

lscpu – отображение информации о процессоре

Команда lscpu собирает и отображает информацию об архитектуре процессора. Она предоставляется пакетом util-linux. Команда собирает информацию о процессоре из различных источников, таких как /proc/cpuinfo и библиотек, специфичных для данной архитектуры (например, librtas для PowerPC):

lscpu

Эта команда выводит такую информацию, как количество процессоров, потоков на ядро, ядер на сокет, а также семейство и модель процессора.

При необходимости она выводит подробную информацию о процессоре в формате JSON. Это обеспечивает структурированное представление, которое особенно полезно для сценариев и автоматизации:

lscpu --extended --json

Пример расширенного использования

Из машиночитаемого JSON-вывода можно извлечь информацию с помощью jq (мощный инструмент командной строки, позволяющий эффективно разбирать, фильтровать и манипулировать JSON-данными и заслуживающий отдельной статьи). Например, следующая команда извлечет текущую частоту MHz для каждого процессора:

export LANG=en_US.UTF-8export LC_ALL="en_US.UTF-8"lscpu --json --extended \  | jq '.cpus[] | {cpu: .cpu, mhz: .mhz}'

Давайте рассмотрим отдельные части команды:

  • export LANG=en_US.UTF-8 _ и _export LC_ALL="en_US.UTF-8" следят за тем, чтобы в выводе не использовались локализованные числа. Например, установка немецкого языка может привести к нарушению вывода JSON из-за использования запятых вместо периодов в качестве разделителей плавающей точки.
  • lscpu -json -extended генерирует подробную информацию о процессоре в формате JSON.
  • jq '.cpus[] | выполнит итерацию по каждой записи в массиве cpus.
  • {cpu: .cpu, mhz: .mhz} строит новый JSON-объект для каждой записи CPU показывая номер CPU и его текущую частоту в МГц.

Пример вывода данных с ноутбука, работающего в режиме производительности:

$ lscpu --json --extended \
  | jq '.cpus[] | {cpu: .cpu, mhz: .mhz}'
{
  "cpu": 0,
  "mhz": 3700.0171
}
{
  "cpu": 1,
  "mhz": 3700.2241
}
{
  "cpu": 2,
  "mhz": 3700.1121
}
{
  "cpu": 3,
  "mhz": 3884.2539
}

а затем в режиме энергосбережения:

$ lscpu --json --extended \
  | jq '.cpus[] | {cpu: .cpu, mhz: .mhz}'
{
  "cpu": 0,
  "mhz": 1200.0580
}
{
  "cpu": 1,
  "mhz": 1200.0070
}
{
  "cpu": 2,
  "mhz": 1200.5450
}
{
  "cpu": 3,
  "mhz": 1200.0010
}

lsusb – отображение информации о USB-устройствах

Команда lsusb отображает подробную информацию о шинах USB в системе и подключенных к ним устройствах. Она предоставляется пакетом usbutils и помогает пользователям и системным администраторам легко просматривать конфигурацию и устройства, подключенные к их USB-интерфейсам:

lsusb

Выдает список всех шин USB, подключенных к ним устройств и краткую информацию о каждом устройстве, такую как идентификатор и производитель. Это особенно полезно для быстрой проверки того, какие устройства подключены к системе, и если вам нужен идентификатор USB-устройства для правил udev или т. п.

Пример и вывод Usage

Для тех, кому нужна более подробная информация о USB-устройствах, lsusb позволяет вывести список более подробной информации:

$ lsusb | grep Fibocom
Bus 001 Device 013: ID 2cb7:0210 Fibocom L830-EB-00 LTE WWAN Modem
$ sudo lsusb -d 2cb7:0210 -v
Bus 001 Device 013: ID 2cb7:0210 Fibocom L830-EB-00 LTE WWAN Modem
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 [unknown]
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x2cb7 Fibocom
  idProduct          0x0210 L830-EB-00 LTE WWAN Modem
  bcdDevice            3.33
  iManufacturer           1 FIBOCOM
  iProduct                2 L830-EB-00
  iSerial                 3 004999010640000
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00a1
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
[ more output omitted for readability ]

Использование опций -v и -t позволит lsusb выгрузить физическую иерархию USB-устройств в виде дерева, включая идентификаторы. Ниже показано подробное дерево всех USB-устройств (здесь используется ThinkPad T480S), их типы, скорости и классы устройств. Это особенно полезно для устранения проблем с USB-устройствами:

lsusb -t -v
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 001: Dev 002, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        ID 046d:c069 Logitech, Inc. M-U0007 [Corded Mouse M500]
    |__ Port 002: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        ID 046a:c098 CHERRY 
    |__ Port 002: Dev 003, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        ID 046a:c098 CHERRY 
    |__ Port 003: Dev 004, If 0, Class=Chip/SmartCard, Driver=usbfs, 12M
        ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader
    |__ Port 005: Dev 005, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 5986:2123 Bison Electronics Inc. 
    |__ Port 005: Dev 005, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 5986:2123 Bison Electronics Inc. 
    |__ Port 006: Dev 013, If 0, Class=Communications, Driver=cdc_mbim, 480M
        ID 2cb7:0210 Fibocom L830-EB-00 LTE WWAN Modem
    |__ Port 006: Dev 013, If 1, Class=CDC Data, Driver=cdc_mbim, 480M
        ID 2cb7:0210 Fibocom L830-EB-00 LTE WWAN Modem
    |__ Port 006: Dev 013, If 2, Class=Communications, Driver=cdc_acm, 480M
        ID 2cb7:0210 Fibocom L830-EB-00 LTE WWAN Modem
    |__ Port 006: Dev 013, If 3, Class=CDC Data, Driver=cdc_acm, 480M
        ID 2cb7:0210 Fibocom L830-EB-00 LTE WWAN Modem
    |__ Port 007: Dev 007, If 0, Class=Wireless, Driver=btusb, 12M
        ID 8087:0a2b Intel Corp. Bluetooth wireless interface
    |__ Port 007: Dev 007, If 1, Class=Wireless, Driver=btusb, 12M
        ID 8087:0a2b Intel Corp. Bluetooth wireless interface
    |__ Port 008: Dev 008, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 5986:2115 Bison Electronics Inc. 
    |__ Port 008: Dev 008, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 5986:2115 Bison Electronics Inc. 
    |__ Port 009: Dev 009, If 0, Class=Vendor Specific Class, Driver=[none], 12M
        ID 06cb:009a Synaptics, Inc. Metallica MIS Touch Fingerprint Reader
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 003: Dev 002, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
        ID 0bda:0316 Realtek Semiconductor Corp. Card Reader
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 001: Dev 002, If 0, Class=Hub, Driver=hub/5p, 480M
        ID 0451:8442 Texas Instruments, Inc. 
        |__ Port 001: Dev 003, If 0, Class=Hub, Driver=hub/7p, 480M
            ID 0424:2137 Microchip Technology, Inc. (formerly SMSC) 
        |__ Port 003: Dev 005, If 0, Class=Hub, Driver=hub/3p, 480M
            ID 0bda:5411 Realtek Semiconductor Corp. RTS5411 Hub
            |__ Port 001: Dev 006, If 0, Class=Vendor Specific Class, Driver=r8152, 480M
                ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
        |__ Port 004: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 480M
            ID 0451:82ff Texas Instruments, Inc. 
/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub

Заключение

Несмотря на свою простоту, обе команды позволяют получить представление о конфигурации и состоянии системы. Независимо от того, занимаетесь ли вы устранением неполадок, оптимизацией или просто любопытствуете, эти инструменты предоставляют ценные данные, которые помогут вам лучше понять и управлять вашей средой Linux.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен fedoramagazine.org

Похожие статьи

Комментарии (0)