Показать активные интерфейсы в терминале - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь перечислить сетевой интерфейс, который я сейчас использую.Мне нужно знать, как это сделать в терминале и в скрипте.

ifconfig | grep $(networksetup -listnetworkserviceorder | grep 'Ethernet, Device' | sed -E "s/.*(en[0-9]).*/\1/")

Что я получаю: введите описание изображения здесь

Что я хочу сделатьget: только имя активного интерфейса

1 Ответ

0 голосов
/ 14 февраля 2019

Используйте вашу вторую команду, поместите все символы после имени интерфейса в заголовок, чтобы он не печатался как часть совпадения.

ifconfig | pcregrep -M -o '^[^\t:]+(?=:([^\n]|\n\t)*status: active)'

Когда я делаю это, вывод:

en0
awdl0

См. Что такое AWDL (Apple Wireless Direct Link) и как он работает? для чего awdl0.

Ваша первая команда должна работать, если просто напечататьрезультат конвейера networksetup без использования ifconfig.Это работает для меня:

networksetup -listnetworkserviceorder | grep 'Wi-Fi, Device' | sed -E "s/.*(en[0-9]).*/\1/"

У меня есть Wi-Fi, а не Ethernet.

...