Гид по технологиям

Что такое .bashrc и как его настроить

• 7 min read • Linux • Обновлено 26 Nov 2025
Что такое .bashrc и как его настроить
Что такое .bashrc и как его настроить

Кратко (TL;DR)

Файл .bashrc — это пользовательский файл конфигурации для оболочки Bash, который загружается при каждом запуске интерактивной оболочки. В нём удобно хранить алиасы, функции, изменения PATH и переменные окружения. Правьте .bashrc в текстовом редакторе, применяйте изменения командой source ~/.bashrc и следуйте простым правилам безопасности (не храните пароли в открытом виде).

Содержание

  • Что такое .bashrc?
  • Как отредактировать .bashrc
  • Советы по настройке .bashrc
    • Алиасы
    • Функции
    • Настраиваемая строка приглашения
    • Изменение PATH
    • Экспорт переменных окружения
    • Связка .bashrc и .bash_profile
  • Модель мышления: как думать о конфигурации оболочки
  • Когда настройки не сработают
  • Альтернативные подходы и совместимость с другими оболочками
  • Безопасность и приватность
  • Чек-листы по ролям (разработчик / системный администратор)
  • Критерии приёмки и тесты
  • Часто задаваемые вопросы
  • Короткое резюме

Что такое .bashrc?

Фотография терминала Ubuntu с приглашением командной строки.

Если вы используете Unix-подобную систему (Linux, macOS с Bash и т.д.), оболочка Bash часто является вашим интерфейсом командной строки. Bash интерпретирует ваши команды и позволяет автоматизировать повторяющиеся действия с помощью скриптов. Файл .bashrc — это обычный текстовый файл в домашнем каталоге пользователя (~/.bashrc), содержащий команды и переменные, которые Bash выполняет при запуске интерактивной (не логин) оболочки.

Точка в начале имени (.bashrc) делает файл скрытым: по умолчанию файловые менеджеры и команда ls не показывают такие файлы без включения просмотра скрытых файлов.

Скриншот файла .bashrc в файловом менеджере.

Важно: .bashrc содержит инструкции для Bash. Большая часть команд — простые shell-конструкции, алиасы, экспорт переменных и определения функций.

Как отредактировать .bashrc

Откройте .bashrc в любом текстовом редакторе или прямо в терминале, например с помощью nano:

nano ~/.bashrc

