Где поместить пользовательские вещи .bashrc, в .bash_local?

Только что обновил до 11.10 и побудил меня задаться вопросом, где сейчас предпочтительный способ поместить настроенные .bashrc биты?

У меня есть несколько псевдонимов, некоторые переменные env и скрипт python virtualenvwrapper, например , который я хочу запустить как часть моего .bashrc. Я синхронизировал их в скрипте на машинах, хранящихся в Dropbox.

Раньше я помещал их в нижней части .bashrc, а затем я помещал их в файл с именем .bash_profile, который он получил, но теперь я вижу, что .bashrc больше не источники .bashrc_local (делал ли это когда-либо или я настраивал это?), и я отмечаю, что это источники .bash_aliases и .bash_completion.

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

Я испугался .profile, так как в нем уже есть вещи.

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

Это правильное место для этого?

4
задан 14 October 2011 в 18:59

2 ответа

Сценарии запуска немного лабиринтные, не так ли?

Я считаю, что в основном получается, что .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 и т. Д., Поэтому не делается никаких предположений о том, что в них или нет. .

0
ответ дан 14 October 2011 в 18:59

Я подозреваю .bashrc_local ваше изобретение. Меня также имеют что-то подобное, с выражением как это в ~/.bashrc

if [[ -r ~/.bashrc_local ]]; then
    . ~/.bashrc_local
fi

но я вставил этот файл только настройка, характерная для данной машины, и позволил настройке, характерной для всех моих машин в ~/.bashrc, синхронизировавший в некотором роде.

2
ответ дан 14 October 2011 в 18:59

Другие вопросы по тегам:

Похожие вопросы: