Linux что такое bash profile

Стартовые файлы оболочки Bash

Программа оболочка /bin/bash (в дальнейшем называемая просто «оболочка») использует набор стартовых файлов для помощи создания окружения.Каждый файл имеет специфическое использование. Файлы в директории /etc обычно предоставляют глобальные установки. Если аналогичные файлы присутствуют в вашей домашней директории, то они могут заменить глобальные установки.

Интерактивнвя регистрация оболочки запускается после успешного входа, используя /bin/login, который читает файл /etc/passwd. Эта оболочка во время загрузки читает /etc/profile и его персональный эквивалент

Интерактивнвя нерегистрированная оболочка запускается из командной строки (т.е. [prompt]$ /bin/bash ) или командой /bin/su . Интерактивнвя нерегистрированная оболочка так же запускается вместе с программами терминалов, такими как xterm или konsole в графической среде. Этот тип оболочек копирует основное окружение и затем читает пользовательский файл

/.bashrc для дополнительных инструкций конфигурации.

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

/.bash_logout не используется для вызова оболочки. Он читается и выполняется при появлении пользователя после интерактивной регистрации.

К стандартным файлам относится /etc/bashrc, вызываемый из пользовательского

/.bashrc для системной инициализации нерегистрированных оболочек.

Для большей информации смотрите info bash — Ноды: Стартовые файлы Bash и интерактивные оболочки.

/etc/profile

Здесь приведен базовый /etc/profile. Этот файл запускается для установки некоторых помогающих функций и базовых параметров. Он описывает некоторые параметры истории команд bash и в целях безопасности убирает поддержку постоянного файла истории для пользователя roor. Он так же устанавливает вид системного приглашения. Затем он вызывает маленький скрипт в директории /etc/profile.d для предоставления большей инициализации.

Для большей информации по escape-последовательностям, которые вы можете использовать для вашего системного приглашения (т.е. переменной окружения PS1), обратитесь к info bash — Нода: Печать системного приглашения.

Директория /etc/profile.d

Теперь создадим директорию /etc/profile.d, в которой размещены индивидуальные скрипты инициализации.

/etc/profile.d/dircolors.sh

Этот скрипт использует файлы

/.dircolors и /etc/dircolors для управления цветом файлов в листинге директории. Они раскрашивают вывод таких команд, как ls —color . Разъяснение по инициализации этих файлов находится в конце этого раздела.

/etc/profile.d/extrapaths.sh

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

/etc/profile.d/readline.sh

Этот скрипт настраивает файл конфигурации inputrc. Если пользователь не имеет индивидуальных установок, он использует глобальный файл.

/etc/profile.d/tinker-term.sh

Некоторые приложения требуют описания установки TERM для поддержки цвета.

/etc/profile.d/umask.sh

Установка значения umask важна для безопасности. Здесь права доступа для записи группы по умолчанию выключены для пользователей системы и когда имена пользователя и группы не совпадают.

/etc/profile.d/X.sh

Если X установлены, переменные PATH и PKG_CONFIG_PATH так же обновляются.

/etc/profile.d/xterm-titlebars.sh

Этот скрипт показывает пример другого пути установки системного приглашения. Обычная переменная PS1 дополнена PROMPT_COMMAND. Если переменная установлена, значение PROMPT_COMMAND выполняется как команда перед выводом каждого первичного приглашения.

/etc/profile.d/i18n.sh

Этот скрипт показывает установку некоторых переменных окружения, необходимых для поддержки различных языков. Правильная установка этих переменных даст вам:

вывод программ, транслированный на ваш язык

правильную классификацию символов в буквы, цифры и другие классы – это необходимо для Bash для работы в не английских локалях

правильный алфавитный порядок сортировки для для вашей страны

правильный размер бумажной страницы

правильный фомат денег, значения времени и даты