Если файл пуст — это нормально. Добавляйте свои настройки в любом месте, но логично группировать похожие элементы вместе и оставлять комментарии (строки, начинающиеся с #).

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

source ~/.bashrc

Или закройте и откройте терминал — изменения применятся при следующем запуске.

Примечание: соблюдайте синтаксис Bash. Неправильная строка может привести к ошибкам при запуске оболочки; если вы случайно сломали конфигурацию, откройте другой терминал или входите в систему через чистую оболочку (например, bash --noprofile --norc) и исправьте файл.

Советы по настройке .bashrc

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

1. Алиасы

Алиасы — это короткие псевдонимы для длинных команд или часто используемых опций.

Терминал с перечнем базовых алиасов.

Правильный синтаксис:

alias ll='ls -lha'
alias gs='git status'
alias ..='cd ..'

Пояснения:

  • Слева пишем короткое имя, справа в одинарных или двойных кавычках — команду.
  • Алиасы полезны для исправления опечаток (alias sl='ls') и для принудительного использования привычных флагов.

Частая ошибка: забыть кавычки или поставить пробел между alias и именем неправильно. Используйте приведённый формат.

2. Функции

Функция позволяет объединять несколько команд и принимать аргументы.

Пример функции для создания директории и перехода в неё (корректная запись):

md() {
  mkdir -p "$1"
  cd "$1" || return
}

Пояснения:

  • $1 — первый аргумент функции (имя каталога).
  • mkdir -p создаёт вложенные директории при необходимости.
  • cd "$1" || return предотвращает продолжение выполнения функции, если cd не удался.

3. Настраиваемая строка приглашения (PS1)

Вы можете изменить внешний вид приглашения командной строки (prompt). Простой пример с показом пользователя, хоста и текущего каталога:

PS1='\u@\h:\w\$ '

Где:

  • \u — имя пользователя
  • \h — имя хоста
  • \w — текущий рабочий каталог

Если хотите цветной prompt, используйте управляющие последовательности ANSI:

PS1='\[\e[32m\]\u@\h\[\e[0m\]:\[\e[34m\]\w\[\e[0m\]\$ '

Обязательно заключайте цветовые коды в \[ \] чтобы Bash корректно рассчитывал длину строки.

4. Изменение переменной PATH

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

Рекомендуемый способ — добавлять в конец или начало, сохраняя текущее значение:

export PATH="$HOME/bin:$HOME/git:$PATH"

Пояснения:

  • Добавление в начало ($HOME/bin:$PATH) отдаёт предпочтение вашим скриптам перед системными.
  • Добавление в конец ($PATH:$HOME/bin) даёт приоритет системным программам.

Будьте внимательны: пустые сегменты :: или ведущая двоеточие могут привести к тому, что оболочка будет искать текущую директорию.

Снимок экрана переменной PATH, ссылающейся сама на себя.

Снимок экрана PATH с пользовательскими директориями.

5. Экспорт новых переменных окружения

Переменные окружения передаются дочерним процессам и полезны для настройки приложений.

Пример:

export EDITOR='nano'
export NODE_ENV='development'

Если переменная содержит чувствительные данные (пароли, токены), не храните их в .bashrc в открытом виде — см. раздел Безопасность ниже.

Пример запроса, который часто встречается в проектах:

POSTGRESQL_DATABASE='postgres://user:password@127.0.0.1:5432/db'
export POSTGRESQL_DATABASE

Это работает, но хранить реальные пароли в .bashrc нежелательно.

Снимок экрана пользовательской переменной окружения.

Снимок экрана команды export и новой переменной окружения.

6. Связка .bashrc и .bash_profile

Разделение между .bash_profile (или .profile) и .bashrc вызывает вопросы у новичков: .bash_profile выполняется при логине, .bashrc — при интерактивном запуске оболочки. Чтобы сделать настройки единообразными, добавьте в .bash_profile (или наоборот) вызов .bashrc:

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

Это гарантирует, что настройки из .bashrc применяются также при логин-сессии.

Терминал с простым условным оператором в .bash_profile.

Модель мышления: как думать о конфигурации оболочки

  • Конфигурация должна быть минимальной и объяснённой комментариями.
  • Разделяйте настройки: алиасы и функции — в одном блоке, экспорт переменных — в другом.
  • Не дублируйте логику в нескольких местах; предпочитайте включение (source) общих файлов.
  • Делайте настройки idempotent (безопасными для повторного выполнения). Например, перед добавлением пути в PATH проверяйте наличие:
case ":$PATH:" in
  *":$HOME/bin:"*) ;; 
  *) PATH="$HOME/bin:$PATH" ;;
esac
export PATH

Когда настройки не сработают (примеры)

  • Вы изменили .bashrc, но открываете новый терминал, который запускает не интерактивную оболочку — используйте source или добавьте вызов из .bash_profile.
  • Вы используете другую оболочку (zsh, fish) — .bashrc не применяется.
  • Ошибка синтаксиса в .bashrc прерывает выполнение — проверьте файл в другой сессии.
  • Переменная PATH перезаписывается позднее в другом файле, например в /etc/profile.

Альтернативные подходы и совместимость

  • Системный файл /etc/bash.bashrc (или аналог) задаёт настройки для всех пользователей.
  • Для zsh используйте ~/.zshrc; для ksh — ~/.kshrc. Многие конструкции Bash совместимы, но есть отличия.
  • Инструменты вроде direnv дают более безопасное и автоматическое управление переменными окружения для проектов.

Короткая таблица совместимости:

  • Bash: ~/.bashrc, ~/.bash_profile
  • Zsh: ~/.zshrc
  • Fish: ~/.config/fish/config.fish (другой синтаксис)
  • Ksh: ~/.kshrc (частичная совместимость)

Безопасность и приватность

  • Никогда не храните пароли, API-ключи и токены в файлах, которые попадают в систему контроля версий (git).
  • Дайте файлу .bashrc права 600, если там есть чувствительные переменные: chmod 600 ~/.bashrc.
  • Для секретов используйте защищённые хранилища (vault), файлы .env с ограниченными правами и добавляйте их в .gitignore.
  • Помните, что дочерние процессы смогут увидеть экспортированные переменные (например, через /proc у разных процессов на системе). Используйте привилегированные хранилища для секретов там, где это важно.

