.bashrc
- это сценарий оболочки , который Bash запускается всякий раз, когда он запускается в интерактивном режиме. Он инициализирует интерактивный сеанс оболочки. Вы можете поместить в этот файл любую команду, которую вы можете ввести в командной строке.
Здесь вы помещаете команды для настройки оболочки для использования в вашей конкретной среде или для настройки вещей в соответствии с вашими предпочтениями. Обычно в .bashrc
помещают псевдонимы , которые должны быть всегда доступны.
.bashrc
запускается каждый запуск интерактивной оболочки. Если вы скажете:
$ bash ; bash ; bash
, а затем трижды нажмете Ctrl-D , .bashrc
запустится три раза. Но если вы вместо этого скажете:
$ bash -c exit ; bash -c exit ; bash -c exit
, тогда .bashrc
не будет запускаться вообще, поскольку -c
делает вызов Bash не интерактивным. То же самое верно и при запуске сценария оболочки из файла.
Контраст .bash_profile
и .profile
, которые запускаются только при запуске новой оболочки входа в систему. ( bash -l
) Вы выбираете, будет ли команда идти в .bashrc
vs .bash_profile
в зависимости от того, хотите ли вы, чтобы он запускался один раз или при каждом запуске интерактивной оболочки.
В качестве контрпримера к псевдонимам, которые я предпочитаю помещать в .bashrc
, вы хотите внести изменения в PATH
в .bash_profile
, поскольку эти изменения обычно не являются идемпотентными :
export PATH="$PATH:/some/addition"
Если вместо этого вы поместите это в .bashrc
, каждый раз, когда вы запускаете интерактивную под-оболочку, : / some / add
снова будет прикреплен к концу PATH
, создавая дополнительную работу для оболочки, если вы ошибетесь при вводе команды.
Вы получаете новую интерактивную оболочку Bash всякий раз, когда выполняете оболочку из vi
, например, с помощью : sh
.
Часть search fios-router.home
— это последний разрешимый домен, то есть ваш маршрутизатор (iirc Verizon ).
127.0.0.53 — это IP-адрес сервера имен, поэтому ваше предположение верно.
Да, первая часть указывает, что ваша система ожидает, что DNS-сервер будет прослушивать localhost
, в данном случае конкретно 127.0.0.53
.
Вторая часть представляет собой путь поиска, который добавляется ко всем поискам, не заканчивающимся точкой (.
). Если вы запустите, например, ssh blah
, DNS сначала попытается найти blah
, а затем попытается найти blah.fios-router.home
.
/etc/resolv.conf
— это основной файл конфигурации для DNS-клиента , поэтому его наличие не означает, что вы используете DNS-сервер .
Его основная цель — перечислить IP-адреса DNS-серверов, в вашем случае:
nameserver 127.0.0.53
nameserver
сообщают хосту, какой DNS-сервер использовать. domain
(, если она присутствует ), сообщает системе, в каком домене она находится. Это позволяет обращаться к ней по имени хоста. (Дополнение в ответ на комментарий :Имя хоста — это имя компьютера в сети. Во многих системах вы можете увидеть имя хоста в командной строке; если нет, вы можете найти его с помощью команды hostname
.)search
(, если она присутствует ), позволит компьютерам из разных доменов обращаться друг к другу по соответствующим именам хостов. В настоящее время файл обычно создается NetworkManager
(, например, в моей системе файл начинается с комментария «Сгенерировано NetworkManager» )или systemd-resolved
.
is a system service that provides network name resolution to local applications. It implements a caching and validating DNS/DNSSEC stub resolver, as well as an LLMNR and MulticastDNS resolver and responder.
Также, согласно systemd -справочной странице , адрес 127.0.0.53
является «локальным прослушивателем-заглушкой DNS». На связанных сайтах Stack Exchange были вопросы о том, как это изменить, поскольку файл /etc/resolv.conf
создается автоматически. См., например,
resolv.conf
является частью стандартного способа преобразования имени хоста в IP-адрес. Это часть библиотеки распознавателя.
Существуют разные способы разрешения имени хоста:
/etc/hosts
)Последовательность их использования приведена в /etc/nsswitch.conf
. Обычно это говорит
hosts: files dns
, что означает, что библиотека распознавателя сначала ищет в /etc/hosts
и, если она не может найти ее там, будет использовать DNS.
Теперь DNS будет запрашивать DNS-сервер. Какой из них определяется /etc/resolv.conf
. Кроме того, существует ряд дополнительных параметров, которые можно использовать для помощи в разрешении DNS, из которыхsearch
(Сначала попробуйте этот домен для хоста ), вероятно, чаще всего используется.