Введение
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.
Комментарии (0)