Этот ответ аналогичен приведенному выше, но использует конфигурацию примера вопросов для ответа на вопрос. Плюс это объясняет, почему нужны обе команды.
Изменить /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
. Это фактически половина ответа и действительно хороший пример inline sed parsing. Если вы хотите посмотреть, как это происходит, просто запустите первую часть команды и посмотрите, как она анализирует файл /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