Чек-листы по ролям

Разработчик:

  • [ ] В .bashrc есть алиасы для часто используемых команд проекта.
  • Переменные окружения проекта не содержат паролей в открытом виде.
  • [ ] Добавлен export PATH на локальные bin-каталоги.
  • Комментарии поясняют нестандартные настройки.

Системный администратор:

  • [ ] Проверить, что системный /etc не перезаписывает пользовательские PATH.
  • Настроить централизованные профили, если требуется единая политика.
  • [ ] Убедиться, что права на .bashrc корректны (600 для чувствительных записей).

Критерии приёмки

  • При запуске новой интерактивной оболочки алиасы работают (проверить type ll).
  • Функции выполняют ожидаемые действия (например, md testdir создаёт и заходит в тестовую директорию).
  • Переменные окружения видны в подпроцессах: echo $MY_VAR и env | grep MY_VAR.
  • Нет ошибок при загрузке: bash -i -c exit не выводит сообщений об ошибках.

Тесты и сценарии приёмки

  1. Добавьте alias testrun='echo hello' в .bashrc, выполните source ~/.bashrc и проверьте testrun выводит hello.
  2. Добавьте функцию md, выполните source и проверьте, что она создаёт и переходит в папку.
  3. Измените PATH, выполните echo $PATH и убедитесь, что путь присутствует.
  4. Убедитесь, что bash --noprofile --norc запускается без ошибок (это чистая сессия).

Шаблоны и сниппеты (cheat sheet)

Быстрый набор полезных фрагментов для вставки в .bashrc:

  • Проверка наличия переменной перед установкой:
: ${EDITOR:=nano}
export EDITOR
  • Безопасное добавление в PATH:
if [[ ":$PATH:" != *":$HOME/bin:"* ]]; then
  PATH="$HOME/bin:$PATH"
fi
export PATH
  • Цветной prompt с git-статусом (упрощённо):
parse_git_branch() {
  git branch 2>/dev/null | sed -n '/\* /s///p'
}
PS1='\u@\h:\w$(git branch &>/dev/null; if git rev-parse --git-dir &>/dev/null; then echo " ("$(parse_git_branch)")"; fi)\$ '
  • Пример безопасной загрузки сторонних скриптов только если они существуют:
[ -f "$HOME/.local/bin/myenv.sh" ] && source "$HOME/.local/bin/myenv.sh"

Когда стоит не использовать .bashrc

  • Если вы хотите применять конфигурацию только для конкретного проекта — используйте direnv или локальные файлы, а не глобальный .bashrc.
  • Для GUI-приложений, запущенных вне терминала, переменные из .bashrc могут не наследоваться; используйте .profile или механизм systemd/user.

Часто задаваемые вопросы

Будет ли мой .bashrc работать в других оболочках?

Файл .bashrc предназначен для Bash. Многие простые конструкции совместимы с другими POSIX-совместимыми оболочками, но zsh, fish и др. имеют свои форматы и расширения. Копирование без проверки может привести к ошибкам.

Можно ли задать права по умолчанию для новых файлов через .bashrc?

Да — команда umask устанавливает маску прав. Например, umask 027 уменьшит права по умолчанию. Это не эквивалент chmod, но влияет на создаваемые файлы и директории.

Где хранить секреты для приложений?

Не в .bashrc. Используйте защищённые менеджеры секретов (Vault), системные сервисы или файлы .env с правами 600 и добавлением в .gitignore.

Короткое резюме

  • .bashrc — удобное место для персональных алиасов, функций, PATH и переменных окружения.
  • Всегда проверяйте синтаксис и используйте source для немедленного применения.
  • Следите за безопасностью: не храните открытые пароли и корректно настраивайте права доступа.

Цитата эксперта: «Конфигурация оболочки должна облегчать повторяемость и снижать рутинную работу без раскрытия секретов» — опытный системный администратор.

Image credit: Unsplash. All alterations and screenshots by Ramces Red.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро