Смотрите идентификатор поставщика соединений USB, идентификатор продукта и пересмотр

VAR=value; somecommand эквивалентно

VAR=value
somecommand

Это несвязанные команды, выполняемые один за другим. Первая команда присваивает значение переменной оболочки VAR. Если VAR уже переменная среды, она не экспортируется в среду, это остается внутренним к оболочке. Оператор export VAR экспортировал бы VAR к среде.

VAR=value somecommand другой синтаксис. Присвоение VAR=value к среде, но это присвоение только сделано в среде выполнения somecommand, не для последующего выполнения оболочки.

Как пример:

# Assume neither VAR1 nor VAR2 is in the environment
VAR1=value
echo $VAR1                        # displays "value"
env | grep '^VAR1='               # displays nothing
VAR2=value env | grep '^VAR2='    # displays "VAR2=value"
echo $VAR2                        # displays nothing
8
09.05.2018, 12:27
3 ответа

Эта информация появляется в журналах ядра — обычно в /var/log/kern.log, или /var/log/syslog, или некоторый другой файл (это зависит от Вашей конфигурации системного журнала, различные дистрибутивы, имеет различные значения по умолчанию).

Если Вы хотели бы что-то предварительно фильтрованное, можно добавить правило udev. Создайте файл /etc/udev/rules.d/tkk-log-usb.rules содержа что-то как:

SUBSYSTEM=="usb", RUN+="/usr/local/sbin/tkk-usb-event"

Среда программы заполняется с большим количеством переменных, описывающих устройство, включая:

  • ACTION (add или remove)
  • DEVICE путь к устройству, если Вы хотите получить доступ к нему
  • ID_MODEL_ID и ID_VENDOR_ID содержите модель и идентификатор поставщика, и ID_MODEL и ID_VENDOR содержите соответствующий текст
  • ID_SERIAL содержит порядковый номер устройства (при наличии)
6
27.01.2020, 20:09

Можно сделать это с udevadm:

udevadm monitor --subsystem-match=usb --property

или

udevadm monitor --subsystem-match=usb --property --udev

отфильтровать только udev события. Если Вы хотите grep для особого свойства необходимо будет освободить буфер udevadm вывод (с инструментами как stdbuf, script, unbuffer...):

stdbuf -i 0 -o 0 -e 0 udevadm monitor --subsystem-match=usb --property --udev | grep DEVPATH

или

script -q /dev/null -c "udevadm monitor --subsystem-match=usb --property --udev" | grep PRODUCT

или

unbuffer udevadm monitor --subsystem-match=usb --property --udev | grep -E 'ID_VENDOR_ID|ID_MODEL_ID'
10
27.01.2020, 20:09

Если Вы просто хотите контролировать текущие включенные USB-устройства watch --no-title lsusb мог отвечать всем требованиям.

0
27.01.2020, 20:09

Теги

Похожие вопросы