Linux bashrc что это

Linux bashrc что это

Когда оболочка вызывается интерактивно с использованием параметра —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 с тем, чтобы включить его в процесс инициализации оболочки при входе в систему.

Вы также можете обнаружить, что в файле /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 точно также, как и при отладке скриптов; смотрите раздел «Отладка скрипта по частям». Вы можете добавлять инструкции, например, следующим образом:

Источник

Linux 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 .

Заключение

В моем случае приложение не признает значение 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 и как она работает?

Я нашел .bashrc файл и хочу узнать его назначение / назначение. Также как и когда это используется?

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

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

.bashrc запускается при каждом запуске интерактивной оболочки. Если вы говорите:

а затем ударил Ctrl-D три раза, .bashrc будет работать три раза. Но если вы скажете это вместо:

тогда .bashrc не будет работать вообще, так как -c делает вызов Bash неинтерактивным. То же самое верно, когда вы запускаете сценарий оболочки из файла.

Контраст .bash_profile и .profile которые запускаются только в начале новой оболочки входа в систему. ( bash -l ) Вы выбираете, будет ли команда идти .bashrc против, в .bash_profile зависимости от того, хотите ли вы запустить ее один раз или для каждого запуска интерактивной оболочки.

В качестве контрпримеров к псевдонимам, которые я предпочитаю использовать .bashrc , вместо этого вы хотите внести PATH коррективы .bash_profile , поскольку эти изменения обычно не являются идемпотентными :

Если вы добавите это .bashrc вместо этого, каждый раз, когда вы запускаете интерактивную вложенную оболочку, она :/some/addition снова будет привязана к концу PATH , создавая дополнительную работу для оболочки при неправильном вводе команды.

Вы получаете новый интерактивный Bash оболочки , когда вы обстреливать из vi с :sh , например.

/.bashrc не работают?

/.fzf.bash . Я запускаю новый терминал, потом Ctrl + R и получаю `__fzf_history__`bash: fzf: command not found . Я использую источник вручную, .bashrc и тот же самый ярлык запускает fzf, как и ожидалось. Извинения за шум здесь.

Назначение .bashrc файла — предоставить место, где вы можете установить переменные, функции и псевдонимы, определить приглашение (PS1) и определить другие параметры, которые вы хотите использовать при каждом запуске, когда вы открываете новое окно терминала.

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

-1. Настройте мой файл истории, чтобы игнорировать дубликаты и быть намного больше, чем по умолчанию.
-2. Вариант цвета в ls зависимости от того, используете ли вы linux или OSX
-3. Функция » md » сделать и перейти в каталог с помощью одной команды
-4. Найти текущую ветку git, если в git repo и .
-5. -9. Определите удивительное приглашение PS1, как в 20:00:43 durrantm Castle2012 / hom / durrantm / Dropnot / _ / rails_apps / мастер компоновщика \ n $ _ «>
-10. Улучшена подсказка PS2
-11. Установите vi в качестве редактора в командной строке
-12. Установите vi как редактор по умолчанию
-13. выполнить мой .bash_aliases файл, если он существует
-14. Выполните мой скрипт завершения git tab (для удаленных и филиалов), если он существует.
-15. Выполнить автопрыжок, если он существует
-16. Разрешить cd’ing без ввода части cd, если версия bash> = 4
-17. Выполнить скрипт завершения bash, если он существует
-18. Используйте TMUX, если он присутствует
-19. Добавить рвм в мой путь
-20. Используйте rvm, если он существует.

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

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

Источник

Читайте также:  Флешка вместо hdd linux
Оцените статью
У меня нет этих файлов?!