Если вы проводите большую часть времени за терминалом, вы можете подумать о том, чтобы персонализировать его внешний вид, изменив файлы конфигурации. Если вы заметили, что в Linux есть два файла конфигурации оболочки bash, один – «.bashrc», а второй – «bash_profile» или «.profile».
Эти файлы скрыты и не могут быть отображены с использованием только «ls»; поэтому используйте «ls -a» в терминале для просмотра этих файлов.
$ ls -a
В Ubuntu есть файл «.profile» вместо «.bash_profile», вы можете использовать файл «.profile» или создать «.bash_profile». После того, как вы создадите файл «.bash_profile», оболочка перестанет читать «.profile».
Основная цель этой публикации – изучить эти два файла и развеять сомнения относительно них. Итак, давайте покопаемся и узнаем основные различия между этими файлами. Но прежде чем обсуждать файлы конфигурации, сначала мы должны понять различие различных интерфейсов оболочки, потому что одновременно могут быть открыты два или более интерфейсов оболочки.
Интерактивная оболочка ожидает от пользователя некоторой интерактивности, например, получения команд с клавиатуры, в то время как неинтерактивная оболочка не ожидает какого-либо ввода от пользователя. Затем идет оболочка «интерактивный вход» и «интерактивные оболочки без входа». Когда мы открываем терминал, мы получаем «интерактивную оболочку входа», которая просматривает файлы запуска. Однако, когда мы открываем оболочку из уже открытой оболочки, эта оболочка будет называться оболочкой «интерактивно без входа в систему» и читает только файл «.bashrc».
Когда мы запускаем терминал «интерактивный вход», первым ищется файл «/etc/profile». Порядок чтения файла показан на следующем изображении:
После этого он ищет другие файлы, показанные на изображении выше, и выполняет команду из файла, который находит первым. Файл «/etc/profile» устанавливает среду для всех пользователей, затем просматривает «.bash_profile» и устанавливает среду текущей оболочки. Если «bash_profile» отсутствует, он будет искать файлы «bash_login» или «.profile». После запуска «интерактивного терминала без входа в систему» единственный файл, который он читает, – это «.bashrc».
Файл «.bash_profile» отвечает за настройку среды с использованием переменных среды, в которых хранится информация о текстовом редакторе, настройках макета и т. д. Он выполняется только один раз, когда вы входите в систему на своем компьютере. В то время как «.bashrc» содержит команды, псевдонимы, функции bash и запускается, когда вы открываете терминал в системе, которая уже вошла в систему.
В большинстве дистрибутивов вместо «.bash_profile» есть «.profile»; все оболочки читают первый, а второй – только bash.
Shell требует базовой конфигурации при запуске в настройку среды. «.Bash_profile» будет выполняться, когда вы входите в систему на своем компьютере для настройки среды оболочки, тогда как «.bashrc» будет выполняться, когда вы открываете терминал, а также выполняется, когда вы открываете новый экземпляр терминала. В этом посте мы узнали о ключевых различиях и важности этих двух файлов конфигурации.