2010-05-30 21:03:42 +0000 2010-05-30 21:03:42 +0000
90
90

Где найти файл .bashrc на Mac OS X Snow Leopard и Lion?

Я хочу установить rvm на мою машину Snow Leopard.

Там сказано, что мне нужно добавить строку к моему файлу .bashrc (я использую bash), но где мой файл .bashrc?

Ответы (5)

79
79
79
2010-06-01 17:26:31 +0000

Что касается проблемы с .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 допустимо.

61
61
61
2011-12-20 23:51:49 +0000

Получается, что на Mac OS X Snow Leopard, а также Mac OS X Lion, загружаемый файл называется .profile, а не .bashrc.

Вы хотите создать файл в ~/.profile и назвать его .profile (если его еще нет).

Положите туда любую информацию, которая вам нужна для загрузки, с каждым экземпляром bash (Спасибо, Thepurplepixel).

A пару заметок на полях:

  1. Период перед файлом по умолчанию помечен как невидимый для Finder и командой ls. Чтобы перечислить невидимые файлы с помощью команды ls из терминала, используйте в качестве параметра -a: ls -a
  2. Символ ~ означает /Users/YourUserName, где YourUserName - короткое имя пользователя.

Правка: Chris Page отмечает (правильно), что что бы вы ни поместили в файл .profile, оно будет применяться к любой оболочке, которую вы используете (т.е. zhs, bash, и т.д.). Если вы хотите, чтобы содержимое влияло только на оболочку bash, поместите его в файл .bash_profile, а не в файл .profile.

4
4
4
2010-05-30 21:05:13 +0000

Ты должен сделать свой собственный .bashrc. Вы можете просто использовать текстовый редактор, чтобы сделать файл с расширением .bashrc (без расширения) и сохранить его в вашем домашнем каталоге (/Users/YourUserName/).

3
3
3
2010-11-26 08:02:07 +0000

Я обнаружил, что в моей ОС 10.6.5 настройки бэша находятся в “/etc/bashrc”. Я думаю, что это верхний уровень спецификаций для оболочки.

Однако, вам нужен корневой аккаунт, чтобы изменить его. Локальная спецификация для каждого пользователя “~/.bashrc” должна начинаться со следующего фрагмента, чтобы прочитать и загрузить настройки bash на системном уровне:

if [-r /etc/bashrc]; then
    . /etc/bashrc 
fi

Обычно я добавляю псевдонимы в bashrc на системном уровне, чтобы все пользователи могли получить к ним доступ. Если только они не хотят использовать ваши ярлыки и псевдонимы.

Удачи!

1
1
1
2010-06-01 18:18:27 +0000

Используйте файл .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"
```.