Только что обновил до 11.10 и побудил меня задаться вопросом, где сейчас предпочтительный способ поместить настроенные .bashrc
биты?
У меня есть несколько псевдонимов, некоторые переменные env и скрипт python virtualenvwrapper, например , который я хочу запустить как часть моего .bashrc
. Я синхронизировал их в скрипте на машинах, хранящихся в Dropbox.
Раньше я помещал их в нижней части .bashrc
, а затем я помещал их в файл с именем .bash_profile
, который он получил, но теперь я вижу, что .bashrc
больше не источники .bashrc_local
(делал ли это когда-либо или я настраивал это?), и я отмечаю, что это источники .bash_aliases
и .bash_completion
.
Таким образом, я решил, что в настоящее время его не существует, чтобы поместить материал в .bash_aliases
, так как кажется, что мои настройки в отдельном файле по умолчанию чистее.
Я испугался .profile
, так как в нем уже есть вещи.
Я понимаю, что я делаю работы, но кажется немного нелогичным помещать эти вещи в файл с именем aliases, когда это не все псевдонимы.
Это правильное место для этого?
Сценарии запуска немного лабиринтные, не так ли?
Я считаю, что в основном получается, что .profile
выполняется для оболочек входа в систему - то есть, что вы получите, если вы вход в систему удаленный - и .bashrc
используется для не входящих в систему оболочек, при условии, что вы используете bash. .profile
Источники .bashrc
, так что в общем случае вы добавляете материал, который всегда используете в .bashrc
, например, дополнения к пути по умолчанию и другие настройки среды. Я считаю, что общее соглашение в * nix системах и bash заключается в том, чтобы выполнять большую часть настроек в .bashrc
; Я не видел .bash_aliases
в дистрибутивах Linux семейства Red Hat или системах Unix, которые я использовал. Я не помню, чтобы когда-либо видел .bash_local
.
Способ получения .bash_aliases
кажется хорошей моделью, поэтому может быть уместнее сделать ваши настройки в другом файле, добавив это в конец .bashrc
:
# Local customized path and environment settings, etc.
if [ -f ~/.bash_local ]; then
. ~/.bash_local
fi
Это может было бы полезно взглянуть на /etc/skel
, где пользовательские сценарии по умолчанию копируются в домашние каталоги новых пользователей, а также на /etc/profile
и /etc/bash.bashrc
, которые являются общесистемными значениями по умолчанию.
Я думаю, что основополагающее предположение ко всему этому заключается в том, что пользователь может делать то, что ему нравится, с личными копиями .profile
, .bashrc
и т. Д., Поэтому не делается никаких предположений о том, что в них или нет. .
Я подозреваю .bashrc_local
ваше изобретение. Меня также имеют что-то подобное, с выражением как это в ~/.bashrc
if [[ -r ~/.bashrc_local ]]; then
. ~/.bashrc_local
fi
но я вставил этот файл только настройка, характерная для данной машины, и позволил настройке, характерной для всех моих машин в ~/.bashrc
, синхронизировавший в некотором роде.