Этот ответ аналогичен приведенному выше, но для ответа на вопрос используется пример конфигурации вопросов. Плюс это объясняет, почему обе команды необходимы.
Редактировать /etc/network/interfaces
:
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameserver 192.168.3.45
dns-nameserver 192.168.8.10
Эти изменения не вступят в силу, пока вы не перезагрузите или не перезагрузите файл конфигурации:
Для обновления файла интерфейсов в реальном времени необходимо выполнить следующую команду:
echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com" | sudo resolvconf -a eth0.inet
Это позволяет обновить интерфейс без перезагрузки или перезагрузки.
Однако указанные выше изменения команды будут потеряны после перезагрузки, если изменения /etc/network/interfaces
не были внесены.
Кстати, последний ответ от BDenis в этом списке фактически работает вместо последней команды, анализируя /etc/network/interfaces
файл и добавляя эти строки в команду. sudo resolvconf -a eth0
Это фактически половина ответа и действительно хороший пример встроенного синтаксического анализа sed. Если вы хотите увидеть, как это происходит, просто запустите первую часть команды и посмотрите, как она разбирает /etc/network/interfaces
файл и выкладываете всю необходимую информацию, необходимую для запуска sudo resolvconf -a eth0
команды:
sed 's/#.*$//' /etc/network/interfaces | grep dns- | sed 's/dns-//g'
Обратите внимание, что это выдает тот же результат, что и команда:
echo "nameserver 192.168.3.45
nameserver 192.168.8.10
search example.com"
При условии, что /etc/network/interfaces
файл настроен с этой информацией:
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameserver 192.168.3.45
dns-nameserver 192.168.8.10