Simplemente agregue a su /etc/profile la siguiente línea, luego cierre la sesión y vuelva a iniciarla para que los cambios surtan efecto.
export EDITOR=vim
Волшебство заключается в открытии /etc/hosts
файла и его чтении:
strace -e trace=file wget -O /dev/null http://www.google.com http://www.facebook.com http://unix.stackexchange.com 2>&1 | grep hosts
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 5
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = 4
Функция getaddrinfo(3)
, которая является единственным стандартным интерфейсом разрешения имен, будет просто открывать и читать /etc/hosts
каждый раз, когда она вызывается для разрешения имени хоста.
Более сложные приложения, которые не используют стандарт getaddrinfo(3)
, но тем или иным образом добавляют /etc/hosts
к набору (, например. dnsmasq
DNS-сервер )может использовать inotify(7)
для отслеживания изменений в файлах /etc/hosts
и повторно -читать их только в случае необходимости.
Браузеры и другие подобные приложения этого не делают. Они будут открывать и читать /etc/hosts
каждый раз, когда им нужно разрешить имя хоста, даже если они не используют преобразователь libc напрямую, а копируют его работу другими способами.
Решением имен, среди прочего, управляет /etc/nsswitch.conf
. Вот отрывок:
passwd: files sss
shadow: files sss
group: files sss
hosts: files dns myhostname
(...)
Обратите внимание на строку hosts
. В нем говорится :«При разрешении имени хоста сначала прочитайте файл /etc/hosts
для поиска имени хоста, если он не найден, запустите DNS-запрос, если он не найден, попробуйте локально настроенное системное имя хоста».
Так вот почему это так быстро. Обратите внимание, что это не зависит от сетевых служб на машине, поэтому нет службы, которую нужно перезапустить или перезагрузить.