Командная оболочка bash использует несколько файлов инициализации рабочего окружения. К ним относится файл profile в папке /etc, а также .bash_profile и .bashrc в домашней директории пользователя. Можно сказать, что представляют они собой обычные shell-скрипты, которые bash читает при запуске. Кроме того, некоторые дистрибутивы создают файл /etc/bashrc, а затем включают его директивой source (будет рассмотрено ниже).
Можно выделить два типа случаев, когда файлы конфигурации bash используются:
- Если вход пользователя в linux был совершен с помощью программы /bin/login, то сначала читается и выполняется содержимое файла /etc/profile. Если же в домашней папке пользователя есть файл ~/.bash_profile, то затем то же самое происходит и с ним.
- Немного по-другому происходит в ситуации, когда командная оболочка запускается без непосредственного логина (через графический эмулятор терминала или с помощью команды /bin/su). Сначала сохраняются переменные окружения запущенной оболочки, а затем обрабатывается файл ~/.bashrc.
Пример
Для простоты предположим, что создали файл ~/.bashrc для всех пользователей следующего содержания:
source /etc/profile
Команда source включает все строки из /etc/profile в ~/.bashrc.
Теперь не важно, как именно происходит вход в систему (через логин или запустив xterm), настройки рабочего окружения для всех пользователей будут взяты из одного места. Это удобно. Теперь создаём файл /etc/profile, у меня (учитывая мою раскраску строки приглашения консоли) он получился вот такой:
#устанавливаем локаль export LC_ALL=ru_RU.utf8 #папки с бинарниками export PATH=/bin:/usr/bin:/sbin:/usr/sbin #приглашение консоли export PS1='\[\e[1;31m\]\u\[\e[0;32m\]:\[\e[0;35m\]\w\[\e[0;32m\]\$ \[\e[0;37m\]' #синонимы для цветного вывода команд ls и grep alias ls="ls --color=auto" alias grep="grep --color=auto"
Эти настройки будут по-умолчанию для всех пользователей, запустившими bash. Как через /bin/login, так и с помощью графического эмулятора терминала (xterm, urxvt).
Ваш комментарий будет первым