Linux ifconfig - что делает ifconfig | grep -Po "HWaddr \ K. * $"

654
Mark Mills

Я надеялся, что кто-нибудь может объяснить постепенно, что делает каждая часть этой команды.

ifconfig | grep -Po "HWaddr \K.*$"

например, для чего -Po?

0
Какие исследования вы уже провели по этому вопросу? bertieb 7 лет назад 2
Я обнаружил, что -P - это сокращение от `--perl-regexp` и означает« интерпретировать шаблон как Perl-совместимое регулярное выражение (PCRE) ». -o это сокращение от `--only-match` и означает« Печатать только совпадающие (непустые) части совпадающих строк ... ». IQV 7 лет назад 1

1 ответ на вопрос

5
bertieb

Что делает эта команда?

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 (хотя цитата часто вырывается из контекста )

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