Можно ли с помощью скрипта bash прочитать mac-адрес моего eth0 и распечатать его в файл?
linux
shell
ethernet
mac-address
michelemarcon
источник
источник
ip
команды:/sbin/ip link show eth0
.LC_ALL=C ifconfig eth0 | awk '/HWaddr/ {print $NF}'
, что выход может быть локализован, не совпадая с 'HWaddr'. LC_ALL = C использует международный стандарт.awk '{print $NF; exit}'
слишком| head -n 1
тогда.Вот современный метод Linux:
Это современное в том , что
ifconfig
уже давно устарело в пользуip
изiproute2
пакета, иgrep
имеет-P
возможность для PERL регулярных выражений для нулевой ширины положительного взгляда-за утверждением .grep -o
хорошо для извлечения текста.sed
традиционно используется для этого, но я считаю, что утверждения нулевой ширины в стиле perl более понятны, чем команда подстановки sed.На самом деле вам не нужна
-o
опция (oneline)ip
, но я предпочитаю использовать ее при извлечении информации о сети, поскольку я считаю, что она чище, имея по одной записи на строку. Если вы делаете более сложные совпадения или извлечения (обычно сawk
),-o
это важно для чистого сценария, поэтому для согласованности и общего шаблона я всегда использую его.источник
Конечно, есть и другие инструменты, которые могут вырезать MAC-адрес из
ifconfig
выходных данных. Мне просто нравится Perl.источник
Использование
ip -br link show eth0
выведет что-то вроде этого:Вам нужен только 3-й столбец, поэтому:
источник