Что делает эта команда?
ifconfig | grep -Po "HWaddr \K.*$"
распечатывает MAC / аппаратные адреса активных сетевых интерфейсов, имеющихся в вашей системе, если они доступны.
Кроме того, в Linux в целом вы можете узнать о программах и их переключателях, просмотрев их man
, например:
$ man ifconfig
$ man grep
(и т. д.) В противном случае поиск « <program name>
вручную» или « <program name>
использование» может ответить на такие вопросы.
Ifconfig
ifconfig
используется для отображения и настройки сетевых интерфейсов. От man ifconfig
:
Ifconfig используется для настройки резидентных сетевых интерфейсов ядра. Он используется во время загрузки для настройки интерфейсов по мере необходимости. После этого он обычно требуется только при отладке или при настройке системы.
Если аргументы не указаны, ifconfig отображает состояние активных в данный момент интерфейсов . Если указан один аргумент интерфейса, он отображает только состояние данного интерфейса; если указан единственный аргумент -a, он отображает состояние всех интерфейсов, даже тех, которые отключены. В противном случае он настраивает интерфейс.
(акцент мой)
Здесь ifconfig
сообщается о состоянии ваших текущих активных интерфейсов.
| (Труба)
Символ трубы - |
- здесь перенаправляет вывод из ifconfig
и вместо него отображается для вас, вместо этого он идет кgrep
Grep
grep
используется для сопоставления с образцом и (обычно) печати того, что соответствует рисунку или нет.
Здесь поставляются варианты -P
и-o
-P
:
Интерпретировать PATTERN как регулярное выражение Perl (PCRE, см. Ниже). Это очень экспериментально, и grep -P может предупредить о невыполненных функциях.
Регулярные выражения - длинная тема 1, но в основном это позволяет grep
сопоставить некоторые дополнительные шаблоны.
-o
:
Печатайте только совпадающие (непустые) части совпадающей строки, причем каждая такая часть находится на отдельной выходной строке.
(обе цитаты из man-страницы grep)
Эта опция говорит, grep
что нас интересует только та часть, которая соответствует шаблону, в отличие от всей линии (если она соответствует).
"HWaddr \ K. * $"
Эта часть говорит нам о том, что мы ищем HWaddr
(MAC или аппаратный адрес). \K
устанавливает начальную точку того, что мы хотим напечатать (для -o
опции выше). .*
говорит, grep
чтобы соответствовать любому символу ( .
) столько раз, сколько возможно ( *
), по крайней мере, до конца строки ( $
).
Выход / Результат
Собрав все это вместе, команда берет информацию ifconfig
и ищет части, соответствующие MAC-адресам сетевых интерфейсов в системе, и выводит их на новую строку.
1 : «Некоторые люди, сталкиваясь с проблемой, думают:« Я знаю, я буду использовать регулярные выражения ». Теперь у них две проблемы ". Джейми Завински, 1997 (хотя цитата часто вырывается из контекста )