Код в .bashrc не выполняется, когда я открываю новое окно терминала в Ubuntu 12.04. Я заметил это при создании файла .bash_aliases. Псевдонимы не появлялись, когда я открывал новый терминал. Однако, когда я печатаю source .bashrc
, псевдонимы действительно появляются.
.bashrc должен запускаться каждый раз, когда я открываю новое окно терминала, верно?
Как мне это сделать?
В моем случае, просто .bashrc
строки загрузчика отсутствовали в .bash_profile
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
, я добавил их вручную, и он работал с моим новым логином
. Если $BASH_VERSION
не установлено, попробуйте использовать команду chsh
, чтобы установить для вашей оболочки значение /bin/bash
.
У меня была похожая проблема с 12.04 LTS, и оказалось, что для новой учетной записи пользователя по умолчанию установлена оболочка /bin/sh
, что и стало причиной проблемы.
Это не обязательно бежать; Вверху стандартного .bashrc есть этот комментарий:
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
Я считаю, что есть возможность запускать терминал bash в качестве оболочки входа в систему или нет. В Ubuntu gnome-терминал обычно не работает как оболочка входа в систему, поэтому .bashrc должен запускаться напрямую.
Для оболочек входа в систему (например, виртуальных терминалов) обычно запускается файл ~/.profile
, если у вас нет ~/.bash_profile
или ~/.bash_login
, но их там нет по умолчанию. По умолчанию Ubuntu использует только .profile.
В стандарте ~/.profile
есть это:
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
Это запускает .bashrc, если он доступен - при условии, что $ BASH_VERSION присутствует в вашей среде. Вы можете проверить это, введя команду echo $BASH_VERSION
, и она должна отобразить некоторую информацию о номере версии - она не должна быть пустой.
Вместо того, чтобы пройти через все это, просто перейдите на Edit -> Profile Preferences -> Title and Command -> "Run a custom command instead of my shell"
и в окне пользовательских команд напишите bash
и закройте его. В следующий раз, когда вы откроете терминал, он также автоматически запустит bash.
.bash_profile
содержит конфигурацию оболочки bash. Когда вы открываете терминал, он сначала читает и выполняет команды из ~/.bash_profile
. Таким образом, вы можете добавить следующее в .bash_profile
для настройки оболочки в соответствии с bashrc.
. ~/.bashrc
Accoding к комментарию в .profile
~/.profile: выполняемый интерпретатором команд для оболочек входа в систему. В¬ 11 Этих файлов не читаются ударом (1), если ~/.bash_profile или ~/.bash_loginВ¬ 10 # существуют
, Таким образом, там Вы идете, если ~/.bash_profile
или ~/.bash_login exists
, они будут выполнены вместо ~/.profile
, если Вы захотите работать ~/.bashrc
просто, добавляют строку source ~/.bashrc
в bash_profile