Вы можете воспользоваться следующим регулярным выражением:
^(\S+)\s+(\S+)
Онлайн-демо
Подробности
^ - начало строки (\S+) - захватывающая подмаска №1: 1 и более выраженная личность: отличные от пробельных букв (f6) - 1 и более пробельных букв (f7) - захватывающая подмаска №2: 1 и более выраженная личность - отличные от пробельных символов.Код на JavaScript:
var s = "xxxxx@mail.ru id";
var res = s.match(/^(\S+)\s+(\S+)/);
console.log(res[1], "и", res[2]);
Если нужно получить подстроку до первого пробела, можно использовать /^\S+/:
var s = "xxxxx@mail.ru id";
var res = s.match(/^(\S+)\s+(\S+)/);
console.log(res[1], "и", res[2]);
Здесь я нашел другой подход, который включает добавление строки, подобной приведенной ниже, к /etc/dhcp/dhclient.conf:
prepend domain-name-servers x.x.x.x, y.y.y.y;
Аналогичным образом, я нашел третий подход здесь , который включает добавление строки к /etc/network/interfaces:
auto eth0
iface eth0 inet static
. . .
dns-nameservers 8.8.8.8 8.8.4.4
Обновление: вот официальная документация для третьего подхода.
Похоже, вы говорите о пакете resolvconf.
Установите пакет resolvconf.
Запустите
cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig #backup copy, always do this
sudo nano head
Верх верхней части файла страшное предупреждение. Файл /etc/resolv.conf автогенерируется из содержимого этого файла; предупреждение есть, поэтому он будет вставлен в /etc/resolv.conf при создании /etc/resolv.conf. В конец файла добавьте
nameserver <ip_of_nameserver>
Нажмите Ctrl x и ответьте да, чтобы сохранить файл. Чтобы закончить, обновите файл /etc/resolv.conf, чтобы изменения были применены прямо сейчас:
sudo resolvconf -u
Затем проверьте содержимое файла /etc/resolv.conf, чтобы увидеть добавленную вами строку. Кроме того, он все равно будет в следующий раз, когда ваш компьютер загрузится или ваша сетевая услуга будет перезапущена, в зависимости от того, что наступит раньше.
Ниже я покажу вам лучший способ, который я нашел с момента запуска версии Ubuntu Server и использую ifup, а не NetworkManager.
На самом деле для меня это упростило :), / etc / network / interfaces. Те же конфигурации, которые вы написали бы в resolv.conf, теперь могут быть в том же файле, что и конфигурации вашего сетевого адаптера, как в приведенном ниже примере:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 75.75.75.75 75.75.76.76
dns-search local
Я надеюсь, что это поможет и упростит он делает для меня, теперь мы можем создавать статические IP-адреса и добавлять в серверы имен и домен dns все в одном файле:)
Mine запускает сервер Ubuntu 12.04. Я сделал следующие изменения и перезагрузил сервер (обычно это можно сделать, только снижая сетевой интерфейс, то есть ifdown eth0 или ifup eth0).
В файле /etc/resolvconf/resolv.conf.d/base я добавил следующие записи:
nameserver 8.8.8.8
nameserver 8.8.4.4
Надеюсь, что это поможет!
Вы можете использовать NetworkManager, как указано в ответе Фрэнка, но если вы предпочитаете вручную редактировать /etc/resolv.conf, вы можете сделать это, удалив его (это фактически символическая ссылка), а затем создайте новый простой файл с нужным вами контентом. Утилита resolvconf записывает только файл /run/resolvconf/resolv.conf.
Примечание. Этот ответ был для другой, предшествующей версии вопроса, с фокусом только на предварительном ожидании желаемого сервера имен.
Это работает до 12.04:
Измените /etc/dhcp3/dhclient.conf и добавьте: prepend domain-name-servers 127.0.0.1;
(На самом деле эта строка уже присутствует, все, что вам нужно сделать, это не комментировать ее.)
resolvconf бесполезен. Я на сервере Linux, и мой IP-адрес является статическим, а мои DNS-серверы являются статическими. Мне не нужно resolvconf или NetworkManager.
Сохранение простоты - это моя политика при работе на сервере.
Итак, я сделал aptitude purge resolvconf и вручную удостоверился, что /etc/resolv.conf не является IP-адресом ] и просто создал статический файл. На всякий случай, когда программа пытается изменить файл, я сделал chattr +i (неизменяемый) на /etc/resolv.conf в качестве меры предосторожности.
Большинство из вышеперечисленных предполагает, что у вас нетронутая система, но реальность часто такова, что вы устанавливаете разные клиенты dhcp, отключили диспетчер сети в некоторой предыдущей версии Ubuntu и т. д. Возможно, было бы полезно знать следующее. Я некоторое время использую dnsmasq, но деинсталлировал его. В настоящее время моя система имеет следующее содержимое /etc/resolv.conf (которое является символической ссылкой на /run/resolvconf/resolv.conf в моей системе):
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
Неважно, как часто я запускаю sudo resolvconf -u или [ f8], он не обновил сервер имен тем, которые я установил в NetworkManager. Информация, которую resolvconf использует из NetworkManager:
cat /run/resolvconf/interface/NetworkManager
nameserver 8.8.4.4
nameserver 8.8.8.8
Однако оказывается, что если в этой папке имеется несколько файлов, этот файл может вообще не использоваться. Недопустимый файл был удалён при деинсталляции dnsmasq:
cat /run/resolvconf/interface/lo.dnsmasq
nameserver 127.0.0.1
После удаления этого файла (и после этого sudo resolvconf -u) были решены проблемы с dns:
cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 8.8.8.8
Надеюсь, это поможет другим с отладкой (сложным взаимодействием между всеми этими различными сетевыми инструментами). Если вы используете resolvconf, обязательно запустите ls /run/resolvconf/interfaces, чтобы увидеть, что там.
Вы можете отредактировать соединение «AUTO ETH0» или другое имя, которое вы используете для подключения в NM. Вы можете сделать это, щелкнув правой кнопкой мыши по NM и выбрав «Edit Connections ...». На вкладке IPv4 вы можете выбрать только «Автоматические (DHCP) адреса», так как «Метод» и NM позволят вам устанавливать адрес сервера имен вручную, даже адреса передаются по DHCP.
Я просто удалил ссылку в /etc/resolv.conf и создал регулярный файл с адресами серверов имен. Он работает, и я не вижу причин использовать эту довольно странную конструкцию, которую создали разработчики Ubuntu.
Я исправил это, изменив порядок источников. Я переместил источник dns до mdns в /etc/nsswitch.conf:
hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4
Вы можете сохранить свои настройки и по-прежнему использовать локальный кеширующий сервер таким образом.
Как насчет:
sudo dpkg-reconfigure resolvconfДо этого используйте Network Manager для изменения адреса DNS и изменения метода на
sudo dpkg-reconfigure resolvconf
Автоматический (DHPC) адрес только
Добавление моего бита в уже длинный список, вот еще один способ (проверен 12.04):
Измените /run/resolvconf/interface/NetworkManager в соответствии с вашими потребностями. Вот пример:
search foobar.com example.com
nameserver 192.168.1.1
Затем, как указано для большинства других примеров, сделайте sudo resolvconf -u. Теперь вы найдете свой resolv.conf следующим образом:
nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com
Мне все еще не нравится, как это реализовано сейчас (кажется, Ubuntu нуждается в службе для каждого foo, который он делает), и предпочел бы plain resolv.conf наверняка. Но этот подход, кажется, лучший компромисс для меня до сих пор. Добавленный «localhost-NS» не должен сильно задевать.
Это очень популярный вопрос с набором стандартных возможных ответов, все из которых, IMO, довольно хаки. У меня всегда были проблемы с Ubuntu, чтобы уважать настройки DNS, которые я настроил в NetworkManager - в частности, статические статические DNS-серверы с «Автоматическими (DHCP) адресами» - и сегодня я наконец понял, что было НАСТОЯТЕЛЬНО НЕПРАВИЛЬНО. [ ! d0]
Проблема заключается в взаимодействии между resolvconf и NetworkManager. У файла resolvconf этот файл называется /etc/resolvconf/interface-order. По крайней мере, в моих системах NetworkManager вообще не находится в этом файле (за исключением того, что в конце он закрыт * wild card). Итак, что происходит, последний отчет dhclient для resolvconf имеет приоритет над тем, что должен сказать NetworkManager.
Таким образом, по крайней мере в моем случае, фактический ответ заключался в том, чтобы добавить
NetworkManager
[d4 ] на вершине /etc/resolvconf/interface-order или рядом с ним. (Да, я знаю, что многие люди просто говорят «удалить resolvconf», что мне кажется самой плохой идеей. Но более того , по крайней мере, хитрый и xenial считают resvconf важной частью системы [т. е. ubuntu-minimum зависит от нее], поэтому было бы сложно поддерживать вашу систему в согласованном обновленном состоянии без resolvconf.)
[d6 ] По запросу я могу предоставить более подробную информацию о том, как я это понял. В двух словах я заменил исполняемый файл resolvconf оболочкой оболочки вокруг нее, которая сбрасывала свои аргументы, ввод, вывод и stderr в файлы; и добавил set -x в скрипты обновления resolvconf.Другой способ - определить dock-серверы docker для определенных серверов:
/etc/docker/daemon.json
Если у вас нет такого файла, просто создайте его:
{
"dns": ["10.0.0.2", "8.8.8.8"]
}
Источник: https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
Также см .: https://robinwinslow.uk/2016/06/23/ FIX-докер-сети-DNS /
Чтобы изменить DNS, следуйте инструкциям в: https://developers.google.com/speed/public-dns/docs/using
Перейти в сеть Выберите соединение, для которого вы хотите настроить DNS. Чтобы изменить настройки для беспроводного соединения, выберите вкладку «Беспроводная связь», затем выберите соответствующую беспроводную сеть. Нажмите стрелку (справа), а в появившемся окне выберите вкладку Параметры IPv4 или вкладка IPv6. Если выбранный метод является автоматическим (DHCP), откройте раскрывающийся список и выберите вместо него только адреса (DHCP). Если метод установлен на что-то еще, не меняйте его. В поле DNS-серверов введите IP-адреса DNS, разделенные запятой