ifconfig $(route -n |grep -m1 -e ^'0\.0\.\0\.0' |awk '{print $NF}') |grep 'inet addr' |awk '{print $2}' |sed 's/addr://1'
Команда «ifconfig» используется для вывода сетевой конфигурации на локальной машине. В данном случае команда выполняется с аргументом, который получает основной IP-адрес локальной машины.
Сначала выполняется команда «route -n», которая выводит таблицу маршрутизации. Затем вывод этой команды фильтруется с помощью команды «grep -m1 -e ^’0\.0\.\0\.0′», чтобы найти строку с маршрутом по умолчанию. Далее с помощью команды «awk ‘{print $nf}'» получается номер сетевого интерфейса для маршрута по умолчанию.
Полученный номер сетевого интерфейса подставляется в команду «ifconfig», чтобы вывести информацию только для этого интерфейса. Затем вывод этой команды фильтруется с помощью команд «grep ‘inet addr'», чтобы найти строку с IP-адресом, и «awk ‘{print $2}'», чтобы вывести только значение IP-адреса.
Наконец, полученное значение IP-адреса подставляется в команду «sed ‘s/addr://1′», чтобы удалить префикс «addr:» из строки и вывести только сам IP-адрес.
Альтернативой этой команде может быть использование утилиты «ip», например, команда «ip addr show | grep ‘inet ‘ | awk ‘{print $2}’ | sed ‘s/\/.*//'». Эта команда также выводит IP-адрес локальной машины, но без необходимости выбирать сетевой интерфейс.
