Где найти файл .bashrc на Mac OS X Snow Leopard и Lion?
Я хочу установить rvm на мою машину Snow Leopard.
Там сказано, что мне нужно добавить строку к моему файлу .bashrc
(я использую bash), но где мой файл .bashrc
?
Я хочу установить rvm на мою машину Snow Leopard.
Там сказано, что мне нужно добавить строку к моему файлу .bashrc
(я использую bash), но где мой файл .bashrc
?
Что касается проблемы с .bashrc
выше:
На большинстве систем, ~/.bashrc
используется только при запуске interactive non-login shell. Однако, при запуске новой оболочки часто используется interactive login shell. Так как это оболочка login, .bashrc
игнорируется. Для поддержания согласованности окружения между оболочками, не входящими в систему и не входящими в систему, вы должны исходить .bashrc
из вашей .profile
или .bash_profile
.
См. Легкое справочное руководство, раздел 6. 2 Bash Startup Files
Извлекается как интерактивная оболочка для входа в систему, или с помощью –login
Когда Bash вызывается как интерактивная оболочка для входа в систему, или как неинтерактивная оболочка с помощью опции –login, она сначала считывает и выполняет команды из файла /etc/profile, если этот файл существует. После чтения этого файла он ищет ~/.bash_profile, ~/.bash_login, и ~/.profile, в этом порядке, и читает и выполняет команды из первого существующего и доступного для чтения файла.
Invoked as an interactive non-login shell
Когда запускается интерактивная оболочка, не являющаяся оболочкой для входа в систему, Bash читает и выполняет команды из ~/. bashrc, если этот файл существует.
Так что, как правило, ваш ~/.bash_профиль содержит строку
if [-f ~/.bashrc]; then . ~/.bashrc; fi
после (или до) любых инициализаций, специфичных для входа в систему.
На моем Mac (Running Leopard) не было строки для исходных кодов ~/.bashrc
. Мне пришлось добавить эту функциональность самостоятельно.
На некоторых системах и других ОС, .bashrc
исходит из глобальных /etc/profile
или /etc/bash_profile
, или делается с помощью шаблонных файлов из /etc/skel
.
Честно говоря, различие между .bashrc
и .bash_profile
не очень хорошо понимается сообществом. Когда многие разработчики говорят “Добавьте это в ваш .bashrc”, они на самом деле имеют в виду “Добавьте это в ваш .bash_профиль”. Они хотят, чтобы функциональность была добавлена в вашу оболочку login (это .bash_profile
), а не в ваш non-login shell. На самом деле, это обычно не имеет значения и размещение конфигурации в .bashrc
допустимо.
Получается, что на Mac OS X Snow Leopard, а также Mac OS X Lion, загружаемый файл называется .profile
, а не .bashrc
.
Вы хотите создать файл в ~/.profile
и назвать его .profile (если его еще нет).
Положите туда любую информацию, которая вам нужна для загрузки, с каждым экземпляром bash (Спасибо, Thepurplepixel).
A пару заметок на полях:
-a
: ls -a
~
означает /Users/YourUserName
, где YourUserName - короткое имя пользователя. Правка: Chris Page отмечает (правильно), что что бы вы ни поместили в файл .profile, оно будет применяться к любой оболочке, которую вы используете (т.е. zhs, bash, и т.д.). Если вы хотите, чтобы содержимое влияло только на оболочку bash, поместите его в файл .bash_profile
, а не в файл .profile
.
Я обнаружил, что в моей ОС 10.6.5 настройки бэша находятся в “/etc/bashrc”. Я думаю, что это верхний уровень спецификаций для оболочки.
Однако, вам нужен корневой аккаунт, чтобы изменить его. Локальная спецификация для каждого пользователя “~/.bashrc” должна начинаться со следующего фрагмента, чтобы прочитать и загрузить настройки bash на системном уровне:
if [-r /etc/bashrc]; then
. /etc/bashrc
fi
Обычно я добавляю псевдонимы в bashrc на системном уровне, чтобы все пользователи могли получить к ним доступ. Если только они не хотят использовать ваши ярлыки и псевдонимы.
Удачи!
Используйте файл .profile, чтобы добавить все, что вы хотите добавить в файл linux .bashrc.
Например,
PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit"
```.