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

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

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

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

1 ответ

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

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:

Печатайте только совпадающие (непустые) части совпадающей строки, причем каждая такая часть находится на отдельной выходной строке.

(обе цитаты из справочной страницы grep)

Эта опция говоритgrepчто нас интересует только та часть, которая соответствует шаблону, а не всей линии (если она соответствует).

"HWaddr \ K. * $"

Эта часть говорит нам о том, что мы ищемHWaddr(MAC или аппаратный адрес).\Kустанавливает начальную точку того, что мы хотим напечатать (для-oвариант выше)..*говорит grep соответствовать любому персонажу (.) столько раз, сколько возможно (*), по крайней мере, до конца строки ($).

Выход / Результат

Собрав все это, команда получает информацию отifconfigи ищет части, соответствующие MAC-адресу сетевых интерфейсов в системе, и выводит их на новую строку.


1: "Некоторые люди, сталкиваясь с проблемой, думают:" Я знаю, я буду использовать регулярные выражения ".Теперь у них две проблемы ".Джейми Завински, 1997 (хотя цитата часто вырывается из контекста)

Другие вопросы по тегам