Замените [ll] ниже на двух-буквенный код для требуемого языка (т.е. “ ru ”) и [CC] на на двух-буквенный код страны (т.е. “ RU ”). Так же может быть необходимо указание (и это актуальная и предпочтительная форма) кодировки символов (т.е. “ koi8-r ”) после точки (так, что в результате будет “ ru_RU.koi8-r ”). Используйте следующую команду для большей информации:

Читайте также:  Windows powershell connect to remote server

Список всех локалей, поддерживаемых Glibc может быть получен запуском следующей команды:

Как только подходящие параметры локали будут определены, создайте файл /etc/profile.d/i18n.sh:

Переменная LC_ALL устанавливает одинаковое значение для всех категорий локализации. Для лучшего контроля вы можете предпочесть установку значений индивидуально для всех категорий, перечисленных в выводе команды locale .

Переменная G_FILENAME_ENCODING говорит таким приложениям, как Glib и GTK + , что имена файлов находятся по умолчанию в кодировке локали, а не в UTF -8, как предполагалось по умолчанию.

Другие значения инициализации

Другие инициализации могут быть легко добавлены в profile добавлением дополнительных скриптов в директорию /etc/profile.d.

/etc/bashrc

Это базовый /etc/bashrc. Коментарии в файле должны все вам объяснить.

/.bash_profile. Если вы хотите, чтобы каждый новый пользователь имел этот файл автоматически, просто измените вывод команды на /etc/skel/.bash_profile и проверьте права доступа после выполнения команды. Затем вы можете скопировать /etc/skel/.bash_profile в домашние директории уже имеющихся пользователей, включаяя root, и установить соответствующего владельца и группу.

/.bashrc. Коментарии и инструкции по использованию /etc/skel для .bash_profile, описанного выше, применимы и здесь но с другим конечным именем файла.

Это пустой файл

/.bash_logout, который может быть использован как временный. Заметьте, что базовый

/.bash_logout не включает команду clear. Это потому, что clear поддерживается в файле /etc/issue.

/etc/dircolors

Если вы хотите использовать возможности dircolors, то выполните следующую команду. Шаги по установке /etc/skel, описанные выше, так же могут быть использованы здесь для предоставления файла

/.dircolors при установке нового пользователя. Как раньше, просто измените имя выходного файла в следующей команде и установите права доступа, владельца и группу у созданных и/или скопированных фалов.

Если вы желаете настроить цвета, используемые для различных типов файлов, вы можете отредактировать файл /etc/dircolors. Инструкции по установке цветов находятся внутри файла.

И напоследок, Ian Macdonald написал превосходную колекцию советов и трюков для расширения окружения вашей оболочки. Вы можете прочитать их на http://www.caliban.org/bash/index.shtml .

Последнее обновление 2005-01-16 09:56:15 -0700

Источник

Фундаментальные основы Linux. Часть VII. Управление локальными учетными записями пользователей

Глава 28. Профили пользователей

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

Системный профиль

Как командная оболочка bash , так и командная оболочка ksh будет проверять существование файла /etc/profile и подключать его в случае существования.

При чтении данного файла вы можете обнаружить (как в дистрибутиве Debian, так и в дистрибутиве Red Hat Enterprise Linux), что именно его силами создается переменная окружения PATH (помимо других переменных окружения). Данный сценарий также может изменять значение переменной окружения PS1, устанавливать значение переменной окружения HOSTNAME и исполнять дополнительные сценарии, такие, как /etc/inputrc .

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

В том случае, если данный файл существует в домашней директории пользователя, командная оболочка bash осуществит его подключение. В дистрибутивах Debian 5/6/7 данного файла по умолчанию не существует.

/.bash_profile , который проверяет существование сценария

/.bashrc и осуществляет его подключение в случае существования. Также он добавляет путь к директории $HOME/bin к списку путей, хранящемуся в переменной окружения $PATH.

Если сценария .bash_profile не существует, командная оболочка bash будет выполнять проверку существования сценария

/.bash_login и его подключение в случае существования.

Данного файла не существует по умолчанию ни в дистрибутиве Debian, ни в дистрибутиве Red Hat.

Если в домашней директории пользователя не существует ни сценария

/.bash_profile , ни сценария

/bash_login , командная оболочка bash будет проверять наличие сценария

/.profile и исполнять его. По умолчанию данного сценария не существует в дистрибутиве Red Hat.

/.bashrc и добавлять путь к директории $HOME/bin в список директорий, хранящийся в переменной окружения $PATH.

По умолчанию данного файла не существует в дистрибутивах RHEL/CentOS.

/.bashrc обычно подключается средствами других сценариев. Давайте рассмотрим задачи, решаемые этим сценарием по умолчанию.

/.bashrc , проверяющий существование сценария /etc/bashrc и подключающий его в случае существования. Также он позволяет объявлять специальные псевдонимы команд и функции.

Читайте также:  Работа с окнами windows презентация

При завершении работы командная оболочка bash может исполнять сценарий

Обзор сценариев дистрибутива Debian

Ниже приведена таблица для дистрибутива Debian с указанием моментов запуска каждого из описанных стартовых сценариев командной оболочки bash.

Таблица 28.1. Пользовательское окружение дистрибутива Debian

/.bashrc Не запускается Запускается Запускается Запускается

/.profile Не запускается Запускается Запускается Запускается /etc/profile Не запускается Запускается Запускается Запускается /etc/bash.bashrc Запускается Не запускается Не запускается Запускается

Обзор сценариев дистрибутива RHEL5

Ниже приведена таблица для дистрибутива Red Hat Entrprise Linux 5 с указанием моментов запуска каждого из описанных стартовых сценариев командной оболочки bash.

Таблица 28.2. Пользовательское окружение дистрибутива Red Hat

/.bashrc Запускается Запускается Запускается Запускается

/.bash_profile Не запускается Запускается Запускается Запускается /etc/profile Не запускается Запускается Запускается Запускается /etc/bashrc Запускается Запускается Запускается Запускается

Практическое задание: профили пользователей

1. Выведите список всех файлов профиля пользователя в вашей системе.

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

3. Объявите уникальную переменную, псевдоним команды и функцию в каждом из этих файлов.

4. Воспользуйтесь различными способами получения командной оболочки (su, su -, ssh, tmux, gnome-terminal, Ctrl-Alt-F1, . ) и проверьте, какие из объявленных вами переменных, псевдонимов команд и функций присутствуют в вашем пользовательском окружении.

5. Можете ли вы сходу определить последовательность исполнения обнаруженных стартовых сценариев?

6. Если работа приложения зависит от значения объявленной в файле $HOME/.profile переменной, имеет ли значение существование файла $HOME/.bash_profile или нет?

Корректная процедура выполнения практического задания: профили пользователей

1. Выведите список всех файлов профиля пользователя в вашей системе.

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

3. Объявите уникальную переменную, псевдоним команды и функцию в каждом из этих файлов.

4. Воспользуйтесь различными способами получения командной оболочки (su, su -, ssh, tmux, gnome-terminal, Ctrl-Alt-F1, . ) и проверьте, какие из объявленных вами переменных, псевдонимов команд и функций присутствуют в вашем пользовательском окружении.

5. Можете ли вы сходу определить последовательность исполнения обнаруженных стартовых сценариев?

Нет, так как при совпадении имен псевдонимов команд, функций и переменных производится их перезапись.

6. Если работа приложения зависит от значения объявленной в файле $HOME/.profile переменной, имеет ли значение существование файла $HOME/.bash_profile или нет?

Да, имеет. (Обратитесь к странице руководства man bash /INVOCATION)

Источник

Linux что такое bash profile

Когда оболочка вызывается интерактивно с использованием параметра —login или когда она вызывается с помощью команды sh, командная оболочка считывает инструкции из файла /etc/profile . В этом файле обычно устанавливаются значения переменных PATH , USER , MAIL , HOSTNAME и HISTSIZE .

В некоторых системах в файле /etc/profile задается значение umask; в других системах в этом файле находятся ссылки на другие конфигурационные файлы, например:

  • на /etc/inputrc , общесистемный файл инициализации программы Readline, в котором можно настраивать реакцию клавиатуры;
  • на директорий /etc/profile.d , в котором находятся конфигурационные файлы, определяющие общую системную настройку некоторых конкретных программ.

В этом файле должны быть все настройки, которые вы хотите применить к пользовательской среде. Файл может выглядеть следующим образом:

В этом конфигурационном файле устанавливаются значения для некоторых основных переменных среды окружения, а также некоторые переменные, которые необходимы пользователю, запускающему в своем веб браузере поддержку языка Java и/или использующие Java-приложения. Смотрите раздел «Переменные».

Дополнительную информацию об условном операторе if, используемом в этом файле, смотрите в главе 7 «Условные инструкции»; в главе 9 «Повторяющиеся задания» обсуждаются циклы, использующие конструкцию for.

В исходных кодах Bash есть примеры файлов profile , предназначенные для общего или индивидуального использования. Но для того, чтобы эти файлы и пример файла, приведенный выше, работали в вашей среде, их надо модифицировать!

/etc/bashrc

В системах, имеющих несколько типов командных оболочек, настройки, касающиеся Bash, лучше поместить в этот файл, поскольку файл /etc/profile читается также и другими оболочками, например, командной оболочкой Bourne. С помощью разделения конфигурационных файлов, предназначенных для различных типов оболочек, можно предотвратить ошибки, генерируемые оболочками, не понимающими синтаксис Bash. В таких случаях пользовательский файл

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

Читайте также:  Swsetup что это за папка windows

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

В исходных кодах есть примеры файла bashrc , либо вы можете найти его копию в /usr/share/doc/bash-2.05b/startup-files . Ниже приведена часть файла bashrc , которая поставляется вместе с документацией по Bash:

Кроме алиасов общего назначения, в нем определяются алиасы, благодаря которым можно выполнять команды даже в тех случаях, когда при наборе команд делаются опечатки. Мы будем обсуждать алиасы в разделе «Создание и удаление алиасов». В этом файле есть функция pskill; функции будут подробно изучены в главе 11 «Функции».

Конфигурационные файлы индивидуальных пользователей

Первоначально у вас в вашем домашнем директории этих файлов может не быть, создайте их в случае необходимости.

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

Этот пользователь сконфигурировал использование символа Backspace для входа в другие операционные системы. Кроме того, выполняется чтение файлов .bashrc и .bash_login .

В этом файле содержатся конкретные настройки, которые обычно активируются только когда вы войдете в систему. В этом примере мы используем файл, в котором конфигурируется значение переменной umask и при входе систему показывается список подключенных пользователей. Пользователю также выдается календарь на текущий месяц:

В случае, когда отсутствует файл

/.bash_profile , будет читаться этот файл.

Если отсутствуют файлы

/.bash_login , будет читаться файл

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

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

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

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

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

Алиасы рассматриваются в разделе «Алиасы».

В этом файле находятся инструкции, выполняемые при выходе из системы. В этом примере при выходе из системы очищается окно терминала. Это удобно при дистанционных подключениях, когда после завершения подключения окно терминала очищается.

Изменение конфигурационных файлов командной оболочки

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

Рис.3.1. Различные строки приглашения для различных пользователей

Большинство скриптов выполняются в приватной среде окружения: переменные, не наследуются дочерними процессами, если они не экспортированы родительской оболочкой. Использование файла, в котором указываются команды оболочки, являются тем способом, с помощью которого вы можете применить изменения к своей собственной среде исполнения и настроить переменные для текущей командной оболочки.

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

Обратите внимание, что source resourcefile это то же самое, что и .Resourcefile .

Если вы заблудились во всех этих конфигурационных файлах и обнаружили, что столкнулись с настройками, которые вам непонятны, воспользуйтесь инструкциями echo точно также, как и при отладке скриптов; смотрите раздел «Отладка скрипта по частям». Вы можете добавлять инструкции, например, следующим образом:

Источник

Оцените статью
У меня нет этих файлов?!