Linux profile or bashrc

Linux profile or bashrc

Недавно я столкнулся со следующей проблемой: приложение не сохраняло настройку umask , заданную в профиле root-пользователя, или в файле /etc/profile . Немного разобравшись в вопросе, я понял, что приложение использует только ту настройку umask , которая задана в /etc/bashrc , не принимая даже те значения, которые являются его же собственными сценариями запуска.

Немного изучив вопрос, я понял, какую функцию выполняют эти файлы, чем они различаются и как они выполняются. Такой вопрос поднимается не часто, поэтому я подумал, что будет полезно рассказать о нем вам.

Для чего нужен файл /etc/profile?

Если вы используете Linux, то вам наверняка знакомы файлы .profile или .bash_profile , размещенные в вашем домашнем каталоге. Эти файлы используются для задания элементов окружения для оболочки пользователя. Таких элементов, как, например, umask , и таких переменных, как PS1 или PATH .

Файл /etc/profile не очень-то отличается от этих файлов. Он используется для задания общесистемных переменных окружения в оболочках пользователя. Иногда это те же переменные, что и в .bash_profile , но этот файл используется для задания первоначальных PATH или PS1 для всех пользователей оболочек системы.

/etc/profile.d

Помимо задания элементов окружения, файл /etc/profile выполняет сценарии внутри /etc/profile.d/*.sh . Если вы хотите задать свои собственные переменные окружения для всей системы, вам следует поместить свою конфигурацию в сценарий оболочки в /etc/profile.d .

Для чего нужен файл /etc/bashrc?

Помимо .bash_profile , в своем домашнем каталоге вы также часто будете встречать файл .bashrc . Этот файл предназначен для задания псевдонимов команд и функций, используемых пользователями оболочки bash.

Аналогично тому, как /etc/profile является общесистемной версией .bash_profile , файл /etc/bashrc в Red Hat и файл /etc/bash.bashrc в Ubuntu являются общесистемной версией .bashrc .

Стоит отметить, что в Red Hat реализация /etc/bashrc также выполняет сценариий оболочки в /etc/profile.d , но только если пользовательская оболочка является Интерактивной оболочкой (т.е. Login Shell (стартовой оболочкой))

Когда используются эти файлы?

То, когда выполняется каждый из этих файлов, зависит от типа выполняемого логина. В Linux имеется два типа стартовых оболочек (login shells) — Интерактивные оболочки и Неинтерактивные оболочки. Интерактивная оболочка используется, когда пользователь может взаимодействовать с оболочкой, т.е., например, типичное приглашение командной строки bash. Неинтерактивная оболочка используется, когда пользователь не может взаимодействовать с оболочкой, т.е. выполнение bash-сценариев.

Разница проста: файл /etc/profile выполняется только для интерактивных оболочек, а файл /etc/bashrc – как для интерактивных, так и для неинтерактивных. Вообще-то, в Ubuntu файл /etc/profile вызывает файл /etc/bashrc напрямую.

Интерактивная оболочка и неинтерактивная оболочка: Сравнение

Чтобы на примере сравнить интерактивную и неинтерактивную оболочки, я добавлю переменную в оба файла /etc/profile и /etc/bash.bashrc в своей Ubuntu.

/etc/profile

/etc/bash.bashrc

Интерактивная оболочка

Ниже приведен пример интерактивной оболочки. В этом случае были выполнены оба файла /etc/profile и /etc/bash.bashrc .

Неинтерактивная оболочка

В этом примере мы выполняем команду через оболочку SSH, которая является неинтерактивной; поскольку это неинтерактивная оболочка, выполняется только файл /etc/bash.bashrc .

Читайте также:  Mac os нет строки меню

Заключение

В моем случае приложение не признает значение umask , заданное в файле /etc/profile , но признает значение в файле /etc/bashrc . Это говорит о том, что подпроцесс начинается как неинтерактивная оболочка. Поскольку предлагаемый способ изменения переменных окружения заключается в добавлении сценария оболочки в /etc/profile.d , в моем случае лучше задать значение umask в файле /etc/bashrc .

Источник

.bashrc против .bash_profile

Если вы проводите много времени в командной строке, скорее всего, вы захотите настроить среду оболочки. Это может означать создание псевдонимов, добавление нового каталога в $PATH или изменение внешнего вида приглашения оболочки.

Возможно, вы встречали учебные пособия, в которых говорится, что ваша конфигурация должна быть помещена в .bashrc , .bash_profile или в другой файл конфигурации, который читается и выполняется оболочкой bash.

В этой статье мы поговорим о файлах запуска Bash и разнице между файлами .bashrc и .bash_profile .

Интерактивный вход и оболочка без входа

При вызове Bash читает и выполняет команды из набора файлов запуска. Какие файлы читаются, зависит от того, запускается ли оболочка как интерактивная оболочка для входа или как оболочка без входа.

Оболочка может быть интерактивной или неинтерактивной.

Проще говоря, интерактивная оболочка — это оболочка, которая читает и записывает в пользовательский терминал, в то время как неинтерактивная оболочка — это оболочка, которая не связана с терминалом, например, при выполнении сценария.

Интерактивная оболочка может быть оболочкой для входа или без входа.

Оболочка входа в систему вызывается, когда пользователь входит в терминал удаленно через ssh или локально, или когда Bash запускается с параметром —login . Интерактивная оболочка без входа в систему вызывается из оболочки входа, например, при вводе bash в приглашении оболочки или при открытии новой вкладки терминала Gnome.

Файлы запуска Bash

При запуске в качестве интерактивной оболочки входа в систему Bash ищет файл /etc/profile , и, если файл существует , запускает команды, перечисленные в файле. Затем Bash ищет файлы

/.profile в указанном порядке и выполняет команды из первого найденного читаемого файла.

Когда Bash вызывается как интерактивная оболочка без входа в систему, он читает и выполняет команды из

/.bashrc , если этот файл существует и доступен для чтения.

Разница между .bashrc и .bash_profile

.bash_profile читается и выполняется, когда Bash вызывается как интерактивная оболочка входа в систему, а .bashrc выполняется для интерактивной оболочки без входа в систему.

Используйте .bash_profile для запуска команд, которые должны выполняться только один раз, например, для настройки $PATH среды $PATH .

Поместите команды, которые должны выполняться каждый раз при запуске новой оболочки, в файл .bashrc . Сюда входят ваши псевдонимы и функции , пользовательские подсказки, настройки истории и т. Д.

/.bash_profile содержит строки, подобные приведенным ниже, к исходному файлу .bashrc . Это означает, что каждый раз, когда вы входите в терминал, оба файла читаются и выполняются.

Большинство дистрибутивов Linux используют

/.profile читается всеми оболочками, а файл

/.bash_profile только Bash.

Если какой-либо файл запуска отсутствует в вашей системе, вы можете его создать .

Выводы

.bash_profile и .bashrc — это файлы, содержащие команды оболочки, которые запускаются при вызове Bash. .bash_profile читается и выполняется в интерактивных оболочках входа в систему, а .bashrc — в оболочках без входа.

Обратитесь к руководству по Bash для получения дополнительной информации о файлах запуска Bash .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Разница между .bashrc, .profile, .bash_profile, …?

/ .bash_profile загружается при входе в систему. Он читается только один раз.

Читайте также:  Set windows size html

/ .bashrc загружается каждый раз при запуске оболочки (например, при запуске терминала), но не загружается при первом входе в систему.

Примечание. Некоторые терминалы (например, gnome-terminal) имеют возможность «запускать команду в качестве оболочки входа», то есть, если она включена, она сначала загрузит файл

/ .profile), прежде чем запускать

Примечание. В Mac OS X приложение Terminal запускается как оболочка входа, поэтому он запускает файл

/ .bash_profile. Различные unixes имеют разную настройку.

Вот выдержка из man bash:

Также есть <.login, .profile, …>. Это в основном наследие, которое bash также может читать.

.login – это устаревший файл инициализации входа для исходной оболочки, оболочка Bourne «sh». BASH (Bourne-Again SHell) является в основном совместимой расширенной версией.

Во многих системах unix / bin / sh привязывается к / bin / bash.

В Ubuntu Linux, 2006, / bin / sh является символической ссылкой на / bin / dash. тире является новым. «Тире» меньше и быстрее, чем bash, для запуска сценариев запуска системы.

Файл .profile является устаревшим исходным файлом оболочки оболочки для оболочки Bourne «sh».
.csh – это файл init для оболочки csh. (в основном, оболочка с синтаксисом Си).
.tcshrc – это файл init для tcsh tcsh. (в основном, улучшенный csh)

Источник

В чем разница: .bashrc и bash_profile?

Главное меню » Ubuntu » В чем разница: .bashrc и bash_profile?

Эти файлы скрыты и не могут быть отображены с использованием только «ls»; поэтому используйте «ls -a» в терминале для просмотра этих файлов.

В Ubuntu есть файл «.profile» вместо «.bash_profile», вы можете использовать файл «.profile» или создать «.bash_profile». После того, как вы создадите файл «.bash_profile», оболочка перестанет читать «.profile».

Основная цель этой публикации – изучить эти два файла и развеять сомнения относительно них. Итак, давайте покопаемся и узнаем основные различия между этими файлами. Но прежде чем обсуждать файлы конфигурации, сначала мы должны понять различие различных интерфейсов оболочки, потому что одновременно могут быть открыты два или более интерфейсов оболочки.

В чем разница между интерактивной и неинтерактивной оболочками?

Интерактивная оболочка ожидает от пользователя некоторой интерактивности, например, получения команд с клавиатуры, в то время как неинтерактивная оболочка не ожидает какого-либо ввода от пользователя. Затем идет оболочка «интерактивный вход» и «интерактивные оболочки без входа». Когда мы открываем терминал, мы получаем «интерактивную оболочку входа», которая просматривает файлы запуска. Однако, когда мы открываем оболочку из уже открытой оболочки, эта оболочка будет называться оболочкой «интерактивно без входа в систему» ​​и читает только файл «.bashrc».

Что такое файлы запуска bash?

Когда мы запускаем терминал «интерактивный вход», первым ищется файл «/etc/profile». Порядок чтения файла показан на следующем изображении:

После этого он ищет другие файлы, показанные на изображении выше, и выполняет команду из файла, который находит первым. Файл «/etc/profile» устанавливает среду для всех пользователей, затем просматривает «.bash_profile» и устанавливает среду текущей оболочки. Если «bash_profile» отсутствует, он будет искать файлы «bash_login» или «.profile». После запуска «интерактивного терминала без входа в систему» ​​единственный файл, который он читает, – это «.bashrc».

В чем разница между файлами «.bash_profile» и «.bashrc»:

Файл «.bash_profile» отвечает за настройку среды с использованием переменных среды, в которых хранится информация о текстовом редакторе, настройках макета и т. д. Он выполняется только один раз, когда вы входите в систему на своем компьютере. В то время как «.bashrc» содержит команды, псевдонимы, функции bash и запускается, когда вы открываете терминал в системе, которая уже вошла в систему.

Читайте также:  Описание устройство папки windows

В большинстве дистрибутивов вместо «.bash_profile» есть «.profile»; все оболочки читают первый, а второй – только bash.

Заключение:

Shell требует базовой конфигурации при запуске в настройку среды. «.Bash_profile» будет выполняться, когда вы входите в систему на своем компьютере для настройки среды оболочки, тогда как «.bashrc» будет выполняться, когда вы открываете терминал, а также выполняется, когда вы открываете новый экземпляр терминала. В этом посте мы узнали о ключевых различиях и важности этих двух файлов конфигурации.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Загрузочные файлы в Bash. bashrc или .bash_profile

Главное меню » Linux » Загрузочные файлы в Bash. bashrc или .bash_profile

Возможно, вы сталкивались с некоторыми статьями, в которых говорится, что вы должны поместить вашу конфигурацию либо в .bashrc, .bash_profile либо в другой файл конфигурации, который читается и выполняется оболочкой bash.

В этой статье мы расскажем о загрузочных файлов в Bash, а разнице между файлами .bashrc и .bash_profile.

Интерактивная оболочка для входа и отказа от входа

При вызове Bash читает и выполняет команды из набора файлов запуска. То, какие файлы читаются, зависит от того, вызывается ли оболочка как интерактивная оболочка входа или отказа от входа в систему.

Оболочка может быть интерактивной или неинтерактивной.

Проще говоря, интерактивная оболочка – это оболочка, которая читает и пишет в терминал пользователя, в то время как неинтерактивная оболочка – это оболочка, которая не связана с терминалом, как при выполнении сценария.

Интерактивная оболочка может быть либо оболочкой для входа, либо для входа в систему.

Оболочка входа в систему вызывается, когда пользователь входит в терминал удаленно через ssh или локально, или когда Bash запускается с опцией –login. Интерактивная оболочка без входа в систему вызывается из оболочки входа в систему, например, при вводе bash в командной строке или при открытии новой вкладки терминала Gnome.

Загрузочные файлы Bash

При вызове в качестве интерактивной оболочки входа в систему, Bash ищет файл /etc/profile и, если файл существует, запускает команды, указанные в файле. Тогда Bash ищет файлы

/.profile, в указанном порядке, и команды выполняет с первого найденного читаемого файла.

Когда Bash вызывается как интерактивная оболочка, не входящая в систему, он читает и выполняет команды

/.bashrc, если этот файл существует и доступен для чтения.

Разница между .bashrc и .bash_profile

.bash_profile читается и выполняется, когда Bash вызывается как интерактивная оболочка входа в систему, тогда .bashrc выполняется для интерактивной оболочки без входа в систему.

Используйте .bash_profile для запуска команд, которые должны запускаться только один раз, например, для настройки переменной среды $PATH.

Поместите в файл .bashrc команды, которые должны запускаться при каждом запуске новой оболочки. Сюда входят ваши псевдонимы и функции, настраиваемые приглашения, настройки истории и т. д.

/.bash_profile содержит такие строки, как ниже этого исходного файла .bashrc. Это означает, что каждый раз, когда вы входите в терминал, оба файла читаются и исполняются.

Большинство дистрибутивов Linux используют

/.profile читается всеми оболочками, в то время как

/.bash_profile только Bash.

Если какой-либо файл запуска отсутствует в вашей системе, вы можете его создать.

Вывод

.bash_profile и .bashrc являются файлами, содержащими команды оболочки, которые запускаются при вызове Bash. .bash_profile читается и выполняется в интерактивных оболочках входа в систему, а в оболочках .bashrc без регистрации.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Оцените